All language subtitles for Build and Deploy a Full Stack Social Media App React JS, Appwrite, Tailwind CSS, React Query

af Afrikaans
ak Akan
sq Albanian
am Amharic
ar Arabic Download
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (Soranî)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: WEBVTT Kind: captions Language: en 00:00:00.399 --> 00:00:03.470 align:start position:0% this<00:00:01.160> is<00:00:01.360> not<00:00:01.599> your<00:00:01.839> typical<00:00:02.240> Instagram<00:00:02.720> clone 00:00:03.470 --> 00:00:03.480 align:start position:0% this is not your typical Instagram clone 00:00:03.480 --> 00:00:05.910 align:start position:0% this is not your typical Instagram clone we're<00:00:03.679> bringing<00:00:04.040> you<00:00:04.279> a<00:00:04.560> modern<00:00:05.040> social<00:00:05.520> app 00:00:05.910 --> 00:00:05.920 align:start position:0% we're bringing you a modern social app 00:00:05.920 --> 00:00:08.390 align:start position:0% we're bringing you a modern social app with<00:00:06.120> stunning<00:00:06.560> UI<00:00:07.240> with<00:00:07.399> a<00:00:07.600> native<00:00:08.040> mobile 00:00:08.390 --> 00:00:08.400 align:start position:0% with stunning UI with a native mobile 00:00:08.400 --> 00:00:11.589 align:start position:0% with stunning UI with a native mobile feel<00:00:09.280> a<00:00:09.559> special<00:00:09.920> text<00:00:10.280> stack<00:00:11.000> an<00:00:11.200> infinite 00:00:11.589 --> 00:00:11.599 align:start position:0% feel a special text stack an infinite 00:00:11.599 --> 00:00:14.950 align:start position:0% feel a special text stack an infinite scroll<00:00:11.960> feature<00:00:12.880> and<00:00:13.280> amazing<00:00:13.960> performance 00:00:14.950 --> 00:00:14.960 align:start position:0% scroll feature and amazing performance 00:00:14.960 --> 00:00:16.870 align:start position:0% scroll feature and amazing performance have<00:00:15.080> you<00:00:15.200> ever<00:00:15.440> struggled<00:00:16.039> with<00:00:16.320> complicated 00:00:16.870 --> 00:00:16.880 align:start position:0% have you ever struggled with complicated 00:00:16.880 --> 00:00:19.550 align:start position:0% have you ever struggled with complicated server<00:00:17.240> setups<00:00:18.000> worrying<00:00:18.480> about<00:00:18.840> security 00:00:19.550 --> 00:00:19.560 align:start position:0% server setups worrying about security 00:00:19.560 --> 00:00:22.509 align:start position:0% server setups worrying about security handling<00:00:20.000> user<00:00:20.359> off<00:00:20.960> scaling<00:00:21.960> managing<00:00:22.400> and 00:00:22.509 --> 00:00:22.519 align:start position:0% handling user off scaling managing and 00:00:22.519 --> 00:00:24.870 align:start position:0% handling user off scaling managing and storing<00:00:22.880> files<00:00:23.279> securely<00:00:23.920> and<00:00:24.240> optimizing 00:00:24.870 --> 00:00:24.880 align:start position:0% storing files securely and optimizing 00:00:24.880 --> 00:00:27.870 align:start position:0% storing files securely and optimizing API<00:00:25.400> performance<00:00:26.359> without<00:00:26.760> losing<00:00:27.359> countless 00:00:27.870 --> 00:00:27.880 align:start position:0% API performance without losing countless 00:00:27.880 --> 00:00:30.029 align:start position:0% API performance without losing countless development<00:00:28.359> hours<00:00:29.279> if<00:00:29.480> that<00:00:29.599> is<00:00:29.720> the<00:00:29.800> case 00:00:30.029 --> 00:00:30.039 align:start position:0% development hours if that is the case 00:00:30.039 --> 00:00:32.429 align:start position:0% development hours if that is the case Cas<00:00:30.480> you're<00:00:30.720> not<00:00:30.960> alone<00:00:31.640> and<00:00:31.920> I've<00:00:32.160> got 00:00:32.429 --> 00:00:32.439 align:start position:0% Cas you're not alone and I've got 00:00:32.439 --> 00:00:34.350 align:start position:0% Cas you're not alone and I've got something<00:00:32.759> that<00:00:32.920> can<00:00:33.120> help<00:00:33.760> whether<00:00:33.960> you're<00:00:34.160> a 00:00:34.350 --> 00:00:34.360 align:start position:0% something that can help whether you're a 00:00:34.360 --> 00:00:36.869 align:start position:0% something that can help whether you're a new<00:00:34.760> or<00:00:35.000> a<00:00:35.160> season<00:00:35.680> developer<00:00:36.399> thinking<00:00:36.719> of 00:00:36.869 --> 00:00:36.879 align:start position:0% new or a season developer thinking of 00:00:36.879 --> 00:00:39.750 align:start position:0% new or a season developer thinking of starting<00:00:37.280> a<00:00:37.440> fresh<00:00:37.840> side<00:00:38.160> project<00:00:38.960> doing<00:00:39.440> all 00:00:39.750 --> 00:00:39.760 align:start position:0% starting a fresh side project doing all 00:00:39.760 --> 00:00:42.069 align:start position:0% starting a fresh side project doing all these<00:00:40.039> things<00:00:40.280> on<00:00:40.440> your<00:00:40.600> own<00:00:40.960> can<00:00:41.160> be<00:00:41.520> quite<00:00:41.800> a 00:00:42.069 --> 00:00:42.079 align:start position:0% these things on your own can be quite a 00:00:42.079 --> 00:00:45.630 align:start position:0% these things on your own can be quite a hassle<00:00:43.079> so<00:00:43.600> hi<00:00:43.840> there<00:00:44.360> and<00:00:44.680> welcome<00:00:45.000> to<00:00:45.200> a<00:00:45.360> new 00:00:45.630 --> 00:00:45.640 align:start position:0% hassle so hi there and welcome to a new 00:00:45.640 --> 00:00:47.910 align:start position:0% hassle so hi there and welcome to a new project<00:00:46.079> video<00:00:46.600> where<00:00:46.760> you'll<00:00:47.079> build<00:00:47.640> and 00:00:47.910 --> 00:00:47.920 align:start position:0% project video where you'll build and 00:00:47.920 --> 00:00:51.110 align:start position:0% project video where you'll build and deploy<00:00:48.760> an<00:00:49.039> amazing<00:00:49.600> social<00:00:50.000> site<00:00:50.640> with<00:00:50.840> a 00:00:51.110 --> 00:00:51.120 align:start position:0% deploy an amazing social site with a 00:00:51.120 --> 00:00:53.709 align:start position:0% deploy an amazing social site with a hassle-free<00:00:51.680> backend<00:00:52.680> thanks<00:00:52.920> to<00:00:53.199> aight 00:00:53.709 --> 00:00:53.719 align:start position:0% hassle-free backend thanks to aight 00:00:53.719 --> 00:00:56.709 align:start position:0% hassle-free backend thanks to aight Cloud<00:00:54.600> it<00:00:54.760> allows<00:00:55.039> you<00:00:55.199> to<00:00:55.359> create<00:00:55.719> a<00:00:55.920> backend 00:00:56.709 --> 00:00:56.719 align:start position:0% Cloud it allows you to create a backend 00:00:56.719 --> 00:00:59.150 align:start position:0% Cloud it allows you to create a backend faster<00:00:57.079> than<00:00:57.280> Thanos<00:00:57.760> snaps<00:00:58.079> his<00:00:58.280> fingers<00:00:58.960> and 00:00:59.150 --> 00:00:59.160 align:start position:0% faster than Thanos snaps his fingers and 00:00:59.160 --> 00:01:01.790 align:start position:0% faster than Thanos snaps his fingers and at<00:00:59.280> a<00:00:59.399> much<00:00:59.600> lower<00:01:00.160> cost<00:01:00.559> than<00:01:00.760> scary<00:01:01.239> Firebase 00:01:01.790 --> 00:01:01.800 align:start position:0% at a much lower cost than scary Firebase 00:01:01.800 --> 00:01:04.310 align:start position:0% at a much lower cost than scary Firebase for<00:01:02.039> pro<00:01:02.359> plans<00:01:03.039> you'll<00:01:03.399> get<00:01:03.840> what<00:01:04.000> you<00:01:04.080> would 00:01:04.310 --> 00:01:04.320 align:start position:0% for pro plans you'll get what you would 00:01:04.320 --> 00:01:06.630 align:start position:0% for pro plans you'll get what you would otherwise<00:01:04.799> have<00:01:04.960> to<00:01:05.119> pay<00:01:05.320> in<00:01:05.479> Firebase<00:01:06.400> for 00:01:06.630 --> 00:01:06.640 align:start position:0% otherwise have to pay in Firebase for 00:01:06.640 --> 00:01:09.910 align:start position:0% otherwise have to pay in Firebase for free<00:01:07.240> with<00:01:07.479> aite<00:01:08.479> but<00:01:08.840> what<00:01:09.000> are<00:01:09.119> we<00:01:09.280> building 00:01:09.910 --> 00:01:09.920 align:start position:0% free with aite but what are we building 00:01:09.920 --> 00:01:12.670 align:start position:0% free with aite but what are we building the<00:01:10.119> app<00:01:10.439> you'll<00:01:10.640> build<00:01:11.240> contains<00:01:11.759> a<00:01:12.040> robust 00:01:12.670 --> 00:01:12.680 align:start position:0% the app you'll build contains a robust 00:01:12.680 --> 00:01:15.270 align:start position:0% the app you'll build contains a robust and<00:01:12.920> stunning<00:01:13.520> authentication<00:01:14.320> system<00:01:15.080> a 00:01:15.270 --> 00:01:15.280 align:start position:0% and stunning authentication system a 00:01:15.280 --> 00:01:17.830 align:start position:0% and stunning authentication system a homepage<00:01:15.880> for<00:01:16.240> exploring<00:01:16.840> posts<00:01:17.240> shared<00:01:17.640> by 00:01:17.830 --> 00:01:17.840 align:start position:0% homepage for exploring posts shared by 00:01:17.840 --> 00:01:20.230 align:start position:0% homepage for exploring posts shared by others<00:01:18.439> with<00:01:18.640> top<00:01:18.960> creators<00:01:19.560> featured<00:01:19.960> on<00:01:20.079> the 00:01:20.230 --> 00:01:20.240 align:start position:0% others with top creators featured on the 00:01:20.240 --> 00:01:23.550 align:start position:0% others with top creators featured on the right<00:01:20.880> the<00:01:21.040> ability<00:01:21.479> to<00:01:21.840> like<00:01:22.280> and<00:01:22.479> save<00:01:22.920> posts 00:01:23.550 --> 00:01:23.560 align:start position:0% right the ability to like and save posts 00:01:23.560 --> 00:01:25.670 align:start position:0% right the ability to like and save posts accessible<00:01:24.200> through<00:01:24.439> a<00:01:24.680> separate<00:01:25.119> dedicated 00:01:25.670 --> 00:01:25.680 align:start position:0% accessible through a separate dedicated 00:01:25.680 --> 00:01:28.510 align:start position:0% accessible through a separate dedicated page<00:01:26.520> and<00:01:26.880> you<00:01:27.040> might<00:01:27.280> think<00:01:27.920> here<00:01:28.079> we<00:01:28.240> go 00:01:28.510 --> 00:01:28.520 align:start position:0% page and you might think here we go 00:01:28.520 --> 00:01:31.469 align:start position:0% page and you might think here we go again<00:01:29.119> another<00:01:29.880> Instagram<00:01:30.240> clone<00:01:30.920> but<00:01:31.159> trust 00:01:31.469 --> 00:01:31.479 align:start position:0% again another Instagram clone but trust 00:01:31.479 --> 00:01:34.789 align:start position:0% again another Instagram clone but trust me<00:01:32.119> this<00:01:32.399> is<00:01:32.680> not<00:01:33.040> your<00:01:33.280> typical<00:01:33.759> app<00:01:34.280> sure 00:01:34.789 --> 00:01:34.799 align:start position:0% me this is not your typical app sure 00:01:34.799 --> 00:01:36.870 align:start position:0% me this is not your typical app sure you've<00:01:35.119> probably<00:01:35.560> mastered<00:01:36.240> the<00:01:36.399> basics<00:01:36.720> of 00:01:36.870 --> 00:01:36.880 align:start position:0% you've probably mastered the basics of 00:01:36.880 --> 00:01:39.710 align:start position:0% you've probably mastered the basics of crowd<00:01:37.439> operations<00:01:38.439> but<00:01:38.759> have<00:01:38.920> you<00:01:39.079> ever<00:01:39.360> had<00:01:39.520> a 00:01:39.710 --> 00:01:39.720 align:start position:0% crowd operations but have you ever had a 00:01:39.720 --> 00:01:42.270 align:start position:0% crowd operations but have you ever had a chance<00:01:40.119> to<00:01:40.399> implement<00:01:40.960> that<00:01:41.280> one<00:01:41.680> incredible 00:01:42.270 --> 00:01:42.280 align:start position:0% chance to implement that one incredible 00:01:42.280 --> 00:01:45.030 align:start position:0% chance to implement that one incredible feature<00:01:43.040> that's<00:01:43.280> had<00:01:43.439> us<00:01:43.720> all<00:01:44.079> hooked<00:01:44.439> for 00:01:45.030 --> 00:01:45.040 align:start position:0% feature that's had us all hooked for 00:01:45.040 --> 00:01:47.990 align:start position:0% feature that's had us all hooked for decades<00:01:46.040> yes<00:01:46.560> the<00:01:46.759> infinite<00:01:47.119> scroll<00:01:47.759> we'll 00:01:47.990 --> 00:01:48.000 align:start position:0% decades yes the infinite scroll we'll 00:01:48.000 --> 00:01:50.510 align:start position:0% decades yes the infinite scroll we'll implement<00:01:48.439> it<00:01:48.719> inside<00:01:49.200> the<00:01:49.360> explore<00:01:49.880> page 00:01:50.510 --> 00:01:50.520 align:start position:0% implement it inside the explore page 00:01:50.520 --> 00:01:52.310 align:start position:0% implement it inside the explore page integrate<00:01:50.960> it<00:01:51.240> together<00:01:51.560> with<00:01:51.680> the<00:01:51.799> sech 00:01:52.310 --> 00:01:52.320 align:start position:0% integrate it together with the sech 00:01:52.320 --> 00:01:54.709 align:start position:0% integrate it together with the sech functionality<00:01:53.320> and<00:01:53.560> I<00:01:53.640> will<00:01:53.920> teach<00:01:54.200> you<00:01:54.600> how 00:01:54.709 --> 00:01:54.719 align:start position:0% functionality and I will teach you how 00:01:54.719 --> 00:01:58.230 align:start position:0% functionality and I will teach you how to<00:01:54.880> do<00:01:55.040> the<00:01:55.240> same<00:01:55.680> for<00:01:56.039> all<00:01:56.439> other<00:01:56.880> Pages<00:01:57.399> too 00:01:58.230 --> 00:01:58.240 align:start position:0% to do the same for all other Pages too 00:01:58.240 --> 00:02:00.550 align:start position:0% to do the same for all other Pages too and<00:01:58.439> moving<00:01:58.759> to<00:01:59.079> other<00:01:59.320> phenomenal<00:01:59.880> features 00:02:00.550 --> 00:02:00.560 align:start position:0% and moving to other phenomenal features 00:02:00.560 --> 00:02:03.550 align:start position:0% and moving to other phenomenal features will<00:02:00.840> develop<00:02:01.399> a<00:02:01.640> detailed<00:02:02.280> post<00:02:02.640> page<00:02:03.240> that 00:02:03.550 --> 00:02:03.560 align:start position:0% will develop a detailed post page that 00:02:03.560 --> 00:02:06.670 align:start position:0% will develop a detailed post page that also<00:02:03.920> displays<00:02:04.600> related<00:02:05.159> posts<00:02:05.960> a<00:02:06.240> profile 00:02:06.670 --> 00:02:06.680 align:start position:0% also displays related posts a profile 00:02:06.680 --> 00:02:09.350 align:start position:0% also displays related posts a profile page<00:02:07.039> showcasing<00:02:07.799> your<00:02:08.000> liked<00:02:08.360> posts<00:02:09.000> and<00:02:09.200> the 00:02:09.350 --> 00:02:09.360 align:start position:0% page showcasing your liked posts and the 00:02:09.360 --> 00:02:12.190 align:start position:0% page showcasing your liked posts and the ability<00:02:09.759> to<00:02:10.000> edit<00:02:10.280> your<00:02:10.560> profile<00:02:11.440> similarly 00:02:12.190 --> 00:02:12.200 align:start position:0% ability to edit your profile similarly 00:02:12.200 --> 00:02:14.949 align:start position:0% ability to edit your profile similarly browsing<00:02:12.800> other<00:02:13.080> users<00:02:13.599> and<00:02:13.879> their<00:02:14.160> profiles 00:02:14.949 --> 00:02:14.959 align:start position:0% browsing other users and their profiles 00:02:14.959 --> 00:02:17.589 align:start position:0% browsing other users and their profiles a<00:02:15.200> create<00:02:15.599> post<00:02:16.000> page<00:02:16.239> for<00:02:16.440> sharing<00:02:17.080> all<00:02:17.360> kinds 00:02:17.589 --> 00:02:17.599 align:start position:0% a create post page for sharing all kinds 00:02:17.599 --> 00:02:19.550 align:start position:0% a create post page for sharing all kinds of<00:02:17.760> memories<00:02:18.200> you<00:02:18.319> would<00:02:18.480> like<00:02:18.599> to<00:02:18.760> share<00:02:19.280> with 00:02:19.550 --> 00:02:19.560 align:start position:0% of memories you would like to share with 00:02:19.560 --> 00:02:22.270 align:start position:0% of memories you would like to share with effortless<00:02:20.160> file<00:02:20.440> management<00:02:21.160> and<00:02:21.440> storage 00:02:22.270 --> 00:02:22.280 align:start position:0% effortless file management and storage 00:02:22.280 --> 00:02:25.630 align:start position:0% effortless file management and storage and<00:02:22.560> a<00:02:22.800> drag<00:02:23.160> and<00:02:23.400> drop<00:02:23.800> feature<00:02:24.680> an<00:02:24.959> edit<00:02:25.319> post 00:02:25.630 --> 00:02:25.640 align:start position:0% and a drag and drop feature an edit post 00:02:25.640 --> 00:02:27.910 align:start position:0% and a drag and drop feature an edit post page<00:02:26.000> to<00:02:26.239> edit<00:02:26.480> the<00:02:26.680> contents<00:02:27.080> of<00:02:27.239> your<00:02:27.440> post 00:02:27.910 --> 00:02:27.920 align:start position:0% page to edit the contents of your post 00:02:27.920 --> 00:02:31.470 align:start position:0% page to edit the contents of your post anytime<00:02:28.920> and<00:02:29.239> so<00:02:29.480> much<00:02:29.920> more<00:02:30.400> with<00:02:30.560> an<00:02:30.800> amazing 00:02:31.470 --> 00:02:31.480 align:start position:0% anytime and so much more with an amazing 00:02:31.480 --> 00:02:34.150 align:start position:0% anytime and so much more with an amazing responsive<00:02:32.120> UI<00:02:32.840> with<00:02:33.000> the<00:02:33.200> Bottom<00:02:33.560> bar<00:02:34.040> that 00:02:34.150 --> 00:02:34.160 align:start position:0% responsive UI with the Bottom bar that 00:02:34.160 --> 00:02:36.670 align:start position:0% responsive UI with the Bottom bar that surely<00:02:34.640> gives<00:02:34.920> the<00:02:35.040> feel<00:02:35.440> of<00:02:35.560> a<00:02:35.800> native<00:02:36.239> mobile 00:02:36.670 --> 00:02:36.680 align:start position:0% surely gives the feel of a native mobile 00:02:36.680 --> 00:02:39.030 align:start position:0% surely gives the feel of a native mobile app<00:02:37.160> does<00:02:37.360> it<00:02:37.480> sound<00:02:37.920> exciting<00:02:38.440> as<00:02:38.560> it<00:02:38.680> does<00:02:38.879> to 00:02:39.030 --> 00:02:39.040 align:start position:0% app does it sound exciting as it does to 00:02:39.040 --> 00:02:41.869 align:start position:0% app does it sound exciting as it does to me<00:02:39.519> we'll<00:02:39.760> develop<00:02:40.280> all<00:02:40.480> of<00:02:40.720> these<00:02:41.200> all<00:02:41.599> well 00:02:41.869 --> 00:02:41.879 align:start position:0% me we'll develop all of these all well 00:02:41.879 --> 00:02:46.229 align:start position:0% me we'll develop all of these all well learning<00:02:42.519> react<00:02:43.480> react<00:02:44.080> context<00:02:44.800> API<00:02:45.800> complex 00:02:46.229 --> 00:02:46.239 align:start position:0% learning react react context API complex 00:02:46.239 --> 00:02:48.869 align:start position:0% learning react react context API complex react<00:02:46.680> routing<00:02:47.280> with<00:02:47.560> outlet<00:02:48.319> and 00:02:48.869 --> 00:02:48.879 align:start position:0% react routing with outlet and 00:02:48.879 --> 00:02:51.190 align:start position:0% react routing with outlet and conditional<00:02:49.159> rendering<00:02:50.120> we'll<00:02:50.440> use<00:02:50.959> the 00:02:51.190 --> 00:02:51.200 align:start position:0% conditional rendering we'll use the 00:02:51.200 --> 00:02:54.589 align:start position:0% conditional rendering we'll use the latest<00:02:51.680> version<00:02:52.560> 5.0<00:02:53.560> of<00:02:53.840> the<00:02:54.080> backand 00:02:54.589 --> 00:02:54.599 align:start position:0% latest version 5.0 of the backand 00:02:54.599 --> 00:02:57.270 align:start position:0% latest version 5.0 of the backand agnostic<00:02:55.280> data<00:02:55.599> fetching<00:02:56.000> Library<00:02:56.840> famously 00:02:57.270 --> 00:02:57.280 align:start position:0% agnostic data fetching Library famously 00:02:57.280 --> 00:03:00.750 align:start position:0% agnostic data fetching Library famously known<00:02:57.720> as<00:02:57.920> react<00:02:58.360> query<00:02:59.040> now<00:02:59.319> t<00:02:59.760> stack<00:03:00.000> query 00:03:00.750 --> 00:03:00.760 align:start position:0% known as react query now t stack query 00:03:00.760 --> 00:03:03.309 align:start position:0% known as react query now t stack query that<00:03:00.920> will<00:03:01.239> allow<00:03:01.560> us<00:03:01.720> to<00:03:01.959> implement<00:03:02.760> autoc 00:03:03.309 --> 00:03:03.319 align:start position:0% that will allow us to implement autoc 00:03:03.319 --> 00:03:07.070 align:start position:0% that will allow us to implement autoc caching<00:03:04.200> ref<00:03:04.560> fetching<00:03:05.400> parallel<00:03:05.879> queries<00:03:06.840> a 00:03:07.070 --> 00:03:07.080 align:start position:0% caching ref fetching parallel queries a 00:03:07.080 --> 00:03:09.949 align:start position:0% caching ref fetching parallel queries a first<00:03:07.519> class<00:03:07.879> mutations<00:03:08.879> loading<00:03:09.599> State 00:03:09.949 --> 00:03:09.959 align:start position:0% first class mutations loading State 00:03:09.959 --> 00:03:12.830 align:start position:0% first class mutations loading State Management<00:03:10.799> and<00:03:11.120> more<00:03:11.840> then<00:03:12.280> you'll<00:03:12.599> also 00:03:12.830 --> 00:03:12.840 align:start position:0% Management and more then you'll also 00:03:12.840 --> 00:03:16.589 align:start position:0% Management and more then you'll also learn<00:03:13.200> Tailwind<00:03:14.280> shaten<00:03:15.280> ight<00:03:15.840> Cloud<00:03:16.239> as<00:03:16.360> a 00:03:16.589 --> 00:03:16.599 align:start position:0% learn Tailwind shaten ight Cloud as a 00:03:16.599 --> 00:03:19.350 align:start position:0% learn Tailwind shaten ight Cloud as a backend<00:03:17.000> as<00:03:17.120> a<00:03:17.280> service<00:03:17.640> tool<00:03:18.519> and<00:03:18.840> everyone's 00:03:19.350 --> 00:03:19.360 align:start position:0% backend as a service tool and everyone's 00:03:19.360 --> 00:03:22.390 align:start position:0% backend as a service tool and everyone's favorite<00:03:20.280> typescript<00:03:21.280> there<00:03:21.599> is<00:03:21.760> a<00:03:22.000> lot<00:03:22.200> to 00:03:22.390 --> 00:03:22.400 align:start position:0% favorite typescript there is a lot to 00:03:22.400 --> 00:03:24.869 align:start position:0% favorite typescript there is a lot to learn<00:03:23.080> so<00:03:23.400> I<00:03:23.560> hope<00:03:23.840> you're<00:03:24.080> pumped<00:03:24.400> to<00:03:24.560> learn 00:03:24.869 --> 00:03:24.879 align:start position:0% learn so I hope you're pumped to learn 00:03:24.879 --> 00:03:27.030 align:start position:0% learn so I hope you're pumped to learn these<00:03:25.080> exciting<00:03:25.480> features<00:03:26.120> and<00:03:26.360> master<00:03:26.840> the 00:03:27.030 --> 00:03:27.040 align:start position:0% these exciting features and master the 00:03:27.040 --> 00:03:29.309 align:start position:0% these exciting features and master the Most<00:03:27.360> Wanted<00:03:27.760> skills<00:03:28.360> to<00:03:28.560> impress<00:03:29.000> potential 00:03:29.309 --> 00:03:29.319 align:start position:0% Most Wanted skills to impress potential 00:03:29.319 --> 00:03:32.910 align:start position:0% Most Wanted skills to impress potential employees<00:03:29.720> ERS<00:03:30.360> and<00:03:30.799> clients<00:03:31.799> with<00:03:32.000> that<00:03:32.280> said 00:03:32.910 --> 00:03:32.920 align:start position:0% employees ERS and clients with that said 00:03:32.920 --> 00:03:34.830 align:start position:0% employees ERS and clients with that said before<00:03:33.280> we<00:03:33.519> dive<00:03:33.799> into<00:03:34.000> the<00:03:34.120> development<00:03:34.640> of 00:03:34.830 --> 00:03:34.840 align:start position:0% before we dive into the development of 00:03:34.840 --> 00:03:37.190 align:start position:0% before we dive into the development of this<00:03:35.080> app<00:03:35.640> there's<00:03:36.040> one<00:03:36.280> more<00:03:36.560> thing<00:03:36.840> that<00:03:37.000> we 00:03:37.190 --> 00:03:37.200 align:start position:0% this app there's one more thing that we 00:03:37.200 --> 00:03:40.309 align:start position:0% this app there's one more thing that we must<00:03:37.519> do<00:03:38.280> and<00:03:38.519> that<00:03:38.680> is<00:03:39.040> set<00:03:39.280> up<00:03:39.439> an<00:03:39.640> account<00:03:40.040> on 00:03:40.309 --> 00:03:40.319 align:start position:0% must do and that is set up an account on 00:03:40.319 --> 00:03:43.110 align:start position:0% must do and that is set up an account on aight<00:03:40.879> Cloud<00:03:41.480> so<00:03:41.840> right<00:03:42.040> now<00:03:42.599> click<00:03:42.879> the 00:03:43.110 --> 00:03:43.120 align:start position:0% aight Cloud so right now click the 00:03:43.120 --> 00:03:45.070 align:start position:0% aight Cloud so right now click the special<00:03:43.599> link<00:03:43.840> in<00:03:44.000> the<00:03:44.159> description<00:03:44.879> that's 00:03:45.070 --> 00:03:45.080 align:start position:0% special link in the description that's 00:03:45.080 --> 00:03:46.789 align:start position:0% special link in the description that's going<00:03:45.239> to<00:03:45.400> allow<00:03:45.640> you<00:03:45.799> to<00:03:45.959> follow<00:03:46.319> along<00:03:46.640> with 00:03:46.789 --> 00:03:46.799 align:start position:0% going to allow you to follow along with 00:03:46.799 --> 00:03:49.110 align:start position:0% going to allow you to follow along with this<00:03:47.040> video<00:03:47.640> and<00:03:47.840> create<00:03:48.200> a<00:03:48.480> phenomenal 00:03:49.110 --> 00:03:49.120 align:start position:0% this video and create a phenomenal 00:03:49.120 --> 00:03:51.589 align:start position:0% this video and create a phenomenal backend<00:03:49.760> with<00:03:49.920> an<00:03:50.120> aight<00:03:50.640> Cloud<00:03:51.239> once<00:03:51.400> you 00:03:51.589 --> 00:03:51.599 align:start position:0% backend with an aight Cloud once you 00:03:51.599 --> 00:03:53.949 align:start position:0% backend with an aight Cloud once you click<00:03:51.840> it<00:03:52.159> their<00:03:52.400> homepage<00:03:52.799> is<00:03:52.879> going<00:03:53.040> to<00:03:53.280> open 00:03:53.949 --> 00:03:53.959 align:start position:0% click it their homepage is going to open 00:03:53.959 --> 00:03:56.190 align:start position:0% click it their homepage is going to open and<00:03:54.120> then<00:03:54.360> you<00:03:54.439> can<00:03:54.640> go<00:03:54.799> to<00:03:55.079> sign<00:03:55.400> up<00:03:56.040> once 00:03:56.190 --> 00:03:56.200 align:start position:0% and then you can go to sign up once 00:03:56.200 --> 00:03:58.949 align:start position:0% and then you can go to sign up once you're<00:03:56.400> in<00:03:56.799> you<00:03:56.920> can<00:03:57.159> sign<00:03:57.439> in<00:03:57.720> or<00:03:58.040> sign<00:03:58.319> up<00:03:58.799> the 00:03:58.949 --> 00:03:58.959 align:start position:0% you're in you can sign in or sign up the 00:03:58.959 --> 00:04:01.350 align:start position:0% you're in you can sign in or sign up the simplest<00:03:59.280> way<00:03:59.400> to<00:03:59.480> do<00:03:59.799> it<00:04:00.040> is<00:04:00.200> using<00:04:00.560> GitHub 00:04:01.350 --> 00:04:01.360 align:start position:0% simplest way to do it is using GitHub 00:04:01.360 --> 00:04:02.830 align:start position:0% simplest way to do it is using GitHub once<00:04:01.560> you're<00:04:01.760> in<00:04:02.159> you'll<00:04:02.360> have<00:04:02.480> to<00:04:02.599> create 00:04:02.830 --> 00:04:02.840 align:start position:0% once you're in you'll have to create 00:04:02.840 --> 00:04:06.069 align:start position:0% once you're in you'll have to create your<00:04:03.079> first<00:04:03.519> project<00:04:04.200> use<00:04:04.560> JSM<00:04:05.040> to<00:04:05.239> start<00:04:05.560> with 00:04:06.069 --> 00:04:06.079 align:start position:0% your first project use JSM to start with 00:04:06.079 --> 00:04:08.149 align:start position:0% your first project use JSM to start with and<00:04:06.239> then<00:04:06.439> add<00:04:06.599> an<00:04:06.760> underscore<00:04:07.439> and<00:04:07.720> add<00:04:07.920> your 00:04:08.149 --> 00:04:08.159 align:start position:0% and then add an underscore and add your 00:04:08.159 --> 00:04:10.789 align:start position:0% and then add an underscore and add your app<00:04:08.439> name<00:04:08.959> I'm<00:04:09.040> going<00:04:09.159> to<00:04:09.319> choose<00:04:09.799> snapgram 00:04:10.789 --> 00:04:10.799 align:start position:0% app name I'm going to choose snapgram 00:04:10.799 --> 00:04:13.309 align:start position:0% app name I'm going to choose snapgram but<00:04:11.000> you<00:04:11.120> can<00:04:11.280> choose<00:04:11.680> anything<00:04:12.040> else<00:04:12.720> maybe 00:04:13.309 --> 00:04:13.319 align:start position:0% but you can choose anything else maybe 00:04:13.319 --> 00:04:14.630 align:start position:0% but you can choose anything else maybe something<00:04:13.760> with<00:04:13.959> just<00:04:14.120> a<00:04:14.280> bit<00:04:14.439> more 00:04:14.630 --> 00:04:14.640 align:start position:0% something with just a bit more 00:04:14.640 --> 00:04:16.629 align:start position:0% something with just a bit more imagination<00:04:15.480> and<00:04:15.680> then<00:04:15.840> click<00:04:16.199> create 00:04:16.629 --> 00:04:16.639 align:start position:0% imagination and then click create 00:04:16.639 --> 00:04:20.150 align:start position:0% imagination and then click create project<00:04:17.600> and<00:04:17.959> we<00:04:18.120> are<00:04:18.440> in<00:04:19.079> operate<00:04:19.600> cloud<00:04:20.000> is 00:04:20.150 --> 00:04:20.160 align:start position:0% project and we are in operate cloud is 00:04:20.160 --> 00:04:22.629 align:start position:0% project and we are in operate cloud is going<00:04:20.320> to<00:04:20.560> allow<00:04:20.840> us<00:04:21.000> to<00:04:21.239> create<00:04:21.799> robust 00:04:22.629 --> 00:04:22.639 align:start position:0% going to allow us to create robust 00:04:22.639 --> 00:04:25.830 align:start position:0% going to allow us to create robust secure<00:04:23.320> and<00:04:23.639> scalable<00:04:24.199> backend<00:04:24.840> applications 00:04:25.830 --> 00:04:25.840 align:start position:0% secure and scalable backend applications 00:04:25.840 --> 00:04:28.510 align:start position:0% secure and scalable backend applications it<00:04:26.040> provides<00:04:26.479> sdks<00:04:27.400> and<00:04:27.600> server<00:04:28.040> functions 00:04:28.510 --> 00:04:28.520 align:start position:0% it provides sdks and server functions 00:04:28.520 --> 00:04:30.029 align:start position:0% it provides sdks and server functions that<00:04:28.639> you<00:04:28.720> can<00:04:28.880> integrate<00:04:29.440> with<00:04:29.639> with<00:04:29.800> any 00:04:30.029 --> 00:04:30.039 align:start position:0% that you can integrate with with any 00:04:30.039 --> 00:04:31.830 align:start position:0% that you can integrate with with any kind<00:04:30.160> of<00:04:30.280> framework<00:04:31.120> some<00:04:31.280> of<00:04:31.440> the<00:04:31.639> best 00:04:31.830 --> 00:04:31.840 align:start position:0% kind of framework some of the best 00:04:31.840 --> 00:04:34.110 align:start position:0% kind of framework some of the best features<00:04:32.199> they<00:04:32.440> offer<00:04:33.039> and<00:04:33.280> at<00:04:33.400> the<00:04:33.560> same<00:04:33.840> time 00:04:34.110 --> 00:04:34.120 align:start position:0% features they offer and at the same time 00:04:34.120 --> 00:04:36.390 align:start position:0% features they offer and at the same time the<00:04:34.320> features<00:04:34.759> we'll<00:04:35.080> use<00:04:35.600> to<00:04:35.800> create<00:04:36.160> this 00:04:36.390 --> 00:04:36.400 align:start position:0% the features we'll use to create this 00:04:36.400 --> 00:04:39.430 align:start position:0% the features we'll use to create this project<00:04:37.000> are<00:04:37.639> o<00:04:38.360> where<00:04:38.639> you'll<00:04:38.880> be<00:04:39.000> able<00:04:39.199> to 00:04:39.430 --> 00:04:39.440 align:start position:0% project are o where you'll be able to 00:04:39.440 --> 00:04:41.950 align:start position:0% project are o where you'll be able to add<00:04:39.919> specific<00:04:40.720> team-based<00:04:41.320> and 00:04:41.950 --> 00:04:41.960 align:start position:0% add specific team-based and 00:04:41.960 --> 00:04:44.870 align:start position:0% add specific team-based and permission-based<00:04:42.840> security<00:04:43.840> they<00:04:44.080> offer<00:04:44.479> o 00:04:44.870 --> 00:04:44.880 align:start position:0% permission-based security they offer o 00:04:44.880 --> 00:04:47.350 align:start position:0% permission-based security they offer o options<00:04:45.240> from<00:04:45.600> email<00:04:45.880> and<00:04:46.160> password<00:04:46.720> to<00:04:47.000> Magic 00:04:47.350 --> 00:04:47.360 align:start position:0% options from email and password to Magic 00:04:47.360 --> 00:04:51.230 align:start position:0% options from email and password to Magic URLs<00:04:48.160> and<00:04:48.360> more<00:04:48.600> than<00:04:48.840> 30<00:04:49.639> social<00:04:50.360> sign-ins 00:04:51.230 --> 00:04:51.240 align:start position:0% URLs and more than 30 social sign-ins 00:04:51.240 --> 00:04:52.830 align:start position:0% URLs and more than 30 social sign-ins the<00:04:51.400> next<00:04:51.600> thing<00:04:51.759> we'll<00:04:51.919> use<00:04:52.120> in<00:04:52.240> our<00:04:52.479> project 00:04:52.830 --> 00:04:52.840 align:start position:0% the next thing we'll use in our project 00:04:52.840 --> 00:04:55.270 align:start position:0% the next thing we'll use in our project are<00:04:52.960> going<00:04:53.080> to<00:04:53.199> be<00:04:53.600> databases<00:04:54.600> you<00:04:54.720> can<00:04:54.960> add 00:04:55.270 --> 00:04:55.280 align:start position:0% are going to be databases you can add 00:04:55.280 --> 00:04:57.590 align:start position:0% are going to be databases you can add more<00:04:55.520> than<00:04:55.680> one<00:04:55.960> database<00:04:56.560> for<00:04:56.880> a<00:04:57.080> specific 00:04:57.590 --> 00:04:57.600 align:start position:0% more than one database for a specific 00:04:57.600 --> 00:05:00.110 align:start position:0% more than one database for a specific project<00:04:58.320> in<00:04:58.479> the<00:04:58.639> process<00:04:58.919> of<00:04:59.080> creating<00:04:59.400> it<00:04:59.919> is 00:05:00.110 --> 00:05:00.120 align:start position:0% project in the process of creating it is 00:05:00.120 --> 00:05:02.670 align:start position:0% project in the process of creating it is super<00:05:00.479> simple<00:05:01.360> then<00:05:01.680> you<00:05:01.800> can<00:05:01.960> of<00:05:02.080> course<00:05:02.400> add 00:05:02.670 --> 00:05:02.680 align:start position:0% super simple then you can of course add 00:05:02.680 --> 00:05:05.070 align:start position:0% super simple then you can of course add many<00:05:02.960> different<00:05:03.440> Collections<00:05:04.440> and<00:05:04.680> the<00:05:04.840> best 00:05:05.070 --> 00:05:05.080 align:start position:0% many different Collections and the best 00:05:05.080 --> 00:05:07.830 align:start position:0% many different Collections and the best thing<00:05:05.320> is<00:05:05.880> each<00:05:06.160> collection<00:05:07.039> has<00:05:07.280> its<00:05:07.520> own 00:05:07.830 --> 00:05:07.840 align:start position:0% thing is each collection has its own 00:05:07.840 --> 00:05:09.710 align:start position:0% thing is each collection has its own attributes<00:05:08.600> which<00:05:08.759> can<00:05:08.880> be<00:05:09.080> of<00:05:09.240> a<00:05:09.400> lot<00:05:09.560> of 00:05:09.710 --> 00:05:09.720 align:start position:0% attributes which can be of a lot of 00:05:09.720 --> 00:05:12.310 align:start position:0% attributes which can be of a lot of different<00:05:10.039> types<00:05:10.759> and<00:05:11.080> you<00:05:11.280> have<00:05:11.680> advanced 00:05:12.310 --> 00:05:12.320 align:start position:0% different types and you have advanced 00:05:12.320 --> 00:05:15.430 align:start position:0% different types and you have advanced permissions<00:05:13.240> on<00:05:13.520> a<00:05:13.759> collection<00:05:14.280> level<00:05:15.240> the 00:05:15.430 --> 00:05:15.440 align:start position:0% permissions on a collection level the 00:05:15.440 --> 00:05:17.350 align:start position:0% permissions on a collection level the next<00:05:15.759> feature<00:05:16.240> I'll<00:05:16.440> also<00:05:16.720> teach<00:05:16.919> you<00:05:17.080> how<00:05:17.199> to 00:05:17.350 --> 00:05:17.360 align:start position:0% next feature I'll also teach you how to 00:05:17.360 --> 00:05:20.309 align:start position:0% next feature I'll also teach you how to use<00:05:17.960> is<00:05:18.280> storage<00:05:19.160> it<00:05:19.319> allows<00:05:19.600> us<00:05:19.759> to<00:05:19.960> quickly 00:05:20.309 --> 00:05:20.319 align:start position:0% use is storage it allows us to quickly 00:05:20.319 --> 00:05:22.670 align:start position:0% use is storage it allows us to quickly create<00:05:20.680> buckets<00:05:21.360> of<00:05:21.639> different<00:05:22.000> files<00:05:22.600> where 00:05:22.670 --> 00:05:22.680 align:start position:0% create buckets of different files where 00:05:22.680 --> 00:05:25.510 align:start position:0% create buckets of different files where we<00:05:22.800> can<00:05:22.960> store<00:05:23.520> any<00:05:23.720> kind<00:05:23.840> of<00:05:24.039> images<00:05:25.000> and<00:05:25.199> even 00:05:25.510 --> 00:05:25.520 align:start position:0% we can store any kind of images and even 00:05:25.520 --> 00:05:27.830 align:start position:0% we can store any kind of images and even export<00:05:26.000> them<00:05:26.199> and<00:05:26.360> transform<00:05:26.960> them<00:05:27.160> to<00:05:27.400> reduce 00:05:27.830 --> 00:05:27.840 align:start position:0% export them and transform them to reduce 00:05:27.840 --> 00:05:30.350 align:start position:0% export them and transform them to reduce file<00:05:28.160> sizes<00:05:29.120> and<00:05:29.560> finally<00:05:29.960> there<00:05:30.120> are 00:05:30.350 --> 00:05:30.360 align:start position:0% file sizes and finally there are 00:05:30.360 --> 00:05:33.350 align:start position:0% file sizes and finally there are cloud-based<00:05:31.240> serverless<00:05:32.039> functions<00:05:33.039> and<00:05:33.240> the 00:05:33.350 --> 00:05:33.360 align:start position:0% cloud-based serverless functions and the 00:05:33.360 --> 00:05:35.749 align:start position:0% cloud-based serverless functions and the best<00:05:33.560> thing<00:05:33.720> about<00:05:34.000> aite<00:05:34.720> is<00:05:34.919> that<00:05:35.080> it<00:05:35.280> offers 00:05:35.749 --> 00:05:35.759 align:start position:0% best thing about aite is that it offers 00:05:35.759 --> 00:05:38.270 align:start position:0% best thing about aite is that it offers all<00:05:35.919> of<00:05:36.160> these<00:05:36.360> features<00:05:36.919> for<00:05:37.240> free<00:05:37.960> setting 00:05:38.270 --> 00:05:38.280 align:start position:0% all of these features for free setting 00:05:38.280 --> 00:05:40.270 align:start position:0% all of these features for free setting it<00:05:38.479> apart<00:05:38.919> from<00:05:39.160> traditional<00:05:39.880> backend 00:05:40.270 --> 00:05:40.280 align:start position:0% it apart from traditional backend 00:05:40.280 --> 00:05:43.070 align:start position:0% it apart from traditional backend diservice<00:05:40.880> Tools<00:05:41.680> in<00:05:41.800> terms<00:05:42.039> of<00:05:42.280> pricing<00:05:42.759> and 00:05:43.070 --> 00:05:43.080 align:start position:0% diservice Tools in terms of pricing and 00:05:43.080 --> 00:05:45.029 align:start position:0% diservice Tools in terms of pricing and value<00:05:43.639> and<00:05:43.800> because<00:05:44.039> of<00:05:44.240> that<00:05:44.600> it's<00:05:44.759> no 00:05:45.029 --> 00:05:45.039 align:start position:0% value and because of that it's no 00:05:45.039 --> 00:05:47.830 align:start position:0% value and because of that it's no surprise<00:05:45.560> that<00:05:45.759> aide<00:05:46.440> has<00:05:46.600> become<00:05:47.039> a<00:05:47.240> trending 00:05:47.830 --> 00:05:47.840 align:start position:0% surprise that aide has become a trending 00:05:47.840 --> 00:05:50.270 align:start position:0% surprise that aide has become a trending project<00:05:48.199> on<00:05:48.440> GitHub<00:05:49.120> so<00:05:49.560> now<00:05:49.759> that<00:05:49.880> you're<00:05:50.039> set 00:05:50.270 --> 00:05:50.280 align:start position:0% project on GitHub so now that you're set 00:05:50.280 --> 00:05:53.029 align:start position:0% project on GitHub so now that you're set up<00:05:50.440> with<00:05:50.600> aide<00:05:51.280> and<00:05:51.520> hopefully<00:05:52.199> excited<00:05:52.800> for 00:05:53.029 --> 00:05:53.039 align:start position:0% up with aide and hopefully excited for 00:05:53.039 --> 00:05:54.909 align:start position:0% up with aide and hopefully excited for what<00:05:53.199> we're<00:05:53.319> are<00:05:53.479> about<00:05:53.720> to<00:05:53.880> build<00:05:54.319> together 00:05:54.909 --> 00:05:54.919 align:start position:0% what we're are about to build together 00:05:54.919 --> 00:05:57.629 align:start position:0% what we're are about to build together let's<00:05:55.199> Dive<00:05:55.520> Right<00:05:55.680> In<00:05:56.319> to<00:05:56.639> get<00:05:56.880> started<00:05:57.440> with 00:05:57.629 --> 00:05:57.639 align:start position:0% let's Dive Right In to get started with 00:05:57.639 --> 00:05:59.950 align:start position:0% let's Dive Right In to get started with developing<00:05:58.240> our<00:05:58.560> phenomenal<00:05:59.240> in<00:05:59.479> Instagram 00:05:59.950 --> 00:05:59.960 align:start position:0% developing our phenomenal in Instagram 00:05:59.960 --> 00:06:02.150 align:start position:0% developing our phenomenal in Instagram clone<00:06:00.360> application<00:06:01.319> we<00:06:01.440> can<00:06:01.639> start<00:06:02.000> by 00:06:02.150 --> 00:06:02.160 align:start position:0% clone application we can start by 00:06:02.160 --> 00:06:04.309 align:start position:0% clone application we can start by creating<00:06:02.560> a<00:06:02.759> new<00:06:03.120> empty<00:06:03.560> folder<00:06:03.960> on<00:06:04.080> our 00:06:04.309 --> 00:06:04.319 align:start position:0% creating a new empty folder on our 00:06:04.319 --> 00:06:06.749 align:start position:0% creating a new empty folder on our desktop<00:06:05.240> and<00:06:05.440> let's<00:06:05.680> call<00:06:05.880> it 00:06:06.749 --> 00:06:06.759 align:start position:0% desktop and let's call it 00:06:06.759 --> 00:06:09.070 align:start position:0% desktop and let's call it snapgram<00:06:07.759> once<00:06:07.919> you<00:06:08.120> created<00:06:08.479> it<00:06:08.759> you<00:06:08.880> can 00:06:09.070 --> 00:06:09.080 align:start position:0% snapgram once you created it you can 00:06:09.080 --> 00:06:11.110 align:start position:0% snapgram once you created it you can simply<00:06:09.440> drag<00:06:09.720> and<00:06:09.880> drop<00:06:10.160> it<00:06:10.400> into<00:06:10.639> your<00:06:10.840> code 00:06:11.110 --> 00:06:11.120 align:start position:0% simply drag and drop it into your code 00:06:11.120 --> 00:06:13.469 align:start position:0% simply drag and drop it into your code editor<00:06:11.479> of<00:06:11.639> choice<00:06:12.240> in<00:06:12.440> this<00:06:12.639> case<00:06:13.080> Visual 00:06:13.469 --> 00:06:13.479 align:start position:0% editor of choice in this case Visual 00:06:13.479 --> 00:06:14.629 align:start position:0% editor of choice in this case Visual Studio 00:06:14.629 --> 00:06:14.639 align:start position:0% Studio 00:06:14.639 --> 00:06:17.350 align:start position:0% Studio code<00:06:15.639> once<00:06:15.840> you're<00:06:16.120> there<00:06:16.560> you<00:06:16.680> can<00:06:16.840> go<00:06:16.960> to<00:06:17.160> the 00:06:17.350 --> 00:06:17.360 align:start position:0% code once you're there you can go to the 00:06:17.360 --> 00:06:20.710 align:start position:0% code once you're there you can go to the top<00:06:18.000> go<00:06:18.199> to<00:06:18.440> view<00:06:19.319> and<00:06:19.479> then 00:06:20.710 --> 00:06:20.720 align:start position:0% top go to view and then 00:06:20.720 --> 00:06:23.430 align:start position:0% top go to view and then terminal<00:06:21.720> this<00:06:22.000> is<00:06:22.160> going<00:06:22.319> to<00:06:22.560> open<00:06:22.840> up<00:06:23.120> a 00:06:23.430 --> 00:06:23.440 align:start position:0% terminal this is going to open up a 00:06:23.440 --> 00:06:26.589 align:start position:0% terminal this is going to open up a built-in<00:06:24.000> integrated<00:06:24.840> Visual<00:06:25.160> Studio<00:06:25.560> code 00:06:26.589 --> 00:06:26.599 align:start position:0% built-in integrated Visual Studio code 00:06:26.599 --> 00:06:28.830 align:start position:0% built-in integrated Visual Studio code terminal<00:06:27.599> lately<00:06:28.080> we've<00:06:28.280> been<00:06:28.400> doing<00:06:28.599> a<00:06:28.720> lot 00:06:28.830 --> 00:06:28.840 align:start position:0% terminal lately we've been doing a lot 00:06:28.840 --> 00:06:31.270 align:start position:0% terminal lately we've been doing a lot of<00:06:28.960> next<00:06:29.199> year<00:06:29.560> yes<00:06:30.000> so<00:06:30.360> I'm<00:06:30.560> quite<00:06:30.759> excited<00:06:31.120> to 00:06:31.270 --> 00:06:31.280 align:start position:0% of next year yes so I'm quite excited to 00:06:31.280 --> 00:06:33.270 align:start position:0% of next year yes so I'm quite excited to get<00:06:31.479> back<00:06:31.639> to<00:06:31.840> react<00:06:32.240> a<00:06:32.440> bit<00:06:32.840> we're<00:06:33.039> going<00:06:33.120> to 00:06:33.270 --> 00:06:33.280 align:start position:0% get back to react a bit we're going to 00:06:33.280 --> 00:06:35.950 align:start position:0% get back to react a bit we're going to use<00:06:33.639> vit<00:06:34.440> which<00:06:34.560> is<00:06:34.720> the<00:06:35.000> fastest<00:06:35.479> way<00:06:35.599> to<00:06:35.759> set 00:06:35.950 --> 00:06:35.960 align:start position:0% use vit which is the fastest way to set 00:06:35.960 --> 00:06:38.749 align:start position:0% use vit which is the fastest way to set up<00:06:36.080> our<00:06:36.280> development<00:06:36.800> environment<00:06:37.479> for<00:06:37.759> react 00:06:38.749 --> 00:06:38.759 align:start position:0% up our development environment for react 00:06:38.759 --> 00:06:42.510 align:start position:0% up our development environment for react so<00:06:39.080> head<00:06:39.199> to<00:06:39.440> VJs<00:06:40.240> dodev<00:06:40.919> and<00:06:41.120> click<00:06:41.400> get 00:06:42.510 --> 00:06:42.520 align:start position:0% so head to VJs dodev and click get 00:06:42.520 --> 00:06:44.870 align:start position:0% so head to VJs dodev and click get started<00:06:43.520> once<00:06:43.680> you're<00:06:43.919> here<00:06:44.240> you<00:06:44.360> can<00:06:44.520> scroll 00:06:44.870 --> 00:06:44.880 align:start position:0% started once you're here you can scroll 00:06:44.880 --> 00:06:46.790 align:start position:0% started once you're here you can scroll down<00:06:45.080> a<00:06:45.199> bit<00:06:45.680> and<00:06:45.840> you<00:06:45.919> can<00:06:46.080> see<00:06:46.400> that<00:06:46.520> you<00:06:46.599> can 00:06:46.790 --> 00:06:46.800 align:start position:0% down a bit and you can see that you can 00:06:46.800 --> 00:06:48.990 align:start position:0% down a bit and you can see that you can initialize<00:06:47.319> your<00:06:47.479> V<00:06:47.800> application<00:06:48.479> by<00:06:48.599> running 00:06:48.990 --> 00:06:49.000 align:start position:0% initialize your V application by running 00:06:49.000 --> 00:06:53.029 align:start position:0% initialize your V application by running mpm<00:06:49.599> create<00:06:50.280> V<00:06:50.759> at<00:06:51.120> latest<00:06:52.120> so<00:06:52.560> paste<00:06:52.880> that 00:06:53.029 --> 00:06:53.039 align:start position:0% mpm create V at latest so paste that 00:06:53.039 --> 00:06:56.150 align:start position:0% mpm create V at latest so paste that Command<00:06:53.520> right<00:06:53.759> here<00:06:54.440> add<00:06:54.720> a<00:06:55.360> slash<00:06:55.759> to<00:06:55.919> create 00:06:56.150 --> 00:06:56.160 align:start position:0% Command right here add a slash to create 00:06:56.160 --> 00:06:58.110 align:start position:0% Command right here add a slash to create it<00:06:56.319> in<00:06:56.440> the<00:06:56.560> current<00:06:56.919> snapgram<00:06:57.560> repository 00:06:58.110 --> 00:06:58.120 align:start position:0% it in the current snapgram repository 00:06:58.120 --> 00:06:59.909 align:start position:0% it in the current snapgram repository we're<00:06:58.360> in<00:06:58.879> and<00:06:59.039> press 00:06:59.909 --> 00:06:59.919 align:start position:0% we're in and press 00:06:59.919 --> 00:07:02.110 align:start position:0% we're in and press enter<00:07:00.919> this<00:07:01.039> is<00:07:01.199> going<00:07:01.360> to<00:07:01.560> ask<00:07:01.759> you<00:07:01.960> whether 00:07:02.110 --> 00:07:02.120 align:start position:0% enter this is going to ask you whether 00:07:02.120 --> 00:07:03.830 align:start position:0% enter this is going to ask you whether you<00:07:02.240> want<00:07:02.400> to<00:07:02.560> install<00:07:02.919> the<00:07:03.080> create<00:07:03.400> feed 00:07:03.830 --> 00:07:03.840 align:start position:0% you want to install the create feed 00:07:03.840 --> 00:07:06.070 align:start position:0% you want to install the create feed package<00:07:04.479> to<00:07:04.720> which<00:07:04.840> you're<00:07:04.960> going<00:07:05.080> to<00:07:05.240> say<00:07:05.680> why 00:07:06.070 --> 00:07:06.080 align:start position:0% package to which you're going to say why 00:07:06.080 --> 00:07:08.510 align:start position:0% package to which you're going to say why or<00:07:06.400> yes<00:07:07.280> and<00:07:07.440> then<00:07:07.560> you<00:07:07.639> can<00:07:07.800> choose<00:07:08.280> which 00:07:08.510 --> 00:07:08.520 align:start position:0% or yes and then you can choose which 00:07:08.520 --> 00:07:10.430 align:start position:0% or yes and then you can choose which type<00:07:08.720> of<00:07:08.879> application<00:07:09.280> you<00:07:09.400> want<00:07:09.520> to<00:07:09.680> run<00:07:10.280> in 00:07:10.430 --> 00:07:10.440 align:start position:0% type of application you want to run in 00:07:10.440 --> 00:07:13.110 align:start position:0% type of application you want to run in this<00:07:10.639> case<00:07:10.840> we're<00:07:11.000> going<00:07:11.080> to<00:07:11.240> choose<00:07:11.960> react<00:07:12.960> we 00:07:13.110 --> 00:07:13.120 align:start position:0% this case we're going to choose react we 00:07:13.120 --> 00:07:15.070 align:start position:0% this case we're going to choose react we will<00:07:13.360> use<00:07:13.639> typescript<00:07:14.280> so<00:07:14.400> you<00:07:14.479> can<00:07:14.680> press 00:07:15.070 --> 00:07:15.080 align:start position:0% will use typescript so you can press 00:07:15.080 --> 00:07:17.990 align:start position:0% will use typescript so you can press enter<00:07:16.080> and<00:07:16.360> that's<00:07:16.560> it<00:07:17.039> you<00:07:17.160> can<00:07:17.319> run<00:07:17.560> mpm 00:07:17.990 --> 00:07:18.000 align:start position:0% enter and that's it you can run mpm 00:07:18.000 --> 00:07:20.070 align:start position:0% enter and that's it you can run mpm install<00:07:18.599> to<00:07:18.840> install<00:07:19.240> all<00:07:19.400> the<00:07:19.599> necessary 00:07:20.070 --> 00:07:20.080 align:start position:0% install to install all the necessary 00:07:20.080 --> 00:07:23.029 align:start position:0% install to install all the necessary dependencies<00:07:21.080> and<00:07:21.199> then<00:07:21.400> mpm<00:07:21.840> runev<00:07:22.520> to<00:07:22.720> see 00:07:23.029 --> 00:07:23.039 align:start position:0% dependencies and then mpm runev to see 00:07:23.039 --> 00:07:25.589 align:start position:0% dependencies and then mpm runev to see it<00:07:23.199> in<00:07:23.360> our<00:07:23.960> browser<00:07:24.960> the<00:07:25.080> installation 00:07:25.589 --> 00:07:25.599 align:start position:0% it in our browser the installation 00:07:25.599 --> 00:07:27.510 align:start position:0% it in our browser the installation usually<00:07:25.960> takes<00:07:26.240> just<00:07:26.360> a<00:07:26.520> couple<00:07:26.720> of<00:07:26.919> seconds 00:07:27.510 --> 00:07:27.520 align:start position:0% usually takes just a couple of seconds 00:07:27.520 --> 00:07:29.390 align:start position:0% usually takes just a couple of seconds so<00:07:27.840> let's<00:07:28.080> wait<00:07:28.280> for<00:07:28.440> it<00:07:28.680> and<00:07:28.800> then<00:07:28.919> we'll<00:07:29.080> be 00:07:29.390 --> 00:07:29.400 align:start position:0% so let's wait for it and then we'll be 00:07:29.400 --> 00:07:32.070 align:start position:0% so let's wait for it and then we'll be able<00:07:29.560> to<00:07:29.680> run<00:07:29.879> the<00:07:30.080> app<00:07:31.039> once<00:07:31.240> it<00:07:31.400> is<00:07:31.560> done 00:07:32.070 --> 00:07:32.080 align:start position:0% able to run the app once it is done 00:07:32.080 --> 00:07:35.430 align:start position:0% able to run the app once it is done press<00:07:32.360> mpm<00:07:33.240> run<00:07:33.800> Dev<00:07:34.639> this<00:07:34.759> is<00:07:34.879> going<00:07:35.039> to<00:07:35.199> spin 00:07:35.430 --> 00:07:35.440 align:start position:0% press mpm run Dev this is going to spin 00:07:35.440 --> 00:07:38.029 align:start position:0% press mpm run Dev this is going to spin up<00:07:35.560> our<00:07:35.759> application<00:07:36.400> on<00:07:36.639> Local<00:07:37.039> Host 00:07:38.029 --> 00:07:38.039 align:start position:0% up our application on Local Host 00:07:38.039 --> 00:07:40.710 align:start position:0% up our application on Local Host 5173<00:07:39.039> and<00:07:39.160> you<00:07:39.240> can<00:07:39.400> see<00:07:39.720> it<00:07:39.879> took<00:07:40.199> less<00:07:40.400> than<00:07:40.520> a 00:07:40.710 --> 00:07:40.720 align:start position:0% 5173 and you can see it took less than a 00:07:40.720 --> 00:07:43.710 align:start position:0% 5173 and you can see it took less than a second<00:07:41.039> to<00:07:41.199> spin<00:07:41.440> it<00:07:41.599> up<00:07:42.400> so<00:07:42.639> hold<00:07:42.919> control<00:07:43.599> and 00:07:43.710 --> 00:07:43.720 align:start position:0% second to spin it up so hold control and 00:07:43.720 --> 00:07:46.270 align:start position:0% second to spin it up so hold control and then<00:07:43.919> click<00:07:44.199> right<00:07:44.400> here<00:07:44.680> to<00:07:44.879> open<00:07:45.080> it<00:07:45.199> up<00:07:46.120> once 00:07:46.270 --> 00:07:46.280 align:start position:0% then click right here to open it up once 00:07:46.280 --> 00:07:49.110 align:start position:0% then click right here to open it up once you<00:07:46.440> do<00:07:46.639> that<00:07:46.919> you'll<00:07:47.120> see<00:07:47.400> a<00:07:47.639> simple<00:07:48.240> V<00:07:48.680> and 00:07:49.110 --> 00:07:49.120 align:start position:0% you do that you'll see a simple V and 00:07:49.120 --> 00:07:51.790 align:start position:0% you do that you'll see a simple V and react<00:07:49.960> starter<00:07:50.960> this<00:07:51.080> means<00:07:51.360> that<00:07:51.520> we<00:07:51.639> are 00:07:51.790 --> 00:07:51.800 align:start position:0% react starter this means that we are 00:07:51.800 --> 00:07:53.670 align:start position:0% react starter this means that we are ready<00:07:52.199> to<00:07:52.400> get<00:07:52.560> started<00:07:52.960> with<00:07:53.120> creating<00:07:53.520> the 00:07:53.670 --> 00:07:53.680 align:start position:0% ready to get started with creating the 00:07:53.680 --> 00:07:56.430 align:start position:0% ready to get started with creating the base<00:07:54.159> file<00:07:54.479> and<00:07:54.639> folder<00:07:55.039> structure<00:07:55.599> of<00:07:55.720> our 00:07:56.430 --> 00:07:56.440 align:start position:0% base file and folder structure of our 00:07:56.440 --> 00:07:58.309 align:start position:0% base file and folder structure of our application<00:07:57.440> so<00:07:57.680> let's<00:07:57.840> start<00:07:58.080> from 00:07:58.309 --> 00:07:58.319 align:start position:0% application so let's start from 00:07:58.319 --> 00:08:01.589 align:start position:0% application so let's start from beginning<00:07:59.479> here<00:07:59.800> we<00:08:00.000> have<00:08:00.240> our<00:08:00.520> source<00:08:01.240> inside 00:08:01.589 --> 00:08:01.599 align:start position:0% beginning here we have our source inside 00:08:01.599 --> 00:08:04.189 align:start position:0% beginning here we have our source inside of<00:08:01.800> which<00:08:02.039> our<00:08:02.280> entire<00:08:02.720> application<00:08:03.240> will<00:08:03.440> be 00:08:04.189 --> 00:08:04.199 align:start position:0% of which our entire application will be 00:08:04.199 --> 00:08:06.070 align:start position:0% of which our entire application will be here<00:08:04.360> we<00:08:04.520> have<00:08:04.800> assets<00:08:05.360> which<00:08:05.479> we<00:08:05.599> can<00:08:05.720> move<00:08:05.919> to 00:08:06.070 --> 00:08:06.080 align:start position:0% here we have assets which we can move to 00:08:06.080 --> 00:08:08.149 align:start position:0% here we have assets which we can move to the<00:08:06.240> public<00:08:06.520> folder<00:08:07.039> just<00:08:07.280> to<00:08:07.440> clean<00:08:07.680> up<00:08:08.039> what 00:08:08.149 --> 00:08:08.159 align:start position:0% the public folder just to clean up what 00:08:08.159 --> 00:08:10.149 align:start position:0% the public folder just to clean up what we<00:08:08.360> have<00:08:08.520> in<00:08:08.680> the<00:08:08.840> source<00:08:09.720> we're<00:08:09.879> going<00:08:10.000> to 00:08:10.149 --> 00:08:10.159 align:start position:0% we have in the source we're going to 00:08:10.159 --> 00:08:12.589 align:start position:0% we have in the source we're going to have<00:08:10.400> a<00:08:10.599> couple<00:08:10.840> of<00:08:11.000> different<00:08:11.280> CSS<00:08:11.840> files<00:08:12.440> but 00:08:12.589 --> 00:08:12.599 align:start position:0% have a couple of different CSS files but 00:08:12.599 --> 00:08:15.469 align:start position:0% have a couple of different CSS files but for<00:08:12.840> now<00:08:13.240> I<00:08:13.319> want<00:08:13.520> you<00:08:13.720> to<00:08:14.199> delete<00:08:14.919> everything 00:08:15.469 --> 00:08:15.479 align:start position:0% for now I want you to delete everything 00:08:15.479 --> 00:08:17.390 align:start position:0% for now I want you to delete everything that's<00:08:15.680> inside<00:08:15.960> of<00:08:16.080> the<00:08:16.240> source<00:08:17.000> as<00:08:17.080> a<00:08:17.199> matter 00:08:17.390 --> 00:08:17.400 align:start position:0% that's inside of the source as a matter 00:08:17.400 --> 00:08:19.390 align:start position:0% that's inside of the source as a matter of<00:08:17.520> fact<00:08:17.720> let's<00:08:17.919> delete<00:08:18.280> the<00:08:18.360> entire<00:08:18.720> Source 00:08:19.390 --> 00:08:19.400 align:start position:0% of fact let's delete the entire Source 00:08:19.400 --> 00:08:21.749 align:start position:0% of fact let's delete the entire Source itself<00:08:20.400> because<00:08:20.639> we're<00:08:20.800> going<00:08:20.919> to<00:08:21.199> recreate 00:08:21.749 --> 00:08:21.759 align:start position:0% itself because we're going to recreate 00:08:21.759 --> 00:08:24.589 align:start position:0% itself because we're going to recreate it<00:08:22.159> immediately<00:08:22.800> after<00:08:23.560> so<00:08:23.840> create<00:08:24.159> a<00:08:24.360> new 00:08:24.589 --> 00:08:24.599 align:start position:0% it immediately after so create a new 00:08:24.599 --> 00:08:27.070 align:start position:0% it immediately after so create a new source<00:08:24.960> folder<00:08:25.560> so<00:08:25.759> we<00:08:25.840> can<00:08:26.039> start<00:08:26.520> from 00:08:27.070 --> 00:08:27.080 align:start position:0% source folder so we can start from 00:08:27.080 --> 00:08:29.589 align:start position:0% source folder so we can start from scratch<00:08:28.080> and<00:08:28.280> the<00:08:28.400> main<00:08:28.639> point<00:08:28.840> of<00:08:29.000> cont<00:08:29.479> we 00:08:29.589 --> 00:08:29.599 align:start position:0% scratch and the main point of cont we 00:08:29.599 --> 00:08:34.269 align:start position:0% scratch and the main point of cont we need<00:08:29.840> here<00:08:30.280> is<00:08:30.440> a<00:08:30.720> file<00:08:31.159> called<00:08:32.039> main.<00:08:33.279> TSX 00:08:34.269 --> 00:08:34.279 align:start position:0% need here is a file called main. TSX 00:08:34.279 --> 00:08:35.589 align:start position:0% need here is a file called main. TSX this<00:08:34.399> is<00:08:34.560> the<00:08:34.719> starting<00:08:35.080> point<00:08:35.320> of<00:08:35.440> our 00:08:35.589 --> 00:08:35.599 align:start position:0% this is the starting point of our 00:08:35.599 --> 00:08:39.509 align:start position:0% this is the starting point of our application<00:08:36.519> where<00:08:36.800> we<00:08:36.919> can<00:08:37.240> import<00:08:38.519> react 00:08:39.509 --> 00:08:39.519 align:start position:0% application where we can import react 00:08:39.519 --> 00:08:43.110 align:start position:0% application where we can import react from<00:08:40.519> react<00:08:41.519> and<00:08:41.839> the<00:08:42.000> only<00:08:42.440> file<00:08:42.880> where<00:08:43.000> we're 00:08:43.110 --> 00:08:43.120 align:start position:0% from react and the only file where we're 00:08:43.120 --> 00:08:45.790 align:start position:0% from react and the only file where we're going<00:08:43.200> to<00:08:43.399> import<00:08:43.880> react<00:08:44.320> Dom<00:08:44.839> from<00:08:45.080> react<00:08:45.519> Dom 00:08:45.790 --> 00:08:45.800 align:start position:0% going to import react Dom from react Dom 00:08:45.800 --> 00:08:48.350 align:start position:0% going to import react Dom from react Dom as<00:08:45.959> well<00:08:46.839> once<00:08:47.040> you've<00:08:47.240> imported<00:08:47.680> it<00:08:48.080> you<00:08:48.200> can 00:08:48.350 --> 00:08:48.360 align:start position:0% as well once you've imported it you can 00:08:48.360 --> 00:08:49.829 align:start position:0% as well once you've imported it you can say<00:08:48.720> react 00:08:49.829 --> 00:08:49.839 align:start position:0% say react 00:08:49.839 --> 00:08:53.430 align:start position:0% say react dom.<00:08:50.839> create<00:08:51.560> root<00:08:52.360> this<00:08:52.480> is<00:08:52.600> the<00:08:52.760> root<00:08:53.040> or<00:08:53.240> the 00:08:53.430 --> 00:08:53.440 align:start position:0% dom. create root this is the root or the 00:08:53.440 --> 00:08:55.430 align:start position:0% dom. create root this is the root or the starting<00:08:53.760> point<00:08:54.000> of<00:08:54.120> our<00:08:54.279> application<00:08:55.120> so<00:08:55.279> we 00:08:55.430 --> 00:08:55.440 align:start position:0% starting point of our application so we 00:08:55.440 --> 00:08:57.310 align:start position:0% starting point of our application so we have<00:08:55.519> to<00:08:55.720> Target<00:08:56.080> our<00:08:56.279> root<00:08:56.800> by<00:08:56.920> saying 00:08:57.310 --> 00:08:57.320 align:start position:0% have to Target our root by saying 00:08:57.320 --> 00:08:59.750 align:start position:0% have to Target our root by saying document.<00:08:58.279> getet<00:08:58.560> element 00:08:59.750 --> 00:08:59.760 align:start position:0% document. getet element 00:08:59.760 --> 00:09:04.150 align:start position:0% document. getet element by<00:09:00.200> ID<00:09:01.000> and<00:09:01.160> we<00:09:01.399> pass<00:09:01.680> a<00:09:01.839> string<00:09:02.279> of<00:09:02.959> root<00:09:03.959> and 00:09:04.150 --> 00:09:04.160 align:start position:0% by ID and we pass a string of root and 00:09:04.160 --> 00:09:07.590 align:start position:0% by ID and we pass a string of root and then<00:09:04.440> you<00:09:04.600> say.<00:09:05.600> render<00:09:06.600> and<00:09:06.800> inside<00:09:07.079> of<00:09:07.320> here 00:09:07.590 --> 00:09:07.600 align:start position:0% then you say. render and inside of here 00:09:07.600 --> 00:09:09.910 align:start position:0% then you say. render and inside of here we<00:09:07.720> can<00:09:07.880> render<00:09:08.320> a<00:09:08.519> self-closing<00:09:09.519> app 00:09:09.910 --> 00:09:09.920 align:start position:0% we can render a self-closing app 00:09:09.920 --> 00:09:12.710 align:start position:0% we can render a self-closing app component<00:09:10.920> of<00:09:11.079> course<00:09:11.440> this<00:09:11.720> app<00:09:12.079> has<00:09:12.200> to<00:09:12.399> be 00:09:12.710 --> 00:09:12.720 align:start position:0% component of course this app has to be 00:09:12.720 --> 00:09:14.670 align:start position:0% component of course this app has to be created<00:09:13.120> and<00:09:13.320> imported<00:09:13.760> from<00:09:13.920> somewhere<00:09:14.480> so 00:09:14.670 --> 00:09:14.680 align:start position:0% created and imported from somewhere so 00:09:14.680 --> 00:09:19.269 align:start position:0% created and imported from somewhere so let's<00:09:14.880> create<00:09:15.240> a<00:09:15.440> new<00:09:16.000> app.<00:09:16.640> TSX<00:09:18.040> page<00:09:19.040> this<00:09:19.160> is 00:09:19.269 --> 00:09:19.279 align:start position:0% let's create a new app. TSX page this is 00:09:19.279 --> 00:09:21.870 align:start position:0% let's create a new app. TSX page this is going<00:09:19.480> to<00:09:19.600> be<00:09:19.760> our<00:09:20.040> primary<00:09:20.440> router<00:09:20.920> component 00:09:21.870 --> 00:09:21.880 align:start position:0% going to be our primary router component 00:09:21.880 --> 00:09:24.790 align:start position:0% going to be our primary router component so<00:09:22.160> inside<00:09:22.519> of<00:09:22.720> there<00:09:23.160> run<00:09:23.600> ra 00:09:24.790 --> 00:09:24.800 align:start position:0% so inside of there run ra 00:09:24.800 --> 00:09:28.030 align:start position:0% so inside of there run ra Ace<00:09:25.800> this<00:09:25.920> is<00:09:26.160> a<00:09:26.360> shortcut<00:09:26.880> to<00:09:27.079> create<00:09:27.399> a<00:09:27.600> react 00:09:28.030 --> 00:09:28.040 align:start position:0% Ace this is a shortcut to create a react 00:09:28.040 --> 00:09:30.269 align:start position:0% Ace this is a shortcut to create a react Arrow<00:09:28.399> function<00:09:28.760> component 00:09:30.269 --> 00:09:30.279 align:start position:0% Arrow function component 00:09:30.279 --> 00:09:32.110 align:start position:0% Arrow function component if<00:09:30.480> this<00:09:30.600> didn't<00:09:30.880> work<00:09:31.079> for<00:09:31.279> you<00:09:31.680> you<00:09:31.880> might 00:09:32.110 --> 00:09:32.120 align:start position:0% if this didn't work for you you might 00:09:32.120 --> 00:09:33.990 align:start position:0% if this didn't work for you you might not<00:09:32.399> have<00:09:32.560> the<00:09:32.760> necessary<00:09:33.240> extension<00:09:33.640> to<00:09:33.800> do 00:09:33.990 --> 00:09:34.000 align:start position:0% not have the necessary extension to do 00:09:34.000 --> 00:09:37.310 align:start position:0% not have the necessary extension to do so<00:09:34.399> so<00:09:34.600> head<00:09:34.760> to<00:09:34.959> extensions<00:09:35.720> and<00:09:35.920> type<00:09:36.320> es7 00:09:37.310 --> 00:09:37.320 align:start position:0% so so head to extensions and type es7 00:09:37.320 --> 00:09:41.110 align:start position:0% so so head to extensions and type es7 plus<00:09:38.120> react<00:09:38.760> Redux<00:09:39.399> react<00:09:39.800> native<00:09:40.120> Snippets 00:09:41.110 --> 00:09:41.120 align:start position:0% plus react Redux react native Snippets 00:09:41.120 --> 00:09:42.870 align:start position:0% plus react Redux react native Snippets install<00:09:41.560> this<00:09:41.800> package<00:09:42.279> and<00:09:42.399> then<00:09:42.560> you'll<00:09:42.760> be 00:09:42.870 --> 00:09:42.880 align:start position:0% install this package and then you'll be 00:09:42.880 --> 00:09:45.990 align:start position:0% install this package and then you'll be able<00:09:43.079> to<00:09:43.320> run<00:09:43.640> that<00:09:43.800> command<00:09:44.360> as<00:09:44.800> well<00:09:45.800> with 00:09:45.990 --> 00:09:46.000 align:start position:0% able to run that command as well with 00:09:46.000 --> 00:09:48.750 align:start position:0% able to run that command as well with that<00:09:46.200> said<00:09:46.760> we<00:09:46.880> can<00:09:47.040> now<00:09:47.320> import<00:09:48.000> this<00:09:48.320> app 00:09:48.750 --> 00:09:48.760 align:start position:0% that said we can now import this app 00:09:48.760 --> 00:09:50.750 align:start position:0% that said we can now import this app within<00:09:49.040> the<00:09:49.200> main<00:09:49.959> so<00:09:50.240> let's<00:09:50.440> simply 00:09:50.750 --> 00:09:50.760 align:start position:0% within the main so let's simply 00:09:50.760 --> 00:09:53.710 align:start position:0% within the main so let's simply doubleclick<00:09:51.440> this<00:09:51.800> app<00:09:52.760> and<00:09:53.000> press<00:09:53.320> control 00:09:53.710 --> 00:09:53.720 align:start position:0% doubleclick this app and press control 00:09:53.720 --> 00:09:56.030 align:start position:0% doubleclick this app and press control or<00:09:53.920> command<00:09:54.360> space<00:09:55.120> that's<00:09:55.320> going<00:09:55.440> to<00:09:55.680> open 00:09:56.030 --> 00:09:56.040 align:start position:0% or command space that's going to open 00:09:56.040 --> 00:09:57.829 align:start position:0% or command space that's going to open this<00:09:56.240> up<00:09:56.560> which<00:09:56.680> is<00:09:56.800> going<00:09:56.959> to<00:09:57.200> allow<00:09:57.480> you<00:09:57.640> to 00:09:57.829 --> 00:09:57.839 align:start position:0% this up which is going to allow you to 00:09:57.839 --> 00:10:00.190 align:start position:0% this up which is going to allow you to just<00:09:58.000> click<00:09:58.240> it<00:09:58.760> and<00:09:59.160> Auto<00:09:59.519> Import<00:10:00.040> we're 00:10:00.190 --> 00:10:00.200 align:start position:0% just click it and Auto Import we're 00:10:00.200 --> 00:10:01.790 align:start position:0% just click it and Auto Import we're going<00:10:00.279> to<00:10:00.440> use<00:10:00.680> this<00:10:00.839> functionality<00:10:01.519> many 00:10:01.790 --> 00:10:01.800 align:start position:0% going to use this functionality many 00:10:01.800 --> 00:10:03.350 align:start position:0% going to use this functionality many times<00:10:02.040> throughout<00:10:02.360> this<00:10:02.560> video<00:10:02.959> so<00:10:03.120> you'll 00:10:03.350 --> 00:10:03.360 align:start position:0% times throughout this video so you'll 00:10:03.360 --> 00:10:05.829 align:start position:0% times throughout this video so you'll get<00:10:03.480> used<00:10:03.720> to<00:10:03.880> it<00:10:04.760> one<00:10:04.920> thing<00:10:05.079> that<00:10:05.200> I<00:10:05.320> noticed 00:10:05.829 --> 00:10:05.839 align:start position:0% get used to it one thing that I noticed 00:10:05.839 --> 00:10:07.829 align:start position:0% get used to it one thing that I noticed is<00:10:06.040> that<00:10:06.240> create<00:10:06.600> root<00:10:06.920> doesn't<00:10:07.320> exist<00:10:07.640> in 00:10:07.829 --> 00:10:07.839 align:start position:0% is that create root doesn't exist in 00:10:07.839 --> 00:10:10.350 align:start position:0% is that create root doesn't exist in react<00:10:08.240> Dom<00:10:08.720> and<00:10:08.839> that's<00:10:09.079> because<00:10:09.399> react<00:10:09.800> Dom 00:10:10.350 --> 00:10:10.360 align:start position:0% react Dom and that's because react Dom 00:10:10.360 --> 00:10:12.509 align:start position:0% react Dom and that's because react Dom has<00:10:10.519> to<00:10:10.640> be<00:10:10.800> imported<00:10:11.320> from 00:10:12.509 --> 00:10:12.519 align:start position:0% has to be imported from 00:10:12.519 --> 00:10:16.069 align:start position:0% has to be imported from react-dom<00:10:13.519> SL<00:10:14.200> client<00:10:15.200> and<00:10:15.320> then<00:10:15.560> here<00:10:15.959> this 00:10:16.069 --> 00:10:16.079 align:start position:0% react-dom SL client and then here this 00:10:16.079 --> 00:10:18.150 align:start position:0% react-dom SL client and then here this is<00:10:16.279> potentially<00:10:16.720> null<00:10:17.200> so<00:10:17.320> we<00:10:17.480> have<00:10:17.600> to<00:10:17.800> also 00:10:18.150 --> 00:10:18.160 align:start position:0% is potentially null so we have to also 00:10:18.160 --> 00:10:20.269 align:start position:0% is potentially null so we have to also add<00:10:18.399> an<00:10:18.560> exclamation<00:10:19.079> mark<00:10:19.399> at<00:10:19.519> the<00:10:19.640> end<00:10:20.040> so 00:10:20.269 --> 00:10:20.279 align:start position:0% add an exclamation mark at the end so 00:10:20.279 --> 00:10:22.230 align:start position:0% add an exclamation mark at the end so typescript<00:10:20.760> doesn't<00:10:21.040> complain<00:10:21.839> and<00:10:22.040> no 00:10:22.230 --> 00:10:22.240 align:start position:0% typescript doesn't complain and no 00:10:22.240 --> 00:10:25.430 align:start position:0% typescript doesn't complain and no longer<00:10:22.560> are<00:10:22.880> react<00:10:23.360> Imports<00:10:24.200> necessary<00:10:25.200> so 00:10:25.430 --> 00:10:25.440 align:start position:0% longer are react Imports necessary so 00:10:25.440 --> 00:10:27.550 align:start position:0% longer are react Imports necessary so with<00:10:25.640> that<00:10:25.920> we<00:10:26.079> have<00:10:26.240> our<00:10:26.440> main<00:10:26.959> and<00:10:27.120> we<00:10:27.320> have 00:10:27.550 --> 00:10:27.560 align:start position:0% with that we have our main and we have 00:10:27.560 --> 00:10:30.030 align:start position:0% with that we have our main and we have our<00:10:27.920> app<00:10:28.600> these<00:10:28.760> are<00:10:29.120> the<00:10:29.240> starting<00:10:29.560> points<00:10:29.880> of 00:10:30.030 --> 00:10:30.040 align:start position:0% our app these are the starting points of 00:10:30.040 --> 00:10:32.949 align:start position:0% our app these are the starting points of our<00:10:30.399> application<00:10:31.399> if<00:10:31.480> you<00:10:31.680> go<00:10:31.959> back<00:10:32.440> and<00:10:32.680> zoom 00:10:32.949 --> 00:10:32.959 align:start position:0% our application if you go back and zoom 00:10:32.959 --> 00:10:35.550 align:start position:0% our application if you go back and zoom in<00:10:33.200> really<00:10:33.440> closely<00:10:34.120> you<00:10:34.279> can<00:10:34.440> see<00:10:34.839> our<00:10:35.120> div 00:10:35.550 --> 00:10:35.560 align:start position:0% in really closely you can see our div 00:10:35.560 --> 00:10:38.430 align:start position:0% in really closely you can see our div that<00:10:35.720> says<00:10:36.160> app<00:10:37.160> now<00:10:37.480> I<00:10:37.600> know<00:10:37.839> that<00:10:38.040> this<00:10:38.120> is<00:10:38.240> a 00:10:38.430 --> 00:10:38.440 align:start position:0% that says app now I know that this is a 00:10:38.440 --> 00:10:40.310 align:start position:0% that says app now I know that this is a pretty<00:10:38.680> simple<00:10:39.040> start<00:10:39.800> and<00:10:39.959> you<00:10:40.120> might 00:10:40.310 --> 00:10:40.320 align:start position:0% pretty simple start and you might 00:10:40.320 --> 00:10:42.910 align:start position:0% pretty simple start and you might already<00:10:40.600> know<00:10:40.880> how<00:10:40.959> to<00:10:41.120> set<00:10:41.360> all<00:10:41.480> of<00:10:41.600> this<00:10:41.920> up 00:10:42.910 --> 00:10:42.920 align:start position:0% already know how to set all of this up 00:10:42.920 --> 00:10:44.829 align:start position:0% already know how to set all of this up but<00:10:43.240> let<00:10:43.360> me<00:10:43.560> just<00:10:43.760> remind<00:10:44.120> you<00:10:44.480> that<00:10:44.720> what 00:10:44.829 --> 00:10:44.839 align:start position:0% but let me just remind you that what 00:10:44.839 --> 00:10:47.230 align:start position:0% but let me just remind you that what you're<00:10:45.120> about<00:10:45.360> to<00:10:45.519> build<00:10:45.839> today<00:10:46.519> is 00:10:47.230 --> 00:10:47.240 align:start position:0% you're about to build today is 00:10:47.240 --> 00:10:49.350 align:start position:0% you're about to build today is extraordinary<00:10:48.240> it's<00:10:48.600> not<00:10:48.920> something<00:10:49.200> you've 00:10:49.350 --> 00:10:49.360 align:start position:0% extraordinary it's not something you've 00:10:49.360 --> 00:10:51.470 align:start position:0% extraordinary it's not something you've built<00:10:49.639> so<00:10:49.839> far<00:10:50.320> we're<00:10:50.480> going<00:10:50.600> to<00:10:50.720> use<00:10:50.959> the<00:10:51.200> best 00:10:51.470 --> 00:10:51.480 align:start position:0% built so far we're going to use the best 00:10:51.480 --> 00:10:54.590 align:start position:0% built so far we're going to use the best Technologies<00:10:52.079> today<00:10:52.760> to<00:10:53.079> create<00:10:53.399> a<00:10:53.639> complete 00:10:54.590 --> 00:10:54.600 align:start position:0% Technologies today to create a complete 00:10:54.600 --> 00:10:57.269 align:start position:0% Technologies today to create a complete comprehensive<00:10:55.600> Instagram<00:10:56.360> clone<00:10:57.040> with 00:10:57.269 --> 00:10:57.279 align:start position:0% comprehensive Instagram clone with 00:10:57.279 --> 00:10:59.670 align:start position:0% comprehensive Instagram clone with liking<00:10:58.000> saving<00:10:58.680> top<00:10:59.120> creators 00:10:59.670 --> 00:10:59.680 align:start position:0% liking saving top creators 00:10:59.680 --> 00:11:02.470 align:start position:0% liking saving top creators functionalities<00:11:00.680> and<00:11:01.120> much<00:11:01.399> more<00:11:02.000> so<00:11:02.240> just 00:11:02.470 --> 00:11:02.480 align:start position:0% functionalities and much more so just 00:11:02.480 --> 00:11:05.150 align:start position:0% functionalities and much more so just keep<00:11:02.800> watching<00:11:03.480> and<00:11:03.760> step<00:11:04.040> by<00:11:04.240> step<00:11:04.639> we'll<00:11:04.920> get 00:11:05.150 --> 00:11:05.160 align:start position:0% keep watching and step by step we'll get 00:11:05.160 --> 00:11:06.870 align:start position:0% keep watching and step by step we'll get there<00:11:05.440> and<00:11:05.560> you'll<00:11:05.760> know<00:11:06.079> how<00:11:06.200> to<00:11:06.399> create<00:11:06.680> this 00:11:06.870 --> 00:11:06.880 align:start position:0% there and you'll know how to create this 00:11:06.880 --> 00:11:08.310 align:start position:0% there and you'll know how to create this application<00:11:07.440> from 00:11:08.310 --> 00:11:08.320 align:start position:0% application from 00:11:08.320 --> 00:11:11.069 align:start position:0% application from scratch<00:11:09.320> now<00:11:09.519> that<00:11:09.680> we<00:11:09.839> have<00:11:10.000> the<00:11:10.200> app<00:11:10.600> we<00:11:10.760> also 00:11:11.069 --> 00:11:11.079 align:start position:0% scratch now that we have the app we also 00:11:11.079 --> 00:11:13.670 align:start position:0% scratch now that we have the app we also have<00:11:11.200> to<00:11:11.440> have<00:11:11.639> some<00:11:11.920> basic<00:11:12.279> styles<00:11:13.160> for<00:11:13.440> that 00:11:13.670 --> 00:11:13.680 align:start position:0% have to have some basic styles for that 00:11:13.680 --> 00:11:15.670 align:start position:0% have to have some basic styles for that we're<00:11:13.800> going<00:11:13.920> to<00:11:14.040> create<00:11:14.320> a<00:11:14.480> new<00:11:14.720> file<00:11:15.160> called 00:11:15.670 --> 00:11:15.680 align:start position:0% we're going to create a new file called 00:11:15.680 --> 00:11:19.150 align:start position:0% we're going to create a new file called global.<00:11:16.920> CSS<00:11:17.920> keep<00:11:18.079> in<00:11:18.240> mind<00:11:18.560> that<00:11:18.760> all<00:11:19.040> the 00:11:19.150 --> 00:11:19.160 align:start position:0% global. CSS keep in mind that all the 00:11:19.160 --> 00:11:20.629 align:start position:0% global. CSS keep in mind that all the Tailwind<00:11:19.639> styling<00:11:20.040> that<00:11:20.160> we'll<00:11:20.320> be<00:11:20.440> doing 00:11:20.629 --> 00:11:20.639 align:start position:0% Tailwind styling that we'll be doing 00:11:20.639 --> 00:11:22.990 align:start position:0% Tailwind styling that we'll be doing through<00:11:20.880> this<00:11:21.079> video<00:11:21.600> will<00:11:21.800> be<00:11:21.959> done<00:11:22.240> by<00:11:22.480> you 00:11:22.990 --> 00:11:23.000 align:start position:0% through this video will be done by you 00:11:23.000 --> 00:11:25.590 align:start position:0% through this video will be done by you directly<00:11:23.519> within<00:11:24.000> components<00:11:25.000> but<00:11:25.279> we<00:11:25.440> have 00:11:25.590 --> 00:11:25.600 align:start position:0% directly within components but we have 00:11:25.600 --> 00:11:27.590 align:start position:0% directly within components but we have to<00:11:25.760> have<00:11:25.920> some<00:11:26.120> helper<00:11:26.560> classes<00:11:27.000> here<00:11:27.279> to<00:11:27.440> make 00:11:27.590 --> 00:11:27.600 align:start position:0% to have some helper classes here to make 00:11:27.600 --> 00:11:29.829 align:start position:0% to have some helper classes here to make her<00:11:27.839> life<00:11:28.000> a<00:11:28.120> bit<00:11:28.320> easier<00:11:29.240> so<00:11:29.519> in<00:11:29.680> the 00:11:29.829 --> 00:11:29.839 align:start position:0% her life a bit easier so in the 00:11:29.839 --> 00:11:31.710 align:start position:0% her life a bit easier so in the description<00:11:30.279> down<00:11:30.480> below<00:11:30.920> you<00:11:31.040> can<00:11:31.240> find<00:11:31.519> a 00:11:31.710 --> 00:11:31.720 align:start position:0% description down below you can find a 00:11:31.720 --> 00:11:34.150 align:start position:0% description down below you can find a GitHub<00:11:32.120> gist<00:11:32.600> that<00:11:32.760> contains<00:11:33.240> a<00:11:33.399> global<00:11:33.880> stat 00:11:34.150 --> 00:11:34.160 align:start position:0% GitHub gist that contains a global stat 00:11:34.160 --> 00:11:37.629 align:start position:0% GitHub gist that contains a global stat CSS<00:11:34.680> file<00:11:35.560> copy<00:11:35.839> it<00:11:36.279> and<00:11:36.480> paste<00:11:36.720> it<00:11:36.880> here 00:11:37.629 --> 00:11:37.639 align:start position:0% CSS file copy it and paste it here 00:11:37.639 --> 00:11:39.509 align:start position:0% CSS file copy it and paste it here you're<00:11:37.800> going<00:11:37.880> to<00:11:38.040> notice<00:11:38.440> that<00:11:38.720> here<00:11:39.120> we<00:11:39.320> have 00:11:39.509 --> 00:11:39.519 align:start position:0% you're going to notice that here we have 00:11:39.519 --> 00:11:42.030 align:start position:0% you're going to notice that here we have some<00:11:39.760> helper<00:11:40.240> functions<00:11:40.800> for<00:11:41.040> the<00:11:41.240> top<00:11:41.519> bar 00:11:42.030 --> 00:11:42.040 align:start position:0% some helper functions for the top bar 00:11:42.040 --> 00:11:45.150 align:start position:0% some helper functions for the top bar for<00:11:42.360> postcard<00:11:43.000> image<00:11:43.480> and<00:11:43.639> so<00:11:43.839> on<00:11:44.440> which<00:11:44.680> apply 00:11:45.150 --> 00:11:45.160 align:start position:0% for postcard image and so on which apply 00:11:45.160 --> 00:11:48.069 align:start position:0% for postcard image and so on which apply multiple<00:11:45.680> Tailwind<00:11:46.120> CSS<00:11:46.639> classes<00:11:47.560> so<00:11:47.800> if<00:11:47.920> at 00:11:48.069 --> 00:11:48.079 align:start position:0% multiple Tailwind CSS classes so if at 00:11:48.079 --> 00:11:49.629 align:start position:0% multiple Tailwind CSS classes so if at any<00:11:48.279> point<00:11:48.480> you<00:11:48.560> want<00:11:48.680> to<00:11:48.839> see<00:11:49.160> what<00:11:49.279> a<00:11:49.399> grid 00:11:49.629 --> 00:11:49.639 align:start position:0% any point you want to see what a grid 00:11:49.639 --> 00:11:52.110 align:start position:0% any point you want to see what a grid container<00:11:50.160> is<00:11:50.920> it's<00:11:51.160> simply<00:11:51.560> a<00:11:51.760> set<00:11:51.920> of 00:11:52.110 --> 00:11:52.120 align:start position:0% container is it's simply a set of 00:11:52.120 --> 00:11:54.430 align:start position:0% container is it's simply a set of utility<00:11:52.600> classes<00:11:53.320> to<00:11:53.680> make<00:11:53.920> that<00:11:54.120> grid 00:11:54.430 --> 00:11:54.440 align:start position:0% utility classes to make that grid 00:11:54.440 --> 00:11:57.389 align:start position:0% utility classes to make that grid container<00:11:55.160> possible<00:11:56.160> so<00:11:56.560> with<00:11:56.760> that<00:11:56.959> said<00:11:57.279> we 00:11:57.389 --> 00:11:57.399 align:start position:0% container possible so with that said we 00:11:57.399 --> 00:12:00.550 align:start position:0% container possible so with that said we can<00:11:57.639> import<00:11:58.160> the<00:11:58.279> global.<00:11:59.000> CSS<00:11:59.959> right<00:12:00.279> within 00:12:00.550 --> 00:12:00.560 align:start position:0% can import the global. CSS right within 00:12:00.560 --> 00:12:02.829 align:start position:0% can import the global. CSS right within the<00:12:00.800> app<00:12:01.320> by<00:12:01.480> saying 00:12:02.829 --> 00:12:02.839 align:start position:0% the app by saying 00:12:02.839 --> 00:12:07.269 align:start position:0% the app by saying import.<00:12:03.839> global.<00:12:04.839> CSS<00:12:05.839> but<00:12:06.079> hey<00:12:06.440> this<00:12:06.600> global. 00:12:07.269 --> 00:12:07.279 align:start position:0% import. global. CSS but hey this global. 00:12:07.279 --> 00:12:10.069 align:start position:0% import. global. CSS but hey this global. CSS<00:12:07.760> file<00:12:08.120> is<00:12:08.279> using<00:12:08.600> Tailwind<00:12:09.480> so<00:12:09.760> let's<00:12:09.959> go 00:12:10.069 --> 00:12:10.079 align:start position:0% CSS file is using Tailwind so let's go 00:12:10.079 --> 00:12:12.590 align:start position:0% CSS file is using Tailwind so let's go ahead<00:12:10.440> and<00:12:10.639> let's<00:12:10.800> set<00:12:11.000> up<00:12:11.320> tailwind<00:12:12.320> and<00:12:12.519> if 00:12:12.590 --> 00:12:12.600 align:start position:0% ahead and let's set up tailwind and if 00:12:12.600 --> 00:12:14.590 align:start position:0% ahead and let's set up tailwind and if you<00:12:12.720> haven't<00:12:12.959> heard<00:12:13.160> of<00:12:13.279> Tailwind<00:12:14.040> Tailwind 00:12:14.590 --> 00:12:14.600 align:start position:0% you haven't heard of Tailwind Tailwind 00:12:14.600 --> 00:12:17.509 align:start position:0% you haven't heard of Tailwind Tailwind is<00:12:14.720> a<00:12:15.000> phenomenal<00:12:15.920> utility<00:12:16.480> first<00:12:17.000> CSS 00:12:17.509 --> 00:12:17.519 align:start position:0% is a phenomenal utility first CSS 00:12:17.519 --> 00:12:20.230 align:start position:0% is a phenomenal utility first CSS framework<00:12:18.360> pack<00:12:18.680> with<00:12:18.880> utility<00:12:19.360> classes<00:12:20.000> to 00:12:20.230 --> 00:12:20.240 align:start position:0% framework pack with utility classes to 00:12:20.240 --> 00:12:22.710 align:start position:0% framework pack with utility classes to make<00:12:20.480> our<00:12:20.720> styling<00:12:21.279> simpler<00:12:22.199> it<00:12:22.360> doesn't 00:12:22.710 --> 00:12:22.720 align:start position:0% make our styling simpler it doesn't 00:12:22.720 --> 00:12:25.750 align:start position:0% make our styling simpler it doesn't impose<00:12:23.240> rules<00:12:23.760> like<00:12:24.000> UI<00:12:24.320> libraries<00:12:24.839> do<00:12:25.480> but 00:12:25.750 --> 00:12:25.760 align:start position:0% impose rules like UI libraries do but 00:12:25.760 --> 00:12:27.829 align:start position:0% impose rules like UI libraries do but rather<00:12:26.160> it<00:12:26.279> allows<00:12:26.600> you<00:12:26.720> to<00:12:26.920> create<00:12:27.399> custom 00:12:27.829 --> 00:12:27.839 align:start position:0% rather it allows you to create custom 00:12:27.839 --> 00:12:30.750 align:start position:0% rather it allows you to create custom Styles<00:12:28.519> much<00:12:28.920> more<00:12:29.120> quickly<00:12:29.959> so<00:12:30.240> let's<00:12:30.480> click 00:12:30.750 --> 00:12:30.760 align:start position:0% Styles much more quickly so let's click 00:12:30.760 --> 00:12:33.189 align:start position:0% Styles much more quickly so let's click get<00:12:31.040> started<00:12:32.040> and<00:12:32.199> let's<00:12:32.399> install<00:12:32.720> Tailwind 00:12:33.189 --> 00:12:33.199 align:start position:0% get started and let's install Tailwind 00:12:33.199 --> 00:12:36.870 align:start position:0% get started and let's install Tailwind CSS<00:12:34.199> but<00:12:34.360> we<00:12:34.480> can<00:12:34.680> also<00:12:34.920> search<00:12:35.279> for<00:12:35.800> V<00:12:36.560> this<00:12:36.680> is 00:12:36.870 --> 00:12:36.880 align:start position:0% CSS but we can also search for V this is 00:12:36.880 --> 00:12:38.870 align:start position:0% CSS but we can also search for V this is going<00:12:37.040> to<00:12:37.160> tell<00:12:37.360> us<00:12:37.639> how<00:12:37.760> to<00:12:37.920> install<00:12:38.279> Tailwind 00:12:38.870 --> 00:12:38.880 align:start position:0% going to tell us how to install Tailwind 00:12:38.880 --> 00:12:41.829 align:start position:0% going to tell us how to install Tailwind with<00:12:39.320> vit<00:12:40.320> we<00:12:40.480> first<00:12:40.760> have<00:12:40.880> to<00:12:41.040> run<00:12:41.360> mpm 00:12:41.829 --> 00:12:41.839 align:start position:0% with vit we first have to run mpm 00:12:41.839 --> 00:12:45.030 align:start position:0% with vit we first have to run mpm install<00:12:42.360> DD<00:12:43.040> Tailwind<00:12:43.519> CSS<00:12:44.040> post<00:12:44.360> CSS<00:12:44.880> and 00:12:45.030 --> 00:12:45.040 align:start position:0% install DD Tailwind CSS post CSS and 00:12:45.040 --> 00:12:47.629 align:start position:0% install DD Tailwind CSS post CSS and auto<00:12:45.399> prefixer<00:12:46.160> so<00:12:46.440> back<00:12:46.600> in<00:12:46.720> our<00:12:47.000> app<00:12:47.399> you<00:12:47.480> can 00:12:47.629 --> 00:12:47.639 align:start position:0% auto prefixer so back in our app you can 00:12:47.639 --> 00:12:49.470 align:start position:0% auto prefixer so back in our app you can go<00:12:47.760> to<00:12:47.959> terminal<00:12:48.639> and<00:12:48.760> let's<00:12:48.959> go<00:12:49.079> ahead<00:12:49.279> and 00:12:49.470 --> 00:12:49.480 align:start position:0% go to terminal and let's go ahead and 00:12:49.480 --> 00:12:52.629 align:start position:0% go to terminal and let's go ahead and open<00:12:49.720> up<00:12:49.920> a<00:12:50.120> new<00:12:50.360> terminal<00:12:51.000> window<00:12:52.000> and<00:12:52.240> within 00:12:52.629 --> 00:12:52.639 align:start position:0% open up a new terminal window and within 00:12:52.639 --> 00:12:55.870 align:start position:0% open up a new terminal window and within here<00:12:53.160> simply<00:12:53.800> paste<00:12:54.120> it<00:12:54.399> and<00:12:54.600> press<00:12:54.959> enter 00:12:55.870 --> 00:12:55.880 align:start position:0% here simply paste it and press enter 00:12:55.880 --> 00:12:57.509 align:start position:0% here simply paste it and press enter this<00:12:56.000> is<00:12:56.120> going<00:12:56.240> to<00:12:56.399> install<00:12:56.800> the<00:12:56.959> necessary 00:12:57.509 --> 00:12:57.519 align:start position:0% this is going to install the necessary 00:12:57.519 --> 00:12:59.829 align:start position:0% this is going to install the necessary packages<00:12:58.120> for<00:12:58.320> us<00:12:58.480> to<00:12:58.600> be<00:12:58.920> able<00:12:59.120> to<00:12:59.320> style 00:12:59.829 --> 00:12:59.839 align:start position:0% packages for us to be able to style 00:12:59.839 --> 00:13:02.870 align:start position:0% packages for us to be able to style using<00:13:00.600> Tailwind<00:13:01.600> once<00:13:01.880> that<00:13:02.000> is<00:13:02.160> done<00:13:02.560> you<00:13:02.680> can 00:13:02.870 --> 00:13:02.880 align:start position:0% using Tailwind once that is done you can 00:13:02.880 --> 00:13:05.069 align:start position:0% using Tailwind once that is done you can also<00:13:03.199> copy<00:13:03.480> and<00:13:03.680> paste<00:13:03.920> the<00:13:04.040> next 00:13:05.069 --> 00:13:05.079 align:start position:0% also copy and paste the next 00:13:05.079 --> 00:13:10.189 align:start position:0% also copy and paste the next command<00:13:06.079> MPX<00:13:06.720> Tailwind<00:13:07.120> CSS<00:13:07.760> in<00:13:08.000> it-<00:13:09.079> P<00:13:10.079> this 00:13:10.189 --> 00:13:10.199 align:start position:0% command MPX Tailwind CSS in it- P this 00:13:10.199 --> 00:13:11.990 align:start position:0% command MPX Tailwind CSS in it- P this is<00:13:10.320> going<00:13:10.480> to<00:13:10.680> initialize<00:13:11.279> and<00:13:11.480> create<00:13:11.839> the 00:13:11.990 --> 00:13:12.000 align:start position:0% is going to initialize and create the 00:13:12.000 --> 00:13:13.990 align:start position:0% is going to initialize and create the necessary<00:13:12.560> projects<00:13:13.160> such<00:13:13.320> as<00:13:13.440> the<00:13:13.560> Tailwind 00:13:13.990 --> 00:13:14.000 align:start position:0% necessary projects such as the Tailwind 00:13:14.000 --> 00:13:16.750 align:start position:0% necessary projects such as the Tailwind config<00:13:14.560> JS<00:13:15.560> next<00:13:15.920> you<00:13:16.079> have<00:13:16.199> to<00:13:16.360> configure 00:13:16.750 --> 00:13:16.760 align:start position:0% config JS next you have to configure 00:13:16.760 --> 00:13:19.110 align:start position:0% config JS next you have to configure your<00:13:16.959> template<00:13:17.440> paths<00:13:18.120> so<00:13:18.320> simply<00:13:18.639> copy<00:13:18.920> the 00:13:19.110 --> 00:13:19.120 align:start position:0% your template paths so simply copy the 00:13:19.120 --> 00:13:21.430 align:start position:0% your template paths so simply copy the content<00:13:19.480> from<00:13:19.720> here<00:13:20.199> and<00:13:20.360> go<00:13:20.519> to<00:13:20.720> Tailwind<00:13:21.199> doc 00:13:21.430 --> 00:13:21.440 align:start position:0% content from here and go to Tailwind doc 00:13:21.440 --> 00:13:24.509 align:start position:0% content from here and go to Tailwind doc config.js<00:13:22.320> once<00:13:23.320> you're<00:13:23.600> there<00:13:24.160> simply 00:13:24.509 --> 00:13:24.519 align:start position:0% config.js once you're there simply 00:13:24.519 --> 00:13:27.269 align:start position:0% config.js once you're there simply modify<00:13:25.000> this<00:13:25.199> content<00:13:25.880> to<00:13:26.440> what<00:13:26.720> we<00:13:26.920> copied 00:13:27.269 --> 00:13:27.279 align:start position:0% modify this content to what we copied 00:13:27.279 --> 00:13:29.750 align:start position:0% modify this content to what we copied from<00:13:27.399> the<00:13:27.760> documentation<00:13:28.920> finally<00:13:29.519> add 00:13:29.750 --> 00:13:29.760 align:start position:0% from the documentation finally add 00:13:29.760 --> 00:13:31.990 align:start position:0% from the documentation finally add tailing<00:13:30.240> directives<00:13:30.680> to<00:13:30.800> your 00:13:31.990 --> 00:13:32.000 align:start position:0% tailing directives to your 00:13:32.000 --> 00:13:34.069 align:start position:0% tailing directives to your CSS<00:13:33.000> that's<00:13:33.199> going<00:13:33.360> to<00:13:33.480> be<00:13:33.639> within<00:13:33.920> the 00:13:34.069 --> 00:13:34.079 align:start position:0% CSS that's going to be within the 00:13:34.079 --> 00:13:36.430 align:start position:0% CSS that's going to be within the globals<00:13:34.959> and<00:13:35.279> we<00:13:35.399> have<00:13:35.600> already<00:13:35.920> done<00:13:36.199> that 00:13:36.430 --> 00:13:36.440 align:start position:0% globals and we have already done that 00:13:36.440 --> 00:13:37.790 align:start position:0% globals and we have already done that with<00:13:36.600> our<00:13:36.800> Global 00:13:37.790 --> 00:13:37.800 align:start position:0% with our Global 00:13:37.800 --> 00:13:40.990 align:start position:0% with our Global CSS<00:13:38.800> finally<00:13:39.240> run<00:13:39.480> mpm<00:13:39.920> run<00:13:40.160> Dev<00:13:40.680> and<00:13:40.800> then<00:13:40.920> you 00:13:40.990 --> 00:13:41.000 align:start position:0% CSS finally run mpm run Dev and then you 00:13:41.000 --> 00:13:43.550 align:start position:0% CSS finally run mpm run Dev and then you can<00:13:41.240> style<00:13:41.600> your<00:13:41.760> hello<00:13:42.120> world<00:13:42.920> with<00:13:43.160> a<00:13:43.320> couple 00:13:43.550 --> 00:13:43.560 align:start position:0% can style your hello world with a couple 00:13:43.560 --> 00:13:47.230 align:start position:0% can style your hello world with a couple of<00:13:43.760> classes<00:13:44.320> to<00:13:44.480> see<00:13:44.800> if<00:13:44.959> it<00:13:45.600> works<00:13:46.600> so<00:13:46.920> back<00:13:47.079> in 00:13:47.230 --> 00:13:47.240 align:start position:0% of classes to see if it works so back in 00:13:47.240 --> 00:13:50.590 align:start position:0% of classes to see if it works so back in our<00:13:47.519> app<00:13:47.880> we<00:13:48.000> can<00:13:48.120> now<00:13:48.320> modify<00:13:48.760> the<00:13:48.959> app<00:13:49.519> to<00:13:49.760> say 00:13:50.590 --> 00:13:50.600 align:start position:0% our app we can now modify the app to say 00:13:50.600 --> 00:13:52.430 align:start position:0% our app we can now modify the app to say hello 00:13:52.430 --> 00:13:52.440 align:start position:0% hello 00:13:52.440 --> 00:13:55.910 align:start position:0% hello snapgram<00:13:53.440> let's<00:13:53.680> save<00:13:54.120> it<00:13:55.120> and<00:13:55.399> back<00:13:55.560> in<00:13:55.680> our 00:13:55.910 --> 00:13:55.920 align:start position:0% snapgram let's save it and back in our 00:13:55.920 --> 00:13:58.189 align:start position:0% snapgram let's save it and back in our app<00:13:56.320> we<00:13:56.440> can<00:13:56.600> see<00:13:56.800> that<00:13:56.959> this<00:13:57.079> is<00:13:57.199> now<00:13:57.360> on<00:13:57.519> H1 00:13:58.189 --> 00:13:58.199 align:start position:0% app we can see that this is now on H1 00:13:58.199 --> 00:14:00.509 align:start position:0% app we can see that this is now on H1 but<00:13:58.320> the<00:13:58.440> styles<00:13:58.959> don't<00:13:59.160> seem<00:13:59.360> to<00:13:59.480> be<00:13:59.680> applied 00:14:00.509 --> 00:14:00.519 align:start position:0% but the styles don't seem to be applied 00:14:00.519 --> 00:14:02.350 align:start position:0% but the styles don't seem to be applied if<00:14:00.680> they<00:14:00.800> were<00:14:01.079> getting<00:14:01.360> applied<00:14:01.920> we<00:14:02.040> would<00:14:02.240> be 00:14:02.350 --> 00:14:02.360 align:start position:0% if they were getting applied we would be 00:14:02.360 --> 00:14:03.710 align:start position:0% if they were getting applied we would be able<00:14:02.560> to<00:14:02.680> see<00:14:02.880> the 00:14:03.710 --> 00:14:03.720 align:start position:0% able to see the 00:14:03.720 --> 00:14:06.110 align:start position:0% able to see the underline<00:14:04.720> so<00:14:04.959> to<00:14:05.160> make<00:14:05.279> it<00:14:05.480> work<00:14:05.800> there<00:14:05.880> are<00:14:06.000> a 00:14:06.110 --> 00:14:06.120 align:start position:0% underline so to make it work there are a 00:14:06.120 --> 00:14:08.629 align:start position:0% underline so to make it work there are a couple<00:14:06.320> of<00:14:06.440> things<00:14:06.720> we<00:14:06.800> need<00:14:06.920> to<00:14:07.160> do<00:14:08.160> alongside 00:14:08.629 --> 00:14:08.639 align:start position:0% couple of things we need to do alongside 00:14:08.639 --> 00:14:10.829 align:start position:0% couple of things we need to do alongside the<00:14:08.800> globals<00:14:09.480> we<00:14:09.639> also<00:14:09.880> have<00:14:10.000> to<00:14:10.199> modify<00:14:10.639> the 00:14:10.829 --> 00:14:10.839 align:start position:0% the globals we also have to modify the 00:14:10.839 --> 00:14:13.590 align:start position:0% the globals we also have to modify the Tailwind<00:14:11.399> doc<00:14:11.680> config.js<00:14:12.440> to<00:14:13.040> include<00:14:13.399> some 00:14:13.590 --> 00:14:13.600 align:start position:0% Tailwind doc config.js to include some 00:14:13.600 --> 00:14:16.269 align:start position:0% Tailwind doc config.js to include some additional<00:14:14.079> theming<00:14:14.560> options<00:14:15.120> for<00:14:15.360> our<00:14:15.560> great 00:14:16.269 --> 00:14:16.279 align:start position:0% additional theming options for our great 00:14:16.279 --> 00:14:18.509 align:start position:0% additional theming options for our great application<00:14:17.279> so<00:14:17.600> in<00:14:17.720> the<00:14:17.880> description<00:14:18.320> down 00:14:18.509 --> 00:14:18.519 align:start position:0% application so in the description down 00:14:18.519 --> 00:14:20.829 align:start position:0% application so in the description down below<00:14:19.040> you'll<00:14:19.240> be<00:14:19.360> able<00:14:19.560> to<00:14:19.720> find<00:14:20.040> a<00:14:20.240> modified 00:14:20.829 --> 00:14:20.839 align:start position:0% below you'll be able to find a modified 00:14:20.839 --> 00:14:23.389 align:start position:0% below you'll be able to find a modified Tailwind<00:14:21.440> doc<00:14:21.680> config.js<00:14:22.360> file<00:14:23.160> which<00:14:23.279> you 00:14:23.389 --> 00:14:23.399 align:start position:0% Tailwind doc config.js file which you 00:14:23.399 --> 00:14:25.949 align:start position:0% Tailwind doc config.js file which you can<00:14:23.600> simply<00:14:24.079> copy<00:14:24.680> and<00:14:24.839> then<00:14:25.120> paste<00:14:25.680> right 00:14:25.949 --> 00:14:25.959 align:start position:0% can simply copy and then paste right 00:14:25.959 --> 00:14:28.110 align:start position:0% can simply copy and then paste right here<00:14:26.639> it's<00:14:26.839> going<00:14:27.000> to<00:14:27.160> include<00:14:27.519> some<00:14:27.720> font 00:14:28.110 --> 00:14:28.120 align:start position:0% here it's going to include some font 00:14:28.120 --> 00:14:31.790 align:start position:0% here it's going to include some font families<00:14:28.800> can<00:14:28.959> use<00:14:29.759> widths<00:14:30.440> screen<00:14:30.880> sizes<00:14:31.600> but 00:14:31.790 --> 00:14:31.800 align:start position:0% families can use widths screen sizes but 00:14:31.800 --> 00:14:34.670 align:start position:0% families can use widths screen sizes but more<00:14:32.040> importantly<00:14:32.800> colors<00:14:33.680> so<00:14:34.040> every<00:14:34.279> time<00:14:34.519> we 00:14:34.670 --> 00:14:34.680 align:start position:0% more importantly colors so every time we 00:14:34.680 --> 00:14:36.910 align:start position:0% more importantly colors so every time we want<00:14:34.839> to<00:14:35.040> specify<00:14:35.519> this<00:14:35.680> dark<00:14:36.000> color<00:14:36.440> we<00:14:36.720> don't 00:14:36.910 --> 00:14:36.920 align:start position:0% want to specify this dark color we don't 00:14:36.920 --> 00:14:41.829 align:start position:0% want to specify this dark color we don't have<00:14:37.040> to<00:14:37.160> say<00:14:37.639> 0909<00:14:38.639> 08<00:14:39.480> we<00:14:39.639> simply<00:14:39.959> say<00:14:40.240> dark<00:14:40.839> 2 00:14:41.829 --> 00:14:41.839 align:start position:0% have to say 0909 08 we simply say dark 2 00:14:41.839 --> 00:14:43.350 align:start position:0% have to say 0909 08 we simply say dark 2 and<00:14:42.040> the<00:14:42.160> second<00:14:42.440> thing<00:14:42.600> we<00:14:42.759> have<00:14:42.880> to<00:14:43.000> do<00:14:43.199> to 00:14:43.350 --> 00:14:43.360 align:start position:0% and the second thing we have to do to 00:14:43.360 --> 00:14:45.829 align:start position:0% and the second thing we have to do to make<00:14:43.519> it<00:14:43.720> work<00:14:44.320> is<00:14:44.880> if<00:14:44.959> you<00:14:45.079> notice<00:14:45.440> here<00:14:45.639> we're 00:14:45.829 --> 00:14:45.839 align:start position:0% make it work is if you notice here we're 00:14:45.839 --> 00:14:47.749 align:start position:0% make it work is if you notice here we're importing<00:14:46.360> something<00:14:46.680> known<00:14:47.000> as<00:14:47.240> Tailwind 00:14:47.749 --> 00:14:47.759 align:start position:0% importing something known as Tailwind 00:14:47.759 --> 00:14:51.350 align:start position:0% importing something known as Tailwind CSS<00:14:48.440> animate<00:14:49.399> so<00:14:49.800> copy<00:14:50.199> that<00:14:50.839> go<00:14:51.040> to<00:14:51.199> your 00:14:51.350 --> 00:14:51.360 align:start position:0% CSS animate so copy that go to your 00:14:51.360 --> 00:14:54.030 align:start position:0% CSS animate so copy that go to your terminal<00:14:52.360> and<00:14:52.519> then<00:14:52.720> you<00:14:52.880> have<00:14:52.959> to<00:14:53.079> run<00:14:53.360> mpm 00:14:54.030 --> 00:14:54.040 align:start position:0% terminal and then you have to run mpm 00:14:54.040 --> 00:14:55.550 align:start position:0% terminal and then you have to run mpm install 00:14:55.550 --> 00:14:55.560 align:start position:0% install 00:14:55.560 --> 00:14:59.189 align:start position:0% install dasd<00:14:56.560> and<00:14:56.720> then<00:14:57.000> Tailwind<00:14:57.480> CSS<00:14:58.199> animate<00:14:59.079> this 00:14:59.189 --> 00:14:59.199 align:start position:0% dasd and then Tailwind CSS animate this 00:14:59.199 --> 00:15:00.990 align:start position:0% dasd and then Tailwind CSS animate this is<00:14:59.399> that<00:14:59.639> extra<00:15:00.040> plug-in<00:15:00.519> that's<00:15:00.680> going<00:15:00.839> to 00:15:00.990 --> 00:15:01.000 align:start position:0% is that extra plug-in that's going to 00:15:01.000 --> 00:15:03.189 align:start position:0% is that extra plug-in that's going to allow<00:15:01.279> us<00:15:01.399> to<00:15:01.639> play<00:15:02.040> with<00:15:02.279> just<00:15:02.440> a<00:15:02.600> bit<00:15:02.800> more 00:15:03.189 --> 00:15:03.199 align:start position:0% allow us to play with just a bit more 00:15:03.199 --> 00:15:05.990 align:start position:0% allow us to play with just a bit more animations<00:15:04.199> it<00:15:04.360> quickly<00:15:04.680> got<00:15:04.880> installed<00:15:05.880> you 00:15:05.990 --> 00:15:06.000 align:start position:0% animations it quickly got installed you 00:15:06.000 --> 00:15:08.030 align:start position:0% animations it quickly got installed you can<00:15:06.199> go<00:15:06.399> back<00:15:06.600> to<00:15:06.720> your<00:15:06.880> application<00:15:07.759> press 00:15:08.030 --> 00:15:08.040 align:start position:0% can go back to your application press 00:15:08.040 --> 00:15:10.790 align:start position:0% can go back to your application press contrl<00:15:08.360> C<00:15:08.639> to<00:15:08.800> stop<00:15:09.040> it<00:15:09.160> from<00:15:09.560> running<00:15:10.560> and 00:15:10.790 --> 00:15:10.800 align:start position:0% contrl C to stop it from running and 00:15:10.800 --> 00:15:12.990 align:start position:0% contrl C to stop it from running and finally<00:15:11.240> rerun<00:15:11.680> the<00:15:11.839> application<00:15:12.480> by<00:15:12.639> running 00:15:12.990 --> 00:15:13.000 align:start position:0% finally rerun the application by running 00:15:13.000 --> 00:15:14.749 align:start position:0% finally rerun the application by running mpm<00:15:13.720> run 00:15:14.749 --> 00:15:14.759 align:start position:0% mpm run 00:15:14.759 --> 00:15:18.030 align:start position:0% mpm run Dev<00:15:15.759> and<00:15:16.120> quickly<00:15:16.680> our<00:15:16.959> application<00:15:17.560> is<00:15:17.880> up 00:15:18.030 --> 00:15:18.040 align:start position:0% Dev and quickly our application is up 00:15:18.040 --> 00:15:21.150 align:start position:0% Dev and quickly our application is up and<00:15:18.199> running<00:15:18.680> on<00:15:18.959> Local<00:15:19.320> Host<00:15:19.920> 5173<00:15:20.920> and<00:15:21.079> we 00:15:21.150 --> 00:15:21.160 align:start position:0% and running on Local Host 5173 and we 00:15:21.160 --> 00:15:23.470 align:start position:0% and running on Local Host 5173 and we can<00:15:21.279> see<00:15:21.480> that<00:15:21.639> this<00:15:21.800> H1<00:15:22.639> is<00:15:23.000> indeed 00:15:23.470 --> 00:15:23.480 align:start position:0% can see that this H1 is indeed 00:15:23.480 --> 00:15:25.350 align:start position:0% can see that this H1 is indeed underlined<00:15:24.320> which<00:15:24.440> means<00:15:24.680> that<00:15:24.800> the<00:15:24.920> Tailwind 00:15:25.350 --> 00:15:25.360 align:start position:0% underlined which means that the Tailwind 00:15:25.360 --> 00:15:27.629 align:start position:0% underlined which means that the Tailwind styles<00:15:25.759> are<00:15:25.959> getting<00:15:26.279> properly<00:15:26.720> installed 00:15:27.629 --> 00:15:27.639 align:start position:0% styles are getting properly installed 00:15:27.639 --> 00:15:29.670 align:start position:0% styles are getting properly installed and<00:15:27.800> we<00:15:27.920> can<00:15:28.120> also<00:15:28.319> see<00:15:28.480> the<00:15:28.759> dark<00:15:29.040> background 00:15:29.670 --> 00:15:29.680 align:start position:0% and we can also see the dark background 00:15:29.680 --> 00:15:31.829 align:start position:0% and we can also see the dark background which<00:15:29.839> means<00:15:30.079> that<00:15:30.199> our<00:15:30.440> base<00:15:30.920> styles<00:15:31.560> are 00:15:31.829 --> 00:15:31.839 align:start position:0% which means that our base styles are 00:15:31.839 --> 00:15:33.910 align:start position:0% which means that our base styles are getting<00:15:32.160> properly<00:15:32.600> applied<00:15:33.480> and<00:15:33.680> in<00:15:33.800> a 00:15:33.910 --> 00:15:33.920 align:start position:0% getting properly applied and in a 00:15:33.920 --> 00:15:36.110 align:start position:0% getting properly applied and in a nutshell<00:15:34.639> that<00:15:34.759> means<00:15:35.079> that<00:15:35.240> Tailwind<00:15:35.959> has 00:15:36.110 --> 00:15:36.120 align:start position:0% nutshell that means that Tailwind has 00:15:36.120 --> 00:15:38.309 align:start position:0% nutshell that means that Tailwind has been<00:15:36.319> properly<00:15:36.800> set<00:15:37.000> up<00:15:37.560> so<00:15:37.880> what<00:15:38.000> should<00:15:38.199> we 00:15:38.309 --> 00:15:38.319 align:start position:0% been properly set up so what should we 00:15:38.319 --> 00:15:40.710 align:start position:0% been properly set up so what should we do<00:15:38.519> next<00:15:39.360> well<00:15:39.639> let's<00:15:39.839> set<00:15:40.040> up<00:15:40.199> the<00:15:40.360> base 00:15:40.710 --> 00:15:40.720 align:start position:0% do next well let's set up the base 00:15:40.720 --> 00:15:43.269 align:start position:0% do next well let's set up the base routing<00:15:41.199> of<00:15:41.319> our<00:15:41.519> application<00:15:42.399> by<00:15:42.600> creating<00:15:43.079> a 00:15:43.269 --> 00:15:43.279 align:start position:0% routing of our application by creating a 00:15:43.279 --> 00:15:45.389 align:start position:0% routing of our application by creating a couple<00:15:43.519> of<00:15:43.680> routes<00:15:44.199> and<00:15:44.399> there<00:15:44.680> for<00:15:45.000> a<00:15:45.160> couple 00:15:45.389 --> 00:15:45.399 align:start position:0% couple of routes and there for a couple 00:15:45.399 --> 00:15:48.430 align:start position:0% couple of routes and there for a couple of<00:15:45.600> pages<00:15:46.480> and<00:15:46.680> in<00:15:46.920> react<00:15:47.480> to<00:15:47.639> do<00:15:47.800> the<00:15:47.920> routing 00:15:48.430 --> 00:15:48.440 align:start position:0% of pages and in react to do the routing 00:15:48.440 --> 00:15:49.910 align:start position:0% of pages and in react to do the routing you<00:15:48.600> have<00:15:48.720> to<00:15:48.880> install<00:15:49.240> an<00:15:49.440> additional 00:15:49.910 --> 00:15:49.920 align:start position:0% you have to install an additional 00:15:49.920 --> 00:15:53.509 align:start position:0% you have to install an additional package<00:15:50.480> by<00:15:50.600> running<00:15:50.959> mpm<00:15:51.680> install<00:15:52.680> react 00:15:53.509 --> 00:15:53.519 align:start position:0% package by running mpm install react 00:15:53.519 --> 00:15:56.470 align:start position:0% package by running mpm install react router<00:15:54.319> Dom<00:15:55.079> the<00:15:55.240> only<00:15:55.560> package<00:15:55.800> you<00:15:55.920> need<00:15:56.279> to 00:15:56.470 --> 00:15:56.480 align:start position:0% router Dom the only package you need to 00:15:56.480 --> 00:15:58.590 align:start position:0% router Dom the only package you need to manage<00:15:56.800> the<00:15:56.959> routes<00:15:57.959> once<00:15:58.160> it<00:15:58.279> is<00:15:58.399> in 00:15:58.590 --> 00:15:58.600 align:start position:0% manage the routes once it is in 00:15:58.600 --> 00:16:01.870 align:start position:0% manage the routes once it is in installed<00:15:59.519> we<00:15:59.600> can<00:15:59.839> head<00:16:00.079> to<00:16:00.240> the<00:16:00.440> main.<00:16:01.199> TSX 00:16:01.870 --> 00:16:01.880 align:start position:0% installed we can head to the main. TSX 00:16:01.880 --> 00:16:05.269 align:start position:0% installed we can head to the main. TSX file<00:16:02.880> here<00:16:03.319> you<00:16:03.480> can<00:16:03.720> import<00:16:04.639> something<00:16:04.959> known 00:16:05.269 --> 00:16:05.279 align:start position:0% file here you can import something known 00:16:05.279 --> 00:16:08.990 align:start position:0% file here you can import something known as<00:16:05.399> a<00:16:05.680> browser<00:16:06.399> router<00:16:07.319> coming<00:16:07.639> from 00:16:08.990 --> 00:16:09.000 align:start position:0% as a browser router coming from 00:16:09.000 --> 00:16:11.910 align:start position:0% as a browser router coming from react-router-dom<00:16:10.000> and<00:16:10.880> then<00:16:11.160> we<00:16:11.319> can<00:16:11.519> wrap 00:16:11.910 --> 00:16:11.920 align:start position:0% react-router-dom and then we can wrap 00:16:11.920 --> 00:16:16.749 align:start position:0% react-router-dom and then we can wrap our<00:16:12.199> application<00:16:13.199> in<00:16:13.680> a<00:16:14.000> browser<00:16:15.319> router<00:16:16.319> just 00:16:16.749 --> 00:16:16.759 align:start position:0% our application in a browser router just 00:16:16.759 --> 00:16:17.670 align:start position:0% our application in a browser router just like 00:16:17.670 --> 00:16:17.680 align:start position:0% like 00:16:17.680 --> 00:16:20.790 align:start position:0% like so<00:16:18.680> there<00:16:18.839> we<00:16:19.000> go<00:16:19.319> the<00:16:19.519> app<00:16:19.720> is<00:16:19.839> going<00:16:20.040> to<00:16:20.319> go 00:16:20.790 --> 00:16:20.800 align:start position:0% so there we go the app is going to go 00:16:20.800 --> 00:16:23.110 align:start position:0% so there we go the app is going to go within<00:16:21.079> it<00:16:21.880> this<00:16:22.040> means<00:16:22.399> that<00:16:22.720> now<00:16:23.000> the 00:16:23.110 --> 00:16:23.120 align:start position:0% within it this means that now the 00:16:23.120 --> 00:16:25.269 align:start position:0% within it this means that now the browser<00:16:23.519> router<00:16:23.959> is<00:16:24.079> going<00:16:24.279> to<00:16:24.480> control<00:16:25.120> the 00:16:25.269 --> 00:16:25.279 align:start position:0% browser router is going to control the 00:16:25.279 --> 00:16:28.230 align:start position:0% browser router is going to control the routing<00:16:25.759> for<00:16:26.000> our<00:16:26.199> entire<00:16:26.800> application<00:16:27.800> which 00:16:28.230 --> 00:16:28.240 align:start position:0% routing for our entire application which 00:16:28.240 --> 00:16:31.430 align:start position:0% routing for our entire application which may<00:16:28.519> makes<00:16:28.720> our<00:16:28.920> ab.<00:16:29.440> DSX<00:16:30.440> that<00:16:30.680> much<00:16:30.880> more 00:16:31.430 --> 00:16:31.440 align:start position:0% may makes our ab. DSX that much more 00:16:31.440 --> 00:16:34.870 align:start position:0% may makes our ab. DSX that much more powerful<00:16:32.440> because<00:16:32.839> now<00:16:33.319> within<00:16:33.759> here<00:16:34.319> we<00:16:34.440> can 00:16:34.870 --> 00:16:34.880 align:start position:0% powerful because now within here we can 00:16:34.880 --> 00:16:39.269 align:start position:0% powerful because now within here we can import<00:16:35.880> routes<00:16:36.839> as<00:16:37.000> well<00:16:37.240> as<00:16:37.399> a<00:16:37.680> route<00:16:38.600> from 00:16:39.269 --> 00:16:39.279 align:start position:0% import routes as well as a route from 00:16:39.279 --> 00:16:43.269 align:start position:0% import routes as well as a route from react<00:16:40.120> router<00:16:41.079> Dom<00:16:42.079> once<00:16:42.279> you<00:16:42.440> do<00:16:42.680> that<00:16:43.120> you 00:16:43.269 --> 00:16:43.279 align:start position:0% react router Dom once you do that you 00:16:43.279 --> 00:16:46.509 align:start position:0% react router Dom once you do that you can<00:16:43.519> wrap<00:16:44.040> everything<00:16:44.639> in<00:16:44.759> a<00:16:45.000> main<00:16:45.560> section 00:16:46.509 --> 00:16:46.519 align:start position:0% can wrap everything in a main section 00:16:46.519 --> 00:16:49.470 align:start position:0% can wrap everything in a main section we'll<00:16:46.720> be<00:16:46.880> using<00:16:47.240> HTML<00:16:47.839> 5<00:16:48.160> semantic<00:16:48.720> tags<00:16:49.240> all 00:16:49.470 --> 00:16:49.480 align:start position:0% we'll be using HTML 5 semantic tags all 00:16:49.480 --> 00:16:52.150 align:start position:0% we'll be using HTML 5 semantic tags all across<00:16:49.839> the<00:16:50.000> video<00:16:50.800> you<00:16:50.920> can<00:16:51.199> also<00:16:51.680> give<00:16:51.839> it<00:16:51.959> a 00:16:52.150 --> 00:16:52.160 align:start position:0% across the video you can also give it a 00:16:52.160 --> 00:16:57.189 align:start position:0% across the video you can also give it a class<00:16:52.560> name<00:16:53.199> equal<00:16:53.519> to<00:16:54.519> flex<00:16:55.519> and<00:16:55.839> h-<00:16:56.480> Screen 00:16:57.189 --> 00:16:57.199 align:start position:0% class name equal to flex and h- Screen 00:16:57.199 --> 00:16:59.829 align:start position:0% class name equal to flex and h- Screen meaning<00:16:57.560> it's<00:16:57.720> going<00:16:57.880> to<00:16:58.040> take<00:16:58.720> 100%<00:16:59.440> of<00:16:59.600> the 00:16:59.829 --> 00:16:59.839 align:start position:0% meaning it's going to take 100% of the 00:16:59.839 --> 00:17:02.150 align:start position:0% meaning it's going to take 100% of the screen<00:17:00.839> now<00:17:01.079> you<00:17:01.199> can<00:17:01.319> see<00:17:01.560> how<00:17:01.720> I<00:17:01.839> quickly 00:17:02.150 --> 00:17:02.160 align:start position:0% screen now you can see how I quickly 00:17:02.160 --> 00:17:04.470 align:start position:0% screen now you can see how I quickly hovered<00:17:02.560> over<00:17:02.800> it<00:17:03.079> and<00:17:03.199> I<00:17:03.279> can<00:17:03.440> see<00:17:03.920> exactly 00:17:04.470 --> 00:17:04.480 align:start position:0% hovered over it and I can see exactly 00:17:04.480 --> 00:17:06.829 align:start position:0% hovered over it and I can see exactly what<00:17:04.640> CSS<00:17:05.199> properties<00:17:05.640> have<00:17:05.799> been<00:17:05.959> applied 00:17:06.829 --> 00:17:06.839 align:start position:0% what CSS properties have been applied 00:17:06.839 --> 00:17:08.309 align:start position:0% what CSS properties have been applied this<00:17:06.959> is<00:17:07.079> a<00:17:07.280> pretty<00:17:07.480> cool<00:17:07.760> extension<00:17:08.120> for 00:17:08.309 --> 00:17:08.319 align:start position:0% this is a pretty cool extension for 00:17:08.319 --> 00:17:10.470 align:start position:0% this is a pretty cool extension for Tailwind<00:17:09.000> so<00:17:09.160> if<00:17:09.240> you<00:17:09.360> don't<00:17:09.559> have<00:17:09.679> it<00:17:09.839> already 00:17:10.470 --> 00:17:10.480 align:start position:0% Tailwind so if you don't have it already 00:17:10.480 --> 00:17:14.789 align:start position:0% Tailwind so if you don't have it already just<00:17:10.799> type<00:17:11.199> Tailwind<00:17:12.280> CSS<00:17:13.640> intellisense<00:17:14.640> the 00:17:14.789 --> 00:17:14.799 align:start position:0% just type Tailwind CSS intellisense the 00:17:14.799 --> 00:17:17.710 align:start position:0% just type Tailwind CSS intellisense the first<00:17:15.079> extension<00:17:15.480> that<00:17:15.679> pops<00:17:15.959> up<00:17:16.640> install<00:17:17.079> it 00:17:17.710 --> 00:17:17.720 align:start position:0% first extension that pops up install it 00:17:17.720 --> 00:17:19.510 align:start position:0% first extension that pops up install it and<00:17:17.880> if<00:17:18.000> you're<00:17:18.160> not<00:17:18.319> a<00:17:18.439> fan<00:17:18.600> of<00:17:18.720> Tailwind<00:17:19.400> you 00:17:19.510 --> 00:17:19.520 align:start position:0% and if you're not a fan of Tailwind you 00:17:19.520 --> 00:17:21.750 align:start position:0% and if you're not a fan of Tailwind you can<00:17:19.679> still<00:17:19.880> follow<00:17:20.199> along<00:17:20.919> but<00:17:21.079> you'll<00:17:21.319> know 00:17:21.750 --> 00:17:21.760 align:start position:0% can still follow along but you'll know 00:17:21.760 --> 00:17:24.029 align:start position:0% can still follow along but you'll know exactly<00:17:22.760> which<00:17:23.000> properties<00:17:23.559> are<00:17:23.760> getting 00:17:24.029 --> 00:17:24.039 align:start position:0% exactly which properties are getting 00:17:24.039 --> 00:17:26.429 align:start position:0% exactly which properties are getting applied<00:17:25.000> for<00:17:25.160> the<00:17:25.280> ones<00:17:25.559> that<00:17:25.720> don't<00:17:26.079> get<00:17:26.280> this 00:17:26.429 --> 00:17:26.439 align:start position:0% applied for the ones that don't get this 00:17:26.439 --> 00:17:28.510 align:start position:0% applied for the ones that don't get this hover<00:17:26.959> you<00:17:27.079> can<00:17:27.240> simply<00:17:27.520> search<00:17:27.919> them<00:17:28.240> here 00:17:28.510 --> 00:17:28.520 align:start position:0% hover you can simply search them here 00:17:28.520 --> 00:17:30.510 align:start position:0% hover you can simply search them here here<00:17:29.320> and<00:17:29.440> then<00:17:29.559> you'll<00:17:29.760> be<00:17:29.880> able<00:17:30.080> to<00:17:30.240> find 00:17:30.510 --> 00:17:30.520 align:start position:0% here and then you'll be able to find 00:17:30.520 --> 00:17:33.630 align:start position:0% here and then you'll be able to find them<00:17:30.799> within<00:17:31.080> global.<00:17:31.880> CSS<00:17:32.880> with<00:17:33.039> that<00:17:33.240> said 00:17:33.630 --> 00:17:33.640 align:start position:0% them within global. CSS with that said 00:17:33.640 --> 00:17:36.630 align:start position:0% them within global. CSS with that said we<00:17:33.760> can<00:17:33.960> wrap<00:17:34.440> everything<00:17:35.160> in<00:17:35.440> a<00:17:35.720> routes 00:17:36.630 --> 00:17:36.640 align:start position:0% we can wrap everything in a routes 00:17:36.640 --> 00:17:39.110 align:start position:0% we can wrap everything in a routes parent<00:17:37.640> within<00:17:37.880> the<00:17:38.039> routes<00:17:38.600> we'll<00:17:38.799> be<00:17:38.960> able 00:17:39.110 --> 00:17:39.120 align:start position:0% parent within the routes we'll be able 00:17:39.120 --> 00:17:41.990 align:start position:0% parent within the routes we'll be able to<00:17:39.280> Define<00:17:39.720> two<00:17:40.039> types<00:17:40.280> of<00:17:40.480> routes<00:17:41.480> public 00:17:41.990 --> 00:17:42.000 align:start position:0% to Define two types of routes public 00:17:42.000 --> 00:17:46.590 align:start position:0% to Define two types of routes public routes<00:17:43.000> and<00:17:43.360> also<00:17:44.200> private<00:17:45.280> routes<00:17:46.280> public 00:17:46.590 --> 00:17:46.600 align:start position:0% routes and also private routes public 00:17:46.600 --> 00:17:48.390 align:start position:0% routes and also private routes public routes<00:17:46.960> are<00:17:47.160> the<00:17:47.360> routes<00:17:47.760> that<00:17:48.000> everybody 00:17:48.390 --> 00:17:48.400 align:start position:0% routes are the routes that everybody 00:17:48.400 --> 00:17:50.750 align:start position:0% routes are the routes that everybody will<00:17:48.559> be<00:17:48.679> able<00:17:48.880> to<00:17:49.000> see<00:17:49.720> the<00:17:49.880> sign<00:17:50.120> up<00:17:50.480> and<00:17:50.640> the 00:17:50.750 --> 00:17:50.760 align:start position:0% will be able to see the sign up and the 00:17:50.760 --> 00:17:53.150 align:start position:0% will be able to see the sign up and the sign<00:17:51.000> in<00:17:51.840> and<00:17:52.120> private<00:17:52.480> routes<00:17:52.840> are<00:17:53.000> the 00:17:53.150 --> 00:17:53.160 align:start position:0% sign in and private routes are the 00:17:53.160 --> 00:17:55.070 align:start position:0% sign in and private routes are the routes<00:17:53.520> that<00:17:53.600> you'll<00:17:53.760> be<00:17:53.880> able<00:17:54.080> to<00:17:54.240> see<00:17:54.760> only 00:17:55.070 --> 00:17:55.080 align:start position:0% routes that you'll be able to see only 00:17:55.080 --> 00:17:57.710 align:start position:0% routes that you'll be able to see only if<00:17:55.200> you're<00:17:55.400> signed<00:17:55.840> in<00:17:56.840> so<00:17:57.080> let's<00:17:57.280> create<00:17:57.520> our 00:17:57.710 --> 00:17:57.720 align:start position:0% if you're signed in so let's create our 00:17:57.720 --> 00:18:01.750 align:start position:0% if you're signed in so let's create our two<00:17:57.960> first<00:17:58.440> routes<00:17:59.400> let's<00:17:59.640> do<00:18:00.120> a 00:18:01.750 --> 00:18:01.760 align:start position:0% two first routes let's do a 00:18:01.760 --> 00:18:03.430 align:start position:0% two first routes let's do a route<00:18:02.760> which<00:18:02.880> is<00:18:03.000> going<00:18:03.159> to<00:18:03.240> be<00:18:03.360> a 00:18:03.430 --> 00:18:03.440 align:start position:0% route which is going to be a 00:18:03.440 --> 00:18:05.230 align:start position:0% route which is going to be a self-closing 00:18:05.230 --> 00:18:05.240 align:start position:0% self-closing 00:18:05.240 --> 00:18:08.430 align:start position:0% self-closing component<00:18:06.240> that's<00:18:06.480> going<00:18:06.640> to<00:18:06.760> have<00:18:06.880> a<00:18:07.159> pth<00:18:07.760> of 00:18:08.430 --> 00:18:08.440 align:start position:0% component that's going to have a pth of 00:18:08.440 --> 00:18:10.190 align:start position:0% component that's going to have a pth of SL<00:18:08.880> sign 00:18:10.190 --> 00:18:10.200 align:start position:0% SL sign 00:18:10.200 --> 00:18:13.350 align:start position:0% SL sign in<00:18:11.200> and<00:18:11.480> it's<00:18:11.640> going<00:18:11.760> to<00:18:11.880> render<00:18:12.240> an<00:18:12.440> element 00:18:13.350 --> 00:18:13.360 align:start position:0% in and it's going to render an element 00:18:13.360 --> 00:18:17.789 align:start position:0% in and it's going to render an element of<00:18:14.360> sign<00:18:15.240> in<00:18:16.159> form<00:18:17.159> it's<00:18:17.320> going<00:18:17.480> to<00:18:17.559> be<00:18:17.679> a 00:18:17.789 --> 00:18:17.799 align:start position:0% of sign in form it's going to be a 00:18:17.799 --> 00:18:19.870 align:start position:0% of sign in form it's going to be a self-closing 00:18:19.870 --> 00:18:19.880 align:start position:0% self-closing 00:18:19.880 --> 00:18:23.110 align:start position:0% self-closing element<00:18:20.880> now<00:18:21.080> of<00:18:21.240> course<00:18:21.840> this<00:18:22.039> is<00:18:22.200> a<00:18:22.559> page<00:18:22.960> or 00:18:23.110 --> 00:18:23.120 align:start position:0% element now of course this is a page or 00:18:23.120 --> 00:18:25.350 align:start position:0% element now of course this is a page or a<00:18:23.320> component<00:18:24.000> which<00:18:24.159> we<00:18:24.320> have<00:18:24.480> to<00:18:24.720> import 00:18:25.350 --> 00:18:25.360 align:start position:0% a component which we have to import 00:18:25.360 --> 00:18:27.870 align:start position:0% a component which we have to import inside<00:18:25.679> of<00:18:25.880> here<00:18:26.720> and<00:18:26.919> we<00:18:27.039> can<00:18:27.200> also<00:18:27.480> repeat 00:18:27.870 --> 00:18:27.880 align:start position:0% inside of here and we can also repeat 00:18:27.880 --> 00:18:30.029 align:start position:0% inside of here and we can also repeat this<00:18:28.120> with<00:18:28.440> our<00:18:28.600> first<00:18:28.919> private<00:18:29.240> route<00:18:29.799> so<00:18:29.960> we 00:18:30.029 --> 00:18:30.039 align:start position:0% this with our first private route so we 00:18:30.039 --> 00:18:33.909 align:start position:0% this with our first private route so we can<00:18:30.200> say<00:18:30.559> route<00:18:31.559> self<00:18:32.000> close<00:18:32.240> it<00:18:33.240> give<00:18:33.400> it<00:18:33.559> an 00:18:33.909 --> 00:18:33.919 align:start position:0% can say route self close it give it an 00:18:33.919 --> 00:18:35.870 align:start position:0% can say route self close it give it an index<00:18:34.919> this<00:18:35.080> means<00:18:35.360> that<00:18:35.520> this<00:18:35.600> is<00:18:35.760> the 00:18:35.870 --> 00:18:35.880 align:start position:0% index this means that this is the 00:18:35.880 --> 00:18:39.070 align:start position:0% index this means that this is the starting<00:18:36.360> page<00:18:37.240> and<00:18:37.400> then<00:18:37.840> the<00:18:38.039> element<00:18:38.919> is 00:18:39.070 --> 00:18:39.080 align:start position:0% starting page and then the element is 00:18:39.080 --> 00:18:43.190 align:start position:0% starting page and then the element is going<00:18:39.280> to<00:18:39.760> be<00:18:40.760> a<00:18:41.240> home<00:18:41.919> component<00:18:42.799> so<00:18:42.960> we<00:18:43.039> can 00:18:43.190 --> 00:18:43.200 align:start position:0% going to be a home component so we can 00:18:43.200 --> 00:18:45.510 align:start position:0% going to be a home component so we can put<00:18:43.320> a<00:18:43.480> self-closing<00:18:44.400> home<00:18:44.760> component<00:18:45.280> right 00:18:45.510 --> 00:18:45.520 align:start position:0% put a self-closing home component right 00:18:45.520 --> 00:18:47.909 align:start position:0% put a self-closing home component right here<00:18:46.520> now<00:18:46.679> of<00:18:46.840> course<00:18:47.039> we<00:18:47.200> have<00:18:47.280> to<00:18:47.480> import 00:18:47.909 --> 00:18:47.919 align:start position:0% here now of course we have to import 00:18:47.919 --> 00:18:50.350 align:start position:0% here now of course we have to import these<00:18:48.120> components<00:18:48.600> from<00:18:48.799> somewhere<00:18:49.760> so<00:18:50.120> let's 00:18:50.350 --> 00:18:50.360 align:start position:0% these components from somewhere so let's 00:18:50.360 --> 00:18:53.230 align:start position:0% these components from somewhere so let's create<00:18:50.720> the<00:18:50.880> structure<00:18:51.440> needed<00:18:51.760> to<00:18:51.919> do<00:18:52.080> so<00:18:53.080> in 00:18:53.230 --> 00:18:53.240 align:start position:0% create the structure needed to do so in 00:18:53.240 --> 00:18:54.870 align:start position:0% create the structure needed to do so in the<00:18:53.360> source<00:18:53.679> folder<00:18:54.120> we're<00:18:54.280> going<00:18:54.360> to<00:18:54.520> create 00:18:54.870 --> 00:18:54.880 align:start position:0% the source folder we're going to create 00:18:54.880 --> 00:18:57.669 align:start position:0% the source folder we're going to create two<00:18:55.320> new<00:18:55.679> folders<00:18:56.679> one<00:18:57.039> is<00:18:57.200> going<00:18:57.360> to<00:18:57.520> be 00:18:57.669 --> 00:18:57.679 align:start position:0% two new folders one is going to be 00:18:57.679 --> 00:19:01.270 align:start position:0% two new folders one is going to be called<00:18:58.280> _<00:18:58.960> o<00:18:59.960> and<00:19:00.120> the<00:19:00.280> other<00:19:00.679> is<00:19:00.840> going<00:19:01.000> to<00:19:01.120> be 00:19:01.270 --> 00:19:01.280 align:start position:0% called _ o and the other is going to be 00:19:01.280 --> 00:19:04.149 align:start position:0% called _ o and the other is going to be called<00:19:01.679> underscore<00:19:02.559> root<00:19:03.559> these<00:19:03.679> are<00:19:03.919> two 00:19:04.149 --> 00:19:04.159 align:start position:0% called underscore root these are two 00:19:04.159 --> 00:19:05.710 align:start position:0% called underscore root these are two folders<00:19:04.760> that<00:19:04.880> are<00:19:05.000> going<00:19:05.159> to<00:19:05.360> make<00:19:05.480> it 00:19:05.710 --> 00:19:05.720 align:start position:0% folders that are going to make it 00:19:05.720 --> 00:19:08.270 align:start position:0% folders that are going to make it simpler<00:19:06.320> for<00:19:06.480> us<00:19:06.640> to<00:19:06.840> know<00:19:07.360> what<00:19:07.520> is<00:19:07.760> public 00:19:08.270 --> 00:19:08.280 align:start position:0% simpler for us to know what is public 00:19:08.280 --> 00:19:10.590 align:start position:0% simpler for us to know what is public and<00:19:08.440> what<00:19:08.600> is<00:19:08.760> not<00:19:09.360> within<00:19:09.760> oth<00:19:10.280> we're<00:19:10.440> going 00:19:10.590 --> 00:19:10.600 align:start position:0% and what is not within oth we're going 00:19:10.600 --> 00:19:14.710 align:start position:0% and what is not within oth we're going to<00:19:10.760> create<00:19:11.120> a<00:19:11.280> new<00:19:11.720> folder<00:19:12.720> called<00:19:13.520> forms<00:19:14.520> and 00:19:14.710 --> 00:19:14.720 align:start position:0% to create a new folder called forms and 00:19:14.720 --> 00:19:18.110 align:start position:0% to create a new folder called forms and within<00:19:15.080> forms<00:19:15.919> we're<00:19:16.080> going<00:19:16.159> to<00:19:16.440> have<00:19:16.840> our 00:19:18.110 --> 00:19:18.120 align:start position:0% within forms we're going to have our 00:19:18.120 --> 00:19:23.870 align:start position:0% within forms we're going to have our signin<00:19:19.240> form.<00:19:20.600> TSX<00:19:21.600> where<00:19:21.880> we<00:19:22.000> can<00:19:22.159> run<00:19:22.880> rafc 00:19:23.870 --> 00:19:23.880 align:start position:0% signin form. TSX where we can run rafc 00:19:23.880 --> 00:19:25.950 align:start position:0% signin form. TSX where we can run rafc this<00:19:24.000> is<00:19:24.120> going<00:19:24.280> to<00:19:24.480> create<00:19:24.880> a<00:19:25.039> simple<00:19:25.480> signin 00:19:25.950 --> 00:19:25.960 align:start position:0% this is going to create a simple signin 00:19:25.960 --> 00:19:26.830 align:start position:0% this is going to create a simple signin form 00:19:26.830 --> 00:19:26.840 align:start position:0% form 00:19:26.840 --> 00:19:29.230 align:start position:0% form component<00:19:27.840> Within<00:19:28.320> forms<00:19:28.760> we<00:19:28.880> can<00:19:29.000> also 00:19:29.230 --> 00:19:29.240 align:start position:0% component Within forms we can also 00:19:29.240 --> 00:19:31.710 align:start position:0% component Within forms we can also create<00:19:29.559> another<00:19:29.880> one<00:19:30.240> which<00:19:30.360> is<00:19:30.480> going<00:19:30.640> to<00:19:30.799> be 00:19:31.710 --> 00:19:31.720 align:start position:0% create another one which is going to be 00:19:31.720 --> 00:19:36.390 align:start position:0% create another one which is going to be signup<00:19:32.799> form.<00:19:33.799> TSX<00:19:34.760> we<00:19:34.919> can<00:19:35.159> also<00:19:35.440> run 00:19:36.390 --> 00:19:36.400 align:start position:0% signup form. TSX we can also run 00:19:36.400 --> 00:19:39.669 align:start position:0% signup form. TSX we can also run RFC<00:19:37.400> and<00:19:37.760> outside<00:19:38.159> of<00:19:38.280> forms<00:19:38.919> but<00:19:39.200> inside<00:19:39.520> of 00:19:39.669 --> 00:19:39.679 align:start position:0% RFC and outside of forms but inside of 00:19:39.679 --> 00:19:42.270 align:start position:0% RFC and outside of forms but inside of underscore<00:19:40.240> o<00:19:40.799> we<00:19:40.919> want<00:19:41.000> to<00:19:41.200> create<00:19:41.559> a 00:19:42.270 --> 00:19:42.280 align:start position:0% underscore o we want to create a 00:19:42.280 --> 00:19:46.950 align:start position:0% underscore o we want to create a layout<00:19:43.280> o<00:19:44.039> layout.<00:19:45.320> TSX<00:19:46.320> and<00:19:46.520> there<00:19:46.679> we<00:19:46.799> can 00:19:46.950 --> 00:19:46.960 align:start position:0% layout o layout. TSX and there we can 00:19:46.960 --> 00:19:51.270 align:start position:0% layout o layout. TSX and there we can run<00:19:47.200> our<00:19:47.520> efce<00:19:48.520> as<00:19:49.200> well<00:19:50.200> this<00:19:50.520> layout<00:19:51.080> is 00:19:51.270 --> 00:19:51.280 align:start position:0% run our efce as well this layout is 00:19:51.280 --> 00:19:53.990 align:start position:0% run our efce as well this layout is going<00:19:51.480> to<00:19:51.760> wrap<00:19:52.440> both<00:19:52.640> of<00:19:52.799> our<00:19:53.159> signin<00:19:53.799> and 00:19:53.990 --> 00:19:54.000 align:start position:0% going to wrap both of our signin and 00:19:54.000 --> 00:19:56.710 align:start position:0% going to wrap both of our signin and sign<00:19:54.280> up<00:19:54.679> forms<00:19:55.679> it's<00:19:55.880> going<00:19:56.039> to<00:19:56.240> have<00:19:56.440> things 00:19:56.710 --> 00:19:56.720 align:start position:0% sign up forms it's going to have things 00:19:56.720 --> 00:19:59.310 align:start position:0% sign up forms it's going to have things like<00:19:56.880> the<00:19:57.039> logo<00:19:57.799> as<00:19:57.960> well<00:19:58.360> as<00:19:58.559> this<00:19:58.799> wonderful 00:19:59.310 --> 00:19:59.320 align:start position:0% like the logo as well as this wonderful 00:19:59.320 --> 00:20:01.230 align:start position:0% like the logo as well as this wonderful image<00:19:59.640> gallery<00:20:00.080> that<00:20:00.240> appears<00:20:00.640> on<00:20:00.760> the<00:20:01.000> right 00:20:01.230 --> 00:20:01.240 align:start position:0% image gallery that appears on the right 00:20:01.240 --> 00:20:04.149 align:start position:0% image gallery that appears on the right side<00:20:02.240> and<00:20:02.360> then<00:20:02.520> the<00:20:02.679> forms<00:20:03.280> will<00:20:03.559> change 00:20:04.149 --> 00:20:04.159 align:start position:0% side and then the forms will change 00:20:04.159 --> 00:20:07.270 align:start position:0% side and then the forms will change depending<00:20:04.640> on<00:20:04.799> the<00:20:05.080> URL<00:20:06.080> how<00:20:06.360> cool<00:20:06.600> is<00:20:06.799> that 00:20:07.270 --> 00:20:07.280 align:start position:0% depending on the URL how cool is that 00:20:07.280 --> 00:20:09.149 align:start position:0% depending on the URL how cool is that that's<00:20:07.440> why<00:20:07.600> we<00:20:07.760> have<00:20:07.919> this<00:20:08.120> generic<00:20:08.520> layout 00:20:09.149 --> 00:20:09.159 align:start position:0% that's why we have this generic layout 00:20:09.159 --> 00:20:10.789 align:start position:0% that's why we have this generic layout but<00:20:09.320> then<00:20:09.600> components<00:20:10.200> are<00:20:10.360> going<00:20:10.440> to<00:20:10.559> be<00:20:10.679> the 00:20:10.789 --> 00:20:10.799 align:start position:0% but then components are going to be the 00:20:10.799 --> 00:20:12.909 align:start position:0% but then components are going to be the ones<00:20:11.039> that<00:20:11.200> change<00:20:11.559> the<00:20:11.720> form<00:20:12.600> and<00:20:12.799> we're 00:20:12.909 --> 00:20:12.919 align:start position:0% ones that change the form and we're 00:20:12.919 --> 00:20:14.750 align:start position:0% ones that change the form and we're going<00:20:13.000> to<00:20:13.159> have<00:20:13.280> a<00:20:13.480> similar<00:20:13.880> thing<00:20:14.240> for<00:20:14.480> our 00:20:14.750 --> 00:20:14.760 align:start position:0% going to have a similar thing for our 00:20:14.760 --> 00:20:17.029 align:start position:0% going to have a similar thing for our root<00:20:15.600> within<00:20:15.880> the<00:20:16.000> root<00:20:16.440> we're<00:20:16.600> going<00:20:16.679> to<00:20:16.840> have 00:20:17.029 --> 00:20:17.039 align:start position:0% root within the root we're going to have 00:20:17.039 --> 00:20:20.390 align:start position:0% root within the root we're going to have a<00:20:17.159> folder<00:20:17.760> called<00:20:18.320> Pages<00:20:19.320> within<00:20:19.720> Pages<00:20:20.200> we're 00:20:20.390 --> 00:20:20.400 align:start position:0% a folder called Pages within Pages we're 00:20:20.400 --> 00:20:23.230 align:start position:0% a folder called Pages within Pages we're of<00:20:20.559> course<00:20:20.799> going<00:20:20.919> to<00:20:21.120> have<00:20:21.360> our<00:20:21.640> home. 00:20:23.230 --> 00:20:23.240 align:start position:0% of course going to have our home. 00:20:23.240 --> 00:20:25.390 align:start position:0% of course going to have our home. DSX<00:20:24.240> where<00:20:24.400> we<00:20:24.520> can<00:20:24.640> run 00:20:25.390 --> 00:20:25.400 align:start position:0% DSX where we can run 00:20:25.400 --> 00:20:27.990 align:start position:0% DSX where we can run rafc<00:20:26.400> but<00:20:26.640> outside<00:20:27.000> of<00:20:27.200> pages<00:20:27.679> we're<00:20:27.799> going<00:20:27.919> to 00:20:27.990 --> 00:20:28.000 align:start position:0% rafc but outside of pages we're going to 00:20:28.000 --> 00:20:30.149 align:start position:0% rafc but outside of pages we're going to have<00:20:28.240> have<00:20:28.440> our<00:20:28.600> underscore<00:20:29.159> root<00:20:29.960> that's 00:20:30.149 --> 00:20:30.159 align:start position:0% have have our underscore root that's 00:20:30.159 --> 00:20:31.029 align:start position:0% have have our underscore root that's going<00:20:30.320> to 00:20:31.029 --> 00:20:31.039 align:start position:0% going to 00:20:31.039 --> 00:20:35.590 align:start position:0% going to contain<00:20:32.039> a<00:20:32.320> root<00:20:33.159> layout.<00:20:34.200> TSX<00:20:35.200> or<00:20:35.320> we<00:20:35.440> can 00:20:35.590 --> 00:20:35.600 align:start position:0% contain a root layout. TSX or we can 00:20:35.600 --> 00:20:38.270 align:start position:0% contain a root layout. TSX or we can also<00:20:35.840> run<00:20:36.360> RFC<00:20:37.360> and<00:20:37.520> of<00:20:37.679> course<00:20:37.880> the<00:20:38.000> layout 00:20:38.270 --> 00:20:38.280 align:start position:0% also run RFC and of course the layout 00:20:38.280 --> 00:20:40.070 align:start position:0% also run RFC and of course the layout for<00:20:38.400> the<00:20:38.520> homepages<00:20:39.159> is<00:20:39.280> going<00:20:39.440> to<00:20:39.600> contain 00:20:40.070 --> 00:20:40.080 align:start position:0% for the homepages is going to contain 00:20:40.080 --> 00:20:41.909 align:start position:0% for the homepages is going to contain things<00:20:40.360> like<00:20:40.559> this<00:20:40.720> sidebar<00:20:41.159> on<00:20:41.240> the<00:20:41.400> left 00:20:41.909 --> 00:20:41.919 align:start position:0% things like this sidebar on the left 00:20:41.919 --> 00:20:44.710 align:start position:0% things like this sidebar on the left sidebar<00:20:42.320> on<00:20:42.440> the<00:20:42.600> right<00:20:43.200> and<00:20:43.440> more<00:20:44.200> now<00:20:44.480> within 00:20:44.710 --> 00:20:44.720 align:start position:0% sidebar on the right and more now within 00:20:44.720 --> 00:20:46.669 align:start position:0% sidebar on the right and more now within root<00:20:45.080> Pages<00:20:45.440> we're<00:20:45.600> going<00:20:45.720> to<00:20:45.840> have<00:20:46.120> many<00:20:46.400> many 00:20:46.669 --> 00:20:46.679 align:start position:0% root Pages we're going to have many many 00:20:46.679 --> 00:20:49.350 align:start position:0% root Pages we're going to have many many different<00:20:47.000> pages<00:20:47.760> I<00:20:47.840> mean<00:20:48.240> tens<00:20:48.520> of<00:20:48.720> pages<00:20:49.200> by 00:20:49.350 --> 00:20:49.360 align:start position:0% different pages I mean tens of pages by 00:20:49.360 --> 00:20:51.630 align:start position:0% different pages I mean tens of pages by when<00:20:49.520> we're<00:20:49.720> done<00:20:49.880> with<00:20:50.039> this<00:20:50.200> application<00:20:51.200> so 00:20:51.630 --> 00:20:51.640 align:start position:0% when we're done with this application so 00:20:51.640 --> 00:20:53.630 align:start position:0% when we're done with this application so we<00:20:51.799> don't<00:20:52.000> want<00:20:52.200> to<00:20:52.360> Simply<00:20:52.760> import<00:20:53.240> each<00:20:53.440> one 00:20:53.630 --> 00:20:53.640 align:start position:0% we don't want to Simply import each one 00:20:53.640 --> 00:20:56.110 align:start position:0% we don't want to Simply import each one in<00:20:53.760> a<00:20:53.919> new<00:20:54.159> line<00:20:54.760> so<00:20:54.919> we<00:20:55.000> can<00:20:55.159> create<00:20:55.480> a<00:20:55.679> new 00:20:56.110 --> 00:20:56.120 align:start position:0% in a new line so we can create a new 00:20:56.120 --> 00:20:58.350 align:start position:0% in a new line so we can create a new index.ts<00:20:57.120> file<00:20:57.679> which<00:20:57.799> is<00:20:57.919> going<00:20:58.120> going<00:20:58.240> to 00:20:58.350 --> 00:20:58.360 align:start position:0% index.ts file which is going going to 00:20:58.360 --> 00:21:01.270 align:start position:0% index.ts file which is going going to allow<00:20:58.600> us<00:20:58.720> to<00:20:58.919> import<00:20:59.280> them<00:20:59.480> in<00:20:59.600> a<00:20:59.720> cleaner<00:21:00.280> way 00:21:01.270 --> 00:21:01.280 align:start position:0% allow us to import them in a cleaner way 00:21:01.280 --> 00:21:03.110 align:start position:0% allow us to import them in a cleaner way but<00:21:01.600> first<00:21:01.880> we<00:21:02.000> have<00:21:02.159> to<00:21:02.400> export<00:21:02.880> each 00:21:03.110 --> 00:21:03.120 align:start position:0% but first we have to export each 00:21:03.120 --> 00:21:06.070 align:start position:0% but first we have to export each component<00:21:03.559> we<00:21:03.760> have<00:21:04.240> so<00:21:04.400> we<00:21:04.520> can<00:21:04.640> say<00:21:05.080> export 00:21:06.070 --> 00:21:06.080 align:start position:0% component we have so we can say export 00:21:06.080 --> 00:21:10.070 align:start position:0% component we have so we can say export default<00:21:06.600> as<00:21:07.120> home<00:21:08.039> from 00:21:10.070 --> 00:21:10.080 align:start position:0% default as home from 00:21:10.080 --> 00:21:13.190 align:start position:0% default as home from slome<00:21:11.080> and<00:21:11.320> now<00:21:11.760> we<00:21:11.880> can<00:21:12.240> close<00:21:12.679> all<00:21:12.840> of<00:21:13.039> these 00:21:13.190 --> 00:21:13.200 align:start position:0% slome and now we can close all of these 00:21:13.200 --> 00:21:16.669 align:start position:0% slome and now we can close all of these new<00:21:13.440> open<00:21:13.760> files<00:21:14.760> go<00:21:15.000> back<00:21:15.159> to<00:21:15.320> the<00:21:15.559> app<00:21:16.360> we<00:21:16.440> can 00:21:16.669 --> 00:21:16.679 align:start position:0% new open files go back to the app we can 00:21:16.679 --> 00:21:20.470 align:start position:0% new open files go back to the app we can automatically<00:21:17.640> import<00:21:18.200> signin<00:21:18.720> form 00:21:20.470 --> 00:21:20.480 align:start position:0% automatically import signin form 00:21:20.480 --> 00:21:24.630 align:start position:0% automatically import signin form fromo<00:21:21.480> forms<00:21:22.080> signin<00:21:22.440> form<00:21:23.279> and<00:21:23.559> import<00:21:23.960> home 00:21:24.630 --> 00:21:24.640 align:start position:0% fromo forms signin form and import home 00:21:24.640 --> 00:21:28.110 align:start position:0% fromo forms signin form and import home from<00:21:25.159> root<00:21:25.880> Pages<00:21:26.880> while<00:21:27.039> we're<00:21:27.320> here<00:21:27.679> we<00:21:27.799> can 00:21:28.110 --> 00:21:28.120 align:start position:0% from root Pages while we're here we can 00:21:28.120 --> 00:21:30.390 align:start position:0% from root Pages while we're here we can duplicate<00:21:28.559> our<00:21:28.799> signin<00:21:29.279> routee<00:21:29.880> and<00:21:30.080> simply 00:21:30.390 --> 00:21:30.400 align:start position:0% duplicate our signin routee and simply 00:21:30.400 --> 00:21:33.029 align:start position:0% duplicate our signin routee and simply exchange<00:21:30.760> it<00:21:30.960> for<00:21:31.360> sign<00:21:31.760> up<00:21:32.360> and<00:21:32.600> here<00:21:32.799> we<00:21:32.919> can 00:21:33.029 --> 00:21:33.039 align:start position:0% exchange it for sign up and here we can 00:21:33.039 --> 00:21:35.630 align:start position:0% exchange it for sign up and here we can say<00:21:33.400> sign<00:21:33.799> up<00:21:34.080> form<00:21:34.760> which<00:21:34.880> we<00:21:35.000> can<00:21:35.240> also 00:21:35.630 --> 00:21:35.640 align:start position:0% say sign up form which we can also 00:21:35.640 --> 00:21:39.950 align:start position:0% say sign up form which we can also import<00:21:36.200> from<00:21:36.480> o<00:21:37.159> forms<00:21:38.159> now<00:21:38.480> notice<00:21:39.279> how<00:21:39.559> for 00:21:39.950 --> 00:21:39.960 align:start position:0% import from o forms now notice how for 00:21:39.960 --> 00:21:43.590 align:start position:0% import from o forms now notice how for the<00:21:40.279> O<00:21:40.840> forms<00:21:41.559> it<00:21:41.760> imported<00:21:42.240> them<00:21:42.520> as<00:21:42.799> default 00:21:43.590 --> 00:21:43.600 align:start position:0% the O forms it imported them as default 00:21:43.600 --> 00:21:46.590 align:start position:0% the O forms it imported them as default Imports<00:21:44.600> whereas<00:21:45.000> for<00:21:45.200> the<00:21:45.360> home<00:21:45.919> it<00:21:46.120> imported 00:21:46.590 --> 00:21:46.600 align:start position:0% Imports whereas for the home it imported 00:21:46.600 --> 00:21:48.630 align:start position:0% Imports whereas for the home it imported it<00:21:46.760> as<00:21:46.919> the<00:21:47.080> named<00:21:47.480> import<00:21:48.080> which<00:21:48.200> is<00:21:48.320> going<00:21:48.480> to 00:21:48.630 --> 00:21:48.640 align:start position:0% it as the named import which is going to 00:21:48.640 --> 00:21:51.549 align:start position:0% it as the named import which is going to allow<00:21:48.919> us<00:21:49.039> to<00:21:49.240> later<00:21:49.520> on<00:21:50.039> import<00:21:50.480> page<00:21:50.760> one 00:21:51.549 --> 00:21:51.559 align:start position:0% allow us to later on import page one 00:21:51.559 --> 00:21:54.070 align:start position:0% allow us to later on import page one page<00:21:51.799> two<00:21:52.440> and<00:21:52.600> all<00:21:52.840> the<00:21:52.960> other<00:21:53.200> Pages<00:21:53.760> within 00:21:54.070 --> 00:21:54.080 align:start position:0% page two and all the other Pages within 00:21:54.080 --> 00:21:57.470 align:start position:0% page two and all the other Pages within a<00:21:54.279> single<00:21:54.679> line<00:21:55.120> to<00:21:55.320> keep<00:21:55.520> our<00:21:55.720> code<00:21:55.960> more<00:21:56.480> tidy 00:21:57.470 --> 00:21:57.480 align:start position:0% a single line to keep our code more tidy 00:21:57.480 --> 00:22:00.269 align:start position:0% a single line to keep our code more tidy great<00:21:58.240> so<00:21:58.440> now<00:21:58.600> we<00:21:58.720> have<00:21:58.880> the<00:21:59.039> base<00:21:59.360> structure 00:22:00.269 --> 00:22:00.279 align:start position:0% great so now we have the base structure 00:22:00.279 --> 00:22:02.149 align:start position:0% great so now we have the base structure and<00:22:00.400> you<00:22:00.559> know<00:22:00.840> how<00:22:01.000> the<00:22:01.159> routing<00:22:01.600> is<00:22:01.720> going<00:22:01.919> to 00:22:02.149 --> 00:22:02.159 align:start position:0% and you know how the routing is going to 00:22:02.159 --> 00:22:05.470 align:start position:0% and you know how the routing is going to work<00:22:03.159> but<00:22:03.440> there's<00:22:03.799> one<00:22:04.080> missing<00:22:04.520> piece<00:22:05.320> we 00:22:05.470 --> 00:22:05.480 align:start position:0% work but there's one missing piece we 00:22:05.480 --> 00:22:07.830 align:start position:0% work but there's one missing piece we haven't<00:22:05.760> utilized<00:22:06.440> our<00:22:06.679> layouts<00:22:07.480> and<00:22:07.760> the 00:22:07.830 --> 00:22:07.840 align:start position:0% haven't utilized our layouts and the 00:22:07.840 --> 00:22:10.190 align:start position:0% haven't utilized our layouts and the react<00:22:08.159> router<00:22:08.520> Dom<00:22:09.039> allows<00:22:09.360> us<00:22:09.520> to<00:22:09.679> do<00:22:09.840> so 00:22:10.190 --> 00:22:10.200 align:start position:0% react router Dom allows us to do so 00:22:10.200 --> 00:22:13.310 align:start position:0% react router Dom allows us to do so easily<00:22:11.039> you<00:22:11.159> can<00:22:11.360> create<00:22:11.679> a<00:22:11.840> new<00:22:12.120> route<00:22:13.120> just 00:22:13.310 --> 00:22:13.320 align:start position:0% easily you can create a new route just 00:22:13.320 --> 00:22:15.269 align:start position:0% easily you can create a new route just like<00:22:13.480> the<00:22:13.600> routes<00:22:13.840> you<00:22:14.000> created<00:22:14.400> before<00:22:15.080> but 00:22:15.269 --> 00:22:15.279 align:start position:0% like the routes you created before but 00:22:15.279 --> 00:22:17.350 align:start position:0% like the routes you created before but this<00:22:15.480> time<00:22:15.760> it's<00:22:15.919> not<00:22:16.120> going<00:22:16.279> to<00:22:16.400> be<00:22:16.520> self- 00:22:17.350 --> 00:22:17.360 align:start position:0% this time it's not going to be self- 00:22:17.360 --> 00:22:20.630 align:start position:0% this time it's not going to be self- closing<00:22:18.360> it's<00:22:18.559> going<00:22:18.720> to<00:22:18.919> accept<00:22:19.240> an<00:22:19.640> element 00:22:20.630 --> 00:22:20.640 align:start position:0% closing it's going to accept an element 00:22:20.640 --> 00:22:23.029 align:start position:0% closing it's going to accept an element which<00:22:20.799> is<00:22:20.919> going<00:22:21.080> to<00:22:21.240> be<00:22:21.520> the<00:22:21.760> O<00:22:22.279> layout<00:22:22.840> we 00:22:23.029 --> 00:22:23.039 align:start position:0% which is going to be the O layout we 00:22:23.039 --> 00:22:24.950 align:start position:0% which is going to be the O layout we created<00:22:23.799> which<00:22:23.919> you<00:22:24.039> can<00:22:24.279> automatically 00:22:24.950 --> 00:22:24.960 align:start position:0% created which you can automatically 00:22:24.960 --> 00:22:28.470 align:start position:0% created which you can automatically import<00:22:25.440> from<00:22:25.720> o<00:22:26.320> layout<00:22:27.320> and<00:22:27.480> then<00:22:27.640> with<00:22:28.120> in<00:22:28.200> it 00:22:28.470 --> 00:22:28.480 align:start position:0% import from o layout and then with in it 00:22:28.480 --> 00:22:31.029 align:start position:0% import from o layout and then with in it we<00:22:28.559> can<00:22:28.799> place<00:22:29.200> additional<00:22:29.720> elements<00:22:30.640> or 00:22:31.029 --> 00:22:31.039 align:start position:0% we can place additional elements or 00:22:31.039 --> 00:22:33.710 align:start position:0% we can place additional elements or pages<00:22:31.720> that<00:22:31.799> are<00:22:31.960> going<00:22:32.080> to<00:22:32.279> appear<00:22:32.640> there<00:22:33.440> how 00:22:33.710 --> 00:22:33.720 align:start position:0% pages that are going to appear there how 00:22:33.720 --> 00:22:36.110 align:start position:0% pages that are going to appear there how clever<00:22:34.200> is<00:22:34.400> that<00:22:34.960> it<00:22:35.080> allows<00:22:35.360> you<00:22:35.480> to<00:22:35.640> use<00:22:36.000> the 00:22:36.110 --> 00:22:36.120 align:start position:0% clever is that it allows you to use the 00:22:36.120 --> 00:22:37.990 align:start position:0% clever is that it allows you to use the layout<00:22:36.640> but<00:22:36.760> then<00:22:36.960> immediately<00:22:37.480> place<00:22:37.799> the 00:22:37.990 --> 00:22:38.000 align:start position:0% layout but then immediately place the 00:22:38.000 --> 00:22:41.470 align:start position:0% layout but then immediately place the pages<00:22:38.600> using<00:22:38.919> that<00:22:39.120> layout<00:22:39.919> within<00:22:40.919> so<00:22:41.200> we<00:22:41.320> can 00:22:41.470 --> 00:22:41.480 align:start position:0% pages using that layout within so we can 00:22:41.480 --> 00:22:43.070 align:start position:0% pages using that layout within so we can repeat<00:22:41.760> the<00:22:41.880> same<00:22:42.120> procedure<00:22:42.640> with<00:22:42.799> our 00:22:43.070 --> 00:22:43.080 align:start position:0% repeat the same procedure with our 00:22:43.080 --> 00:22:45.310 align:start position:0% repeat the same procedure with our private<00:22:43.400> routes<00:22:43.799> as<00:22:44.159> well<00:22:44.919> where<00:22:45.080> we're<00:22:45.200> going 00:22:45.310 --> 00:22:45.320 align:start position:0% private routes as well where we're going 00:22:45.320 --> 00:22:46.630 align:start position:0% private routes as well where we're going to<00:22:45.520> have<00:22:45.720> a 00:22:46.630 --> 00:22:46.640 align:start position:0% to have a 00:22:46.640 --> 00:22:48.990 align:start position:0% to have a route<00:22:47.640> and<00:22:48.120> there<00:22:48.279> we're<00:22:48.440> going<00:22:48.520> to<00:22:48.679> have<00:22:48.799> an 00:22:48.990 --> 00:22:49.000 align:start position:0% route and there we're going to have an 00:22:49.000 --> 00:22:53.630 align:start position:0% route and there we're going to have an element<00:22:49.919> of<00:22:50.919> root<00:22:51.960> layout<00:22:52.960> of<00:22:53.120> course<00:22:53.360> it<00:22:53.520> has 00:22:53.630 --> 00:22:53.640 align:start position:0% element of root layout of course it has 00:22:53.640 --> 00:22:55.549 align:start position:0% element of root layout of course it has to<00:22:53.760> be<00:22:53.960> defined<00:22:54.400> as<00:22:54.520> a<00:22:54.679> self-closing 00:22:55.549 --> 00:22:55.559 align:start position:0% to be defined as a self-closing 00:22:55.559 --> 00:22:57.630 align:start position:0% to be defined as a self-closing component<00:22:56.559> and<00:22:56.720> then<00:22:56.840> we<00:22:56.960> can<00:22:57.120> place<00:22:57.400> all<00:22:57.559> of 00:22:57.630 --> 00:22:57.640 align:start position:0% component and then we can place all of 00:22:57.640 --> 00:23:01.110 align:start position:0% component and then we can place all of the<00:22:57.960> home<00:22:58.159> routes<00:22:59.120> right 00:23:01.110 --> 00:23:01.120 align:start position:0% the home routes right 00:23:01.120 --> 00:23:04.230 align:start position:0% the home routes right here<00:23:02.120> great<00:23:02.880> so<00:23:03.120> now<00:23:03.320> you<00:23:03.400> can<00:23:03.520> see<00:23:03.720> we<00:23:03.880> have<00:23:04.120> a 00:23:04.230 --> 00:23:04.240 align:start position:0% here great so now you can see we have a 00:23:04.240 --> 00:23:07.029 align:start position:0% here great so now you can see we have a lot<00:23:04.400> of<00:23:04.600> imports<00:23:05.279> already<00:23:06.279> but<00:23:06.600> we<00:23:06.720> have<00:23:06.880> done 00:23:07.029 --> 00:23:07.039 align:start position:0% lot of imports already but we have done 00:23:07.039 --> 00:23:09.669 align:start position:0% lot of imports already but we have done a<00:23:07.240> great<00:23:07.600> job<00:23:07.919> in<00:23:08.120> setting<00:23:08.440> up<00:23:08.679> our<00:23:09.000> path<00:23:09.279> for 00:23:09.669 --> 00:23:09.679 align:start position:0% a great job in setting up our path for 00:23:09.679 --> 00:23:12.549 align:start position:0% a great job in setting up our path for Success<00:23:10.440> so<00:23:10.640> now<00:23:10.880> going<00:23:11.200> back<00:23:11.400> to<00:23:11.600> Local<00:23:11.960> Host 00:23:12.549 --> 00:23:12.559 align:start position:0% Success so now going back to Local Host 00:23:12.559 --> 00:23:14.950 align:start position:0% Success so now going back to Local Host 5173<00:23:13.559> the<00:23:13.679> only<00:23:13.960> thing<00:23:14.120> we<00:23:14.200> can<00:23:14.360> see<00:23:14.679> is<00:23:14.840> the 00:23:14.950 --> 00:23:14.960 align:start position:0% 5173 the only thing we can see is the 00:23:14.960 --> 00:23:17.149 align:start position:0% 5173 the only thing we can see is the root<00:23:15.240> layout<00:23:16.039> but<00:23:16.159> soon<00:23:16.440> enough<00:23:16.799> you'll<00:23:17.000> be 00:23:17.149 --> 00:23:17.159 align:start position:0% root layout but soon enough you'll be 00:23:17.159 --> 00:23:20.549 align:start position:0% root layout but soon enough you'll be able<00:23:17.360> to<00:23:17.520> see<00:23:18.120> much<00:23:18.360> more<00:23:18.600> than<00:23:19.120> that<00:23:20.120> so<00:23:20.440> how 00:23:20.549 --> 00:23:20.559 align:start position:0% able to see much more than that so how 00:23:20.559 --> 00:23:22.230 align:start position:0% able to see much more than that so how would<00:23:20.720> you<00:23:20.880> feel<00:23:21.320> if<00:23:21.440> I<00:23:21.559> told<00:23:21.799> you<00:23:21.919> we're<00:23:22.080> going 00:23:22.230 --> 00:23:22.240 align:start position:0% would you feel if I told you we're going 00:23:22.240 --> 00:23:24.950 align:start position:0% would you feel if I told you we're going to<00:23:22.400> start<00:23:22.720> with<00:23:22.919> this<00:23:23.159> completely<00:23:23.799> custom<00:23:24.559> and 00:23:24.950 --> 00:23:24.960 align:start position:0% to start with this completely custom and 00:23:24.960 --> 00:23:27.909 align:start position:0% to start with this completely custom and stunning<00:23:25.799> sign<00:23:26.120> up<00:23:26.600> and<00:23:27.000> sign<00:23:27.320> in<00:23:27.559> script 00:23:27.909 --> 00:23:27.919 align:start position:0% stunning sign up and sign in script 00:23:27.919 --> 00:23:30.789 align:start position:0% stunning sign up and sign in script screen<00:23:28.799> after<00:23:29.080> all<00:23:29.559> for<00:23:29.840> our<00:23:30.080> social<00:23:30.400> media 00:23:30.789 --> 00:23:30.799 align:start position:0% screen after all for our social media 00:23:30.799 --> 00:23:33.390 align:start position:0% screen after all for our social media app<00:23:31.000> to<00:23:31.200> work<00:23:31.760> we<00:23:31.960> first<00:23:32.279> have<00:23:32.400> to<00:23:32.600> onboard<00:23:33.200> our 00:23:33.390 --> 00:23:33.400 align:start position:0% app to work we first have to onboard our 00:23:33.400 --> 00:23:36.070 align:start position:0% app to work we first have to onboard our users<00:23:34.279> that<00:23:34.440> are<00:23:34.640> later<00:23:34.919> on<00:23:35.240> going<00:23:35.400> to<00:23:35.640> upload 00:23:36.070 --> 00:23:36.080 align:start position:0% users that are later on going to upload 00:23:36.080 --> 00:23:38.710 align:start position:0% users that are later on going to upload their<00:23:36.360> posts<00:23:37.320> most<00:23:37.600> likely<00:23:38.000> it's<00:23:38.159> going<00:23:38.320> to<00:23:38.440> be 00:23:38.710 --> 00:23:38.720 align:start position:0% their posts most likely it's going to be 00:23:38.720 --> 00:23:40.590 align:start position:0% their posts most likely it's going to be cat<00:23:39.039> photos<00:23:39.559> as<00:23:39.679> it<00:23:39.840> usually<00:23:40.159> is<00:23:40.279> on<00:23:40.480> the 00:23:40.590 --> 00:23:40.600 align:start position:0% cat photos as it usually is on the 00:23:40.600 --> 00:23:43.390 align:start position:0% cat photos as it usually is on the internet<00:23:41.360> but<00:23:41.679> that's<00:23:41.960> up<00:23:42.120> to<00:23:42.360> them<00:23:43.039> it's<00:23:43.240> up 00:23:43.390 --> 00:23:43.400 align:start position:0% internet but that's up to them it's up 00:23:43.400 --> 00:23:45.870 align:start position:0% internet but that's up to them it's up to<00:23:43.640> us<00:23:44.039> to<00:23:44.240> allow<00:23:44.559> them<00:23:44.720> to<00:23:44.880> do<00:23:45.080> so<00:23:45.520> on<00:23:45.679> a 00:23:45.870 --> 00:23:45.880 align:start position:0% to us to allow them to do so on a 00:23:45.880 --> 00:23:48.909 align:start position:0% to us to allow them to do so on a beautifully<00:23:46.360> designed<00:23:46.960> and<00:23:47.240> fast<00:23:47.919> platform 00:23:48.909 --> 00:23:48.919 align:start position:0% beautifully designed and fast platform 00:23:48.919 --> 00:23:52.230 align:start position:0% beautifully designed and fast platform so<00:23:49.440> let's<00:23:49.720> jump<00:23:50.000> into<00:23:50.520> the<00:23:50.679> signup<00:23:51.159> form<00:23:52.039> the 00:23:52.230 --> 00:23:52.240 align:start position:0% so let's jump into the signup form the 00:23:52.240 --> 00:23:55.750 align:start position:0% so let's jump into the signup form the first<00:23:52.600> thing<00:23:53.200> that<00:23:53.400> our<00:23:53.640> user<00:23:54.159> will<00:23:54.480> see<00:23:55.480> our 00:23:55.750 --> 00:23:55.760 align:start position:0% first thing that our user will see our 00:23:55.760 --> 00:23:59.190 align:start position:0% first thing that our user will see our signup<00:23:56.200> form<00:23:56.679> will<00:23:56.880> be<00:23:57.120> just<00:23:57.440> that<00:23:58.080> a 00:23:59.190 --> 00:23:59.200 align:start position:0% signup form will be just that a 00:23:59.200 --> 00:24:02.110 align:start position:0% signup form will be just that a form<00:24:00.200> and<00:24:00.480> in<00:24:00.720> this<00:24:00.960> application<00:24:01.720> we'll<00:24:01.919> be 00:24:02.110 --> 00:24:02.120 align:start position:0% form and in this application we'll be 00:24:02.120 --> 00:24:05.310 align:start position:0% form and in this application we'll be using<00:24:02.760> Shad<00:24:03.400> CN<00:24:04.080> styling 00:24:05.310 --> 00:24:05.320 align:start position:0% using Shad CN styling 00:24:05.320 --> 00:24:07.990 align:start position:0% using Shad CN styling Library<00:24:06.320> it<00:24:06.440> is<00:24:06.559> a<00:24:06.760> library<00:24:07.279> of<00:24:07.520> beautifully 00:24:07.990 --> 00:24:08.000 align:start position:0% Library it is a library of beautifully 00:24:08.000 --> 00:24:10.350 align:start position:0% Library it is a library of beautifully designed<00:24:08.600> components<00:24:09.600> that<00:24:09.919> you<00:24:10.039> can 00:24:10.350 --> 00:24:10.360 align:start position:0% designed components that you can 00:24:10.360 --> 00:24:13.990 align:start position:0% designed components that you can customize<00:24:11.240> using<00:24:12.080> Tailwind<00:24:13.080> everything<00:24:13.520> from 00:24:13.990 --> 00:24:14.000 align:start position:0% customize using Tailwind everything from 00:24:14.000 --> 00:24:18.470 align:start position:0% customize using Tailwind everything from dashboards<00:24:14.960> cards<00:24:15.880> tasks<00:24:16.840> playgrounds<00:24:17.840> and 00:24:18.470 --> 00:24:18.480 align:start position:0% dashboards cards tasks playgrounds and 00:24:18.480 --> 00:24:21.710 align:start position:0% dashboards cards tasks playgrounds and of<00:24:18.679> course<00:24:19.559> forms<00:24:20.559> you'll<00:24:20.799> be<00:24:20.960> able<00:24:21.120> to<00:24:21.279> create 00:24:21.710 --> 00:24:21.720 align:start position:0% of course forms you'll be able to create 00:24:21.720 --> 00:24:23.990 align:start position:0% of course forms you'll be able to create wonderful<00:24:22.520> but<00:24:22.720> also<00:24:23.200> simple<00:24:23.720> and 00:24:23.990 --> 00:24:24.000 align:start position:0% wonderful but also simple and 00:24:24.000 --> 00:24:27.070 align:start position:0% wonderful but also simple and minimalistic<00:24:25.120> forms<00:24:26.120> everything<00:24:26.480> you<00:24:26.600> need 00:24:27.070 --> 00:24:27.080 align:start position:0% minimalistic forms everything you need 00:24:27.080 --> 00:24:28.389 align:start position:0% minimalistic forms everything you need is<00:24:27.520> there 00:24:28.389 --> 00:24:28.399 align:start position:0% is there 00:24:28.399 --> 00:24:30.710 align:start position:0% is there so<00:24:28.720> to<00:24:28.919> get<00:24:29.080> started<00:24:29.480> with<00:24:29.640> chat<00:24:30.000> CN<00:24:30.480> we<00:24:30.559> can 00:24:30.710 --> 00:24:30.720 align:start position:0% so to get started with chat CN we can 00:24:30.720 --> 00:24:32.549 align:start position:0% so to get started with chat CN we can head<00:24:30.880> through<00:24:31.039> their<00:24:31.399> documentation<00:24:32.399> and 00:24:32.549 --> 00:24:32.559 align:start position:0% head through their documentation and 00:24:32.559 --> 00:24:33.830 align:start position:0% head through their documentation and then 00:24:33.830 --> 00:24:33.840 align:start position:0% then 00:24:33.840 --> 00:24:36.029 align:start position:0% then installation<00:24:34.840> in<00:24:35.039> this<00:24:35.240> case<00:24:35.440> we're<00:24:35.640> using 00:24:36.029 --> 00:24:36.039 align:start position:0% installation in this case we're using 00:24:36.039 --> 00:24:39.070 align:start position:0% installation in this case we're using vit<00:24:37.039> we<00:24:37.200> already<00:24:37.559> set<00:24:37.720> up<00:24:37.919> the<00:24:38.159> project<00:24:38.720> and<00:24:38.919> we 00:24:39.070 --> 00:24:39.080 align:start position:0% vit we already set up the project and we 00:24:39.080 --> 00:24:41.789 align:start position:0% vit we already set up the project and we already<00:24:39.520> initialized<00:24:40.320> Tailwind<00:24:41.320> next<00:24:41.640> we 00:24:41.789 --> 00:24:41.799 align:start position:0% already initialized Tailwind next we 00:24:41.799 --> 00:24:44.990 align:start position:0% already initialized Tailwind next we have<00:24:41.919> to<00:24:42.080> modify<00:24:42.520> our<00:24:42.799> TS<00:24:43.200> config.js<00:24:44.039> by 00:24:44.990 --> 00:24:45.000 align:start position:0% have to modify our TS config.js by 00:24:45.000 --> 00:24:47.830 align:start position:0% have to modify our TS config.js by adding<00:24:45.440> this<00:24:45.679> thing<00:24:45.960> in<00:24:46.279> paths<00:24:47.200> so<00:24:47.559> we<00:24:47.640> can 00:24:47.830 --> 00:24:47.840 align:start position:0% adding this thing in paths so we can 00:24:47.840 --> 00:24:50.350 align:start position:0% adding this thing in paths so we can open<00:24:48.039> up<00:24:48.240> our<00:24:48.440> file<00:24:48.799> explorer<00:24:49.640> and<00:24:49.840> then<00:24:50.000> go<00:24:50.159> to 00:24:50.350 --> 00:24:50.360 align:start position:0% open up our file explorer and then go to 00:24:50.360 --> 00:24:55.029 align:start position:0% open up our file explorer and then go to TSC<00:24:50.799> config.js<00:24:51.880> so<00:24:52.880> press<00:24:53.200> copy<00:24:53.600> right<00:24:54.039> here 00:24:55.029 --> 00:24:55.039 align:start position:0% TSC config.js so press copy right here 00:24:55.039 --> 00:24:57.430 align:start position:0% TSC config.js so press copy right here go<00:24:55.200> to<00:24:55.320> your<00:24:55.520> file<00:24:55.840> explorer<00:24:56.799> and<00:24:56.960> then<00:24:57.159> go<00:24:57.279> to 00:24:57.430 --> 00:24:57.440 align:start position:0% go to your file explorer and then go to 00:24:57.440 --> 00:25:01.310 align:start position:0% go to your file explorer and then go to TS<00:24:57.880> config.js<00:24:58.720> right<00:24:59.720> here<00:25:00.159> below<00:25:00.480> linting 00:25:01.310 --> 00:25:01.320 align:start position:0% TS config.js right here below linting 00:25:01.320 --> 00:25:05.710 align:start position:0% TS config.js right here below linting we're<00:25:01.480> going<00:25:01.640> to<00:25:01.919> add<00:25:02.360> a<00:25:02.720> Shad<00:25:03.399> CN<00:25:04.399> note<00:25:05.399> and<00:25:05.559> we 00:25:05.710 --> 00:25:05.720 align:start position:0% we're going to add a Shad CN note and we 00:25:05.720 --> 00:25:07.470 align:start position:0% we're going to add a Shad CN note and we can<00:25:05.960> paste<00:25:06.399> the<00:25:06.559> base 00:25:07.470 --> 00:25:07.480 align:start position:0% can paste the base 00:25:07.480 --> 00:25:10.630 align:start position:0% can paste the base URL<00:25:08.480> as<00:25:08.640> well<00:25:08.799> as<00:25:09.080> pads<00:25:09.840> but<00:25:10.000> don't<00:25:10.159> forget<00:25:10.440> to 00:25:10.630 --> 00:25:10.640 align:start position:0% URL as well as pads but don't forget to 00:25:10.640 --> 00:25:13.710 align:start position:0% URL as well as pads but don't forget to add<00:25:10.880> a<00:25:11.080> comma<00:25:11.520> right<00:25:11.760> here<00:25:12.760> next<00:25:13.120> you<00:25:13.279> have<00:25:13.440> to 00:25:13.710 --> 00:25:13.720 align:start position:0% add a comma right here next you have to 00:25:13.720 --> 00:25:15.870 align:start position:0% add a comma right here next you have to install<00:25:14.559> types 00:25:15.870 --> 00:25:15.880 align:start position:0% install types 00:25:15.880 --> 00:25:18.909 align:start position:0% install types node<00:25:16.880> so<00:25:17.080> that<00:25:17.200> the<00:25:17.360> V<00:25:17.679> config<00:25:18.240> can<00:25:18.440> resolve 00:25:18.909 --> 00:25:18.919 align:start position:0% node so that the V config can resolve 00:25:18.919 --> 00:25:21.389 align:start position:0% node so that the V config can resolve paths<00:25:19.360> without<00:25:19.760> errors<00:25:20.760> for<00:25:21.000> that<00:25:21.200> we<00:25:21.279> can 00:25:21.389 --> 00:25:21.399 align:start position:0% paths without errors for that we can 00:25:21.399 --> 00:25:24.190 align:start position:0% paths without errors for that we can open<00:25:21.640> up<00:25:21.960> terminal<00:25:22.960> paste<00:25:23.279> it<00:25:23.679> and<00:25:23.880> press 00:25:24.190 --> 00:25:24.200 align:start position:0% open up terminal paste it and press 00:25:24.200 --> 00:25:27.389 align:start position:0% open up terminal paste it and press enter<00:25:25.200> once<00:25:25.480> installed<00:25:26.159> we<00:25:26.279> can<00:25:26.520> also<00:25:27.080> copy 00:25:27.389 --> 00:25:27.399 align:start position:0% enter once installed we can also copy 00:25:27.399 --> 00:25:30.389 align:start position:0% enter once installed we can also copy our 00:25:30.389 --> 00:25:30.399 align:start position:0% 00:25:30.399 --> 00:25:46.389 align:start position:0% paths<00:25:31.399> and<00:25:31.520> then<00:25:31.760> go<00:25:31.960> to<00:25:32.279> V.C 00:25:46.389 --> 00:25:46.399 align:start position:0% 00:25:46.399 --> 00:25:49.149 align:start position:0% config.txt 00:25:49.149 --> 00:25:49.159 align:start position:0% config.txt 00:25:49.159 --> 00:25:53.350 align:start position:0% config.txt in<00:25:50.159> it<00:25:51.120> let's<00:25:51.360> press<00:25:51.720> y<00:25:52.000> to<00:25:52.159> install<00:25:52.520> it<00:25:53.240> and 00:25:53.350 --> 00:25:53.360 align:start position:0% in it let's press y to install it and 00:25:53.360 --> 00:25:54.990 align:start position:0% in it let's press y to install it and then<00:25:53.520> we'll<00:25:53.679> have<00:25:53.799> to<00:25:54.000> answer<00:25:54.240> a<00:25:54.360> couple<00:25:54.600> of 00:25:54.990 --> 00:25:55.000 align:start position:0% then we'll have to answer a couple of 00:25:55.000 --> 00:25:56.990 align:start position:0% then we'll have to answer a couple of questions<00:25:56.000> we<00:25:56.200> would<00:25:56.440> like<00:25:56.640> to<00:25:56.760> use 00:25:56.990 --> 00:25:57.000 align:start position:0% questions we would like to use 00:25:57.000 --> 00:25:59.750 align:start position:0% questions we would like to use typescript<00:25:57.880> yes<00:25:58.600> we<00:25:58.720> would<00:25:58.880> like<00:25:59.080> a<00:25:59.240> default 00:25:59.750 --> 00:25:59.760 align:start position:0% typescript yes we would like a default 00:25:59.760 --> 00:26:02.430 align:start position:0% typescript yes we would like a default style<00:26:00.399> yes<00:26:00.880> we're<00:26:01.039> going<00:26:01.120> to<00:26:01.279> use<00:26:01.600> the<00:26:01.799> Slate 00:26:02.430 --> 00:26:02.440 align:start position:0% style yes we're going to use the Slate 00:26:02.440 --> 00:26:06.549 align:start position:0% style yes we're going to use the Slate Coler<00:26:03.440> our<00:26:03.760> Global<00:26:04.159> CSS<00:26:04.679> file<00:26:05.240> is<00:26:05.640> within 00:26:06.549 --> 00:26:06.559 align:start position:0% Coler our Global CSS file is within 00:26:06.559 --> 00:26:10.630 align:start position:0% Coler our Global CSS file is within Source<00:26:07.559> SLG<00:26:08.440> global.<00:26:09.440> CSS<00:26:10.080> so<00:26:10.240> we<00:26:10.399> have<00:26:10.480> to 00:26:10.630 --> 00:26:10.640 align:start position:0% Source SLG global. CSS so we have to 00:26:10.640 --> 00:26:14.310 align:start position:0% Source SLG global. CSS so we have to modify<00:26:11.559> that<00:26:12.559> we<00:26:12.720> do<00:26:12.960> want<00:26:13.120> to<00:26:13.240> use<00:26:13.480> CSS 00:26:14.310 --> 00:26:14.320 align:start position:0% modify that we do want to use CSS 00:26:14.320 --> 00:26:17.549 align:start position:0% modify that we do want to use CSS variables<00:26:15.320> our<00:26:15.559> Tailwind<00:26:16.039> config<00:26:16.399> JS<00:26:16.799> file<00:26:17.279> is 00:26:17.549 --> 00:26:17.559 align:start position:0% variables our Tailwind config JS file is 00:26:17.559 --> 00:26:19.310 align:start position:0% variables our Tailwind config JS file is located<00:26:18.480> right 00:26:19.310 --> 00:26:19.320 align:start position:0% located right 00:26:19.320 --> 00:26:22.430 align:start position:0% located right here<00:26:20.320> so<00:26:20.480> we<00:26:20.600> can<00:26:20.720> simply<00:26:21.039> press<00:26:21.279> enter<00:26:22.159> and<00:26:22.360> we 00:26:22.430 --> 00:26:22.440 align:start position:0% here so we can simply press enter and we 00:26:22.440 --> 00:26:24.750 align:start position:0% here so we can simply press enter and we can<00:26:22.640> press<00:26:22.840> enter<00:26:23.159> for<00:26:23.360> the<00:26:23.520> import<00:26:23.919> alas<00:26:24.559> as 00:26:24.750 --> 00:26:24.760 align:start position:0% can press enter for the import alas as 00:26:24.760 --> 00:26:27.669 align:start position:0% can press enter for the import alas as well<00:26:25.320> for<00:26:25.559> utils<00:26:26.080> 2<00:26:26.799> and<00:26:26.960> we<00:26:27.080> do<00:26:27.240> want<00:26:27.320> to<00:26:27.440> use 00:26:27.669 --> 00:26:27.679 align:start position:0% well for utils 2 and we do want to use 00:26:27.679 --> 00:26:29.710 align:start position:0% well for utils 2 and we do want to use use<00:26:27.840> react<00:26:28.120> server<00:26:28.440> components<00:26:29.279> and<00:26:29.440> we<00:26:29.559> can 00:26:29.710 --> 00:26:29.720 align:start position:0% use react server components and we can 00:26:29.720 --> 00:26:32.269 align:start position:0% use react server components and we can write<00:26:30.039> a<00:26:30.240> configuration<00:26:30.880> so<00:26:31.080> simply<00:26:31.760> yes<00:26:32.039> yes 00:26:32.269 --> 00:26:32.279 align:start position:0% write a configuration so simply yes yes 00:26:32.279 --> 00:26:35.110 align:start position:0% write a configuration so simply yes yes yes<00:26:32.760> enter<00:26:33.080> enter<00:26:33.360> enter<00:26:33.919> and<00:26:34.080> then<00:26:34.399> y<00:26:34.799> to 00:26:35.110 --> 00:26:35.120 align:start position:0% yes enter enter enter and then y to 00:26:35.120 --> 00:26:37.310 align:start position:0% yes enter enter enter and then y to submit<00:26:35.440> it<00:26:36.279> this<00:26:36.399> is<00:26:36.520> going<00:26:36.679> to<00:26:36.840> install<00:26:37.159> the 00:26:37.310 --> 00:26:37.320 align:start position:0% submit it this is going to install the 00:26:37.320 --> 00:26:39.549 align:start position:0% submit it this is going to install the necessary<00:26:37.799> dependencies<00:26:38.799> and<00:26:39.000> then<00:26:39.240> we'll<00:26:39.399> be 00:26:39.549 --> 00:26:39.559 align:start position:0% necessary dependencies and then we'll be 00:26:39.559 --> 00:26:42.750 align:start position:0% necessary dependencies and then we'll be able<00:26:39.720> to<00:26:39.880> start<00:26:40.240> using<00:26:40.720> shaten<00:26:41.760> components 00:26:42.750 --> 00:26:42.760 align:start position:0% able to start using shaten components 00:26:42.760 --> 00:26:44.710 align:start position:0% able to start using shaten components that's<00:26:43.159> it<00:26:43.559> this<00:26:43.720> was<00:26:43.880> the<00:26:44.039> last<00:26:44.240> step<00:26:44.559> right 00:26:44.710 --> 00:26:44.720 align:start position:0% that's it this was the last step right 00:26:44.720 --> 00:26:47.830 align:start position:0% that's it this was the last step right here<00:26:45.320> now<00:26:45.480> a<00:26:45.679> big<00:26:45.960> difference<00:26:46.600> between<00:26:46.919> shaten 00:26:47.830 --> 00:26:47.840 align:start position:0% here now a big difference between shaten 00:26:47.840 --> 00:26:50.630 align:start position:0% here now a big difference between shaten and<00:26:48.039> other<00:26:48.279> UI<00:26:48.640> libraries<00:26:49.600> is<00:26:49.720> that<00:26:49.880> shaten 00:26:50.630 --> 00:26:50.640 align:start position:0% and other UI libraries is that shaten 00:26:50.640 --> 00:26:53.310 align:start position:0% and other UI libraries is that shaten with<00:26:50.799> this<00:26:51.000> config<00:26:51.760> didn't<00:26:52.200> add<00:26:52.640> absolutely 00:26:53.310 --> 00:26:53.320 align:start position:0% with this config didn't add absolutely 00:26:53.320 --> 00:26:56.350 align:start position:0% with this config didn't add absolutely any<00:26:53.559> code<00:26:53.799> to<00:26:53.919> our<00:26:54.240> project<00:26:55.000> it<00:26:55.120> will<00:26:55.440> only<00:26:56.159> add 00:26:56.350 --> 00:26:56.360 align:start position:0% any code to our project it will only add 00:26:56.360 --> 00:26:57.909 align:start position:0% any code to our project it will only add the<00:26:56.559> code<00:26:57.000> and<00:26:57.159> the<00:26:57.279> component<00:26:57.559> components 00:26:57.909 --> 00:26:57.919 align:start position:0% the code and the component components 00:26:57.919 --> 00:27:00.029 align:start position:0% the code and the component components that<00:26:58.039> we<00:26:58.240> actually<00:26:58.600> need<00:26:59.200> so<00:26:59.360> we'll<00:26:59.559> have<00:26:59.679> to 00:27:00.029 --> 00:27:00.039 align:start position:0% that we actually need so we'll have to 00:27:00.039 --> 00:27:02.310 align:start position:0% that we actually need so we'll have to manually<00:27:00.640> add<00:27:01.159> every<00:27:01.399> single<00:27:01.760> component<00:27:02.200> we 00:27:02.310 --> 00:27:02.320 align:start position:0% manually add every single component we 00:27:02.320 --> 00:27:04.990 align:start position:0% manually add every single component we want<00:27:02.399> to<00:27:02.760> use<00:27:03.760> so<00:27:04.039> let's<00:27:04.200> use<00:27:04.399> their<00:27:04.640> button 00:27:04.990 --> 00:27:05.000 align:start position:0% want to use so let's use their button 00:27:05.000 --> 00:27:08.110 align:start position:0% want to use so let's use their button example<00:27:05.320> to<00:27:05.559> start<00:27:05.880> with<00:27:06.600> copy<00:27:06.919> this<00:27:07.120> command 00:27:08.110 --> 00:27:08.120 align:start position:0% example to start with copy this command 00:27:08.120 --> 00:27:11.630 align:start position:0% example to start with copy this command paste<00:27:08.399> it<00:27:08.559> in<00:27:08.679> the<00:27:08.799> terminal<00:27:09.640> and<00:27:09.840> press<00:27:10.640> enter 00:27:11.630 --> 00:27:11.640 align:start position:0% paste it in the terminal and press enter 00:27:11.640 --> 00:27:14.070 align:start position:0% paste it in the terminal and press enter it's<00:27:11.760> going<00:27:11.919> to<00:27:12.039> say<00:27:12.320> installing<00:27:12.919> button<00:27:13.919> and 00:27:14.070 --> 00:27:14.080 align:start position:0% it's going to say installing button and 00:27:14.080 --> 00:27:15.789 align:start position:0% it's going to say installing button and if<00:27:14.200> you<00:27:14.360> pay<00:27:14.559> close<00:27:14.880> attention<00:27:15.440> you'll<00:27:15.640> be 00:27:15.789 --> 00:27:15.799 align:start position:0% if you pay close attention you'll be 00:27:15.799 --> 00:27:17.470 align:start position:0% if you pay close attention you'll be able<00:27:15.960> to<00:27:16.159> notice<00:27:16.559> that<00:27:16.720> it's<00:27:16.840> going<00:27:17.000> to<00:27:17.159> create 00:27:17.470 --> 00:27:17.480 align:start position:0% able to notice that it's going to create 00:27:17.480 --> 00:27:20.430 align:start position:0% able to notice that it's going to create a<00:27:17.679> complete<00:27:18.240> new<00:27:18.520> folder<00:27:19.080> called<00:27:19.440> components 00:27:20.430 --> 00:27:20.440 align:start position:0% a complete new folder called components 00:27:20.440 --> 00:27:22.630 align:start position:0% a complete new folder called components UI<00:27:21.360> and<00:27:21.559> there's<00:27:21.799> going<00:27:21.919> to<00:27:22.039> be<00:27:22.159> the<00:27:22.279> code<00:27:22.480> for 00:27:22.630 --> 00:27:22.640 align:start position:0% UI and there's going to be the code for 00:27:22.640 --> 00:27:25.789 align:start position:0% UI and there's going to be the code for the<00:27:22.799> button<00:27:23.799> that's<00:27:24.120> why<00:27:24.279> shaten<00:27:24.919> is<00:27:25.000> so<00:27:25.240> cool 00:27:25.789 --> 00:27:25.799 align:start position:0% the button that's why shaten is so cool 00:27:25.799 --> 00:27:27.630 align:start position:0% the button that's why shaten is so cool it<00:27:25.960> doesn't<00:27:26.360> add<00:27:26.640> any<00:27:26.840> code<00:27:27.080> you<00:27:27.159> don't<00:27:27.320> need 00:27:27.630 --> 00:27:27.640 align:start position:0% it doesn't add any code you don't need 00:27:27.640 --> 00:27:30.510 align:start position:0% it doesn't add any code you don't need need<00:27:28.080> it<00:27:28.240> simply<00:27:28.720> adds<00:27:29.279> a<00:27:29.520> button<00:27:29.919> component 00:27:30.510 --> 00:27:30.520 align:start position:0% need it simply adds a button component 00:27:30.520 --> 00:27:33.430 align:start position:0% need it simply adds a button component we<00:27:30.679> just<00:27:30.880> installed<00:27:31.880> and<00:27:32.080> you<00:27:32.200> can<00:27:32.399> modify<00:27:33.039> its 00:27:33.430 --> 00:27:33.440 align:start position:0% we just installed and you can modify its 00:27:33.440 --> 00:27:35.630 align:start position:0% we just installed and you can modify its source<00:27:33.840> code<00:27:34.600> it's<00:27:34.760> not<00:27:34.960> like<00:27:35.080> we'll<00:27:35.240> need<00:27:35.440> to 00:27:35.630 --> 00:27:35.640 align:start position:0% source code it's not like we'll need to 00:27:35.640 --> 00:27:38.789 align:start position:0% source code it's not like we'll need to do<00:27:35.840> that<00:27:36.279> but<00:27:36.559> you<00:27:36.760> can<00:27:37.080> if<00:27:37.200> you<00:27:37.360> want<00:27:37.559> to<00:27:38.399> so 00:27:38.789 --> 00:27:38.799 align:start position:0% do that but you can if you want to so 00:27:38.799 --> 00:27:40.710 align:start position:0% do that but you can if you want to so with<00:27:38.960> that<00:27:39.159> said<00:27:39.640> now<00:27:39.840> we<00:27:40.000> have<00:27:40.320> everything 00:27:40.710 --> 00:27:40.720 align:start position:0% with that said now we have everything 00:27:40.720 --> 00:27:43.669 align:start position:0% with that said now we have everything set<00:27:41.000> up<00:27:41.760> and<00:27:42.000> let's<00:27:42.200> try<00:27:42.399> to<00:27:42.600> use<00:27:42.960> that<00:27:43.159> button 00:27:43.669 --> 00:27:43.679 align:start position:0% set up and let's try to use that button 00:27:43.679 --> 00:27:45.549 align:start position:0% set up and let's try to use that button within<00:27:43.880> our<00:27:44.080> signup<00:27:44.480> form<00:27:45.120> the<00:27:45.240> only<00:27:45.440> thing 00:27:45.549 --> 00:27:45.559 align:start position:0% within our signup form the only thing 00:27:45.559 --> 00:27:47.870 align:start position:0% within our signup form the only thing you<00:27:45.640> need<00:27:45.799> to<00:27:45.919> do<00:27:46.200> to<00:27:46.360> do<00:27:46.600> that<00:27:47.080> is<00:27:47.440> import 00:27:47.870 --> 00:27:47.880 align:start position:0% you need to do to do that is import 00:27:47.880 --> 00:27:50.230 align:start position:0% you need to do to do that is import button<00:27:48.200> from<00:27:48.480> component<00:27:48.960> UI<00:27:49.320> button<00:27:49.919> and<00:27:50.080> then 00:27:50.230 --> 00:27:50.240 align:start position:0% button from component UI button and then 00:27:50.240 --> 00:27:52.990 align:start position:0% button from component UI button and then use<00:27:50.480> it<00:27:50.880> so<00:27:51.200> back<00:27:51.399> in<00:27:51.559> our<00:27:51.799> app<00:27:52.240> let's<00:27:52.440> do<00:27:52.720> just 00:27:52.990 --> 00:27:53.000 align:start position:0% use it so back in our app let's do just 00:27:53.000 --> 00:27:55.190 align:start position:0% use it so back in our app let's do just that<00:27:53.519> import<00:27:53.960> button<00:27:54.399> we're<00:27:54.559> going<00:27:54.679> to<00:27:54.880> copy 00:27:55.190 --> 00:27:55.200 align:start position:0% that import button we're going to copy 00:27:55.200 --> 00:27:57.950 align:start position:0% that import button we're going to copy this<00:27:55.559> button<00:27:56.559> and<00:27:56.799> just<00:27:56.960> use<00:27:57.120> it<00:27:57.279> right<00:27:57.640> here 00:27:57.950 --> 00:27:57.960 align:start position:0% this button and just use it right here 00:27:57.960 --> 00:27:59.389 align:start position:0% this button and just use it right here within<00:27:58.279> this 00:27:59.389 --> 00:27:59.399 align:start position:0% within this 00:27:59.399 --> 00:28:02.509 align:start position:0% within this div<00:28:00.399> let's<00:28:00.640> press<00:28:00.919> save<00:28:01.640> and<00:28:01.960> back<00:28:02.120> in<00:28:02.240> our 00:28:02.509 --> 00:28:02.519 align:start position:0% div let's press save and back in our 00:28:02.519 --> 00:28:05.669 align:start position:0% div let's press save and back in our application<00:28:03.519> if<00:28:03.640> you<00:28:03.840> go<00:28:04.000> to<00:28:04.279> for<00:28:04.720> slash 00:28:05.669 --> 00:28:05.679 align:start position:0% application if you go to for slash 00:28:05.679 --> 00:28:07.789 align:start position:0% application if you go to for slash sign-up<00:28:06.679> which<00:28:06.799> is<00:28:06.919> the<00:28:07.080> route<00:28:07.360> for<00:28:07.600> our 00:28:07.789 --> 00:28:07.799 align:start position:0% sign-up which is the route for our 00:28:07.799 --> 00:28:08.789 align:start position:0% sign-up which is the route for our signup 00:28:08.789 --> 00:28:08.799 align:start position:0% signup 00:28:08.799 --> 00:28:12.070 align:start position:0% signup page<00:28:09.799> you<00:28:09.880> can<00:28:10.039> see<00:28:10.240> the<00:28:10.440> O<00:28:10.960> layout<00:28:11.840> that's 00:28:12.070 --> 00:28:12.080 align:start position:0% page you can see the O layout that's 00:28:12.080 --> 00:28:14.430 align:start position:0% page you can see the O layout that's correct<00:28:12.720> and<00:28:12.919> the<00:28:13.039> reason<00:28:13.240> for<00:28:13.519> that<00:28:13.880> is<00:28:14.120> that 00:28:14.430 --> 00:28:14.440 align:start position:0% correct and the reason for that is that 00:28:14.440 --> 00:28:17.230 align:start position:0% correct and the reason for that is that our<00:28:14.880> o<00:28:15.360> layout<00:28:16.000> it's<00:28:16.240> not<00:28:16.440> returning<00:28:16.960> any 00:28:17.230 --> 00:28:17.240 align:start position:0% our o layout it's not returning any 00:28:17.240 --> 00:28:19.669 align:start position:0% our o layout it's not returning any pages<00:28:17.679> that<00:28:17.799> are<00:28:18.000> within<00:28:18.279> it<00:28:18.960> so<00:28:19.240> to<00:28:19.360> be<00:28:19.519> able 00:28:19.669 --> 00:28:19.679 align:start position:0% pages that are within it so to be able 00:28:19.679 --> 00:28:22.230 align:start position:0% pages that are within it so to be able to<00:28:19.799> see<00:28:20.120> this<00:28:20.279> button<00:28:20.919> let's<00:28:21.159> first<00:28:21.559> focus<00:28:22.000> on 00:28:22.230 --> 00:28:22.240 align:start position:0% to see this button let's first focus on 00:28:22.240 --> 00:28:24.070 align:start position:0% to see this button let's first focus on implementing<00:28:22.840> the<00:28:23.039> O 00:28:24.070 --> 00:28:24.080 align:start position:0% implementing the O 00:28:24.080 --> 00:28:26.950 align:start position:0% implementing the O layout<00:28:25.080> the<00:28:25.240> only<00:28:25.559> thing<00:28:25.720> we'll<00:28:25.960> need<00:28:26.240> in<00:28:26.480> here 00:28:26.950 --> 00:28:26.960 align:start position:0% layout the only thing we'll need in here 00:28:26.960 --> 00:28:29.430 align:start position:0% layout the only thing we'll need in here are<00:28:27.480> two<00:28:27.840> special<00:28:28.240> components<00:28:28.799> from<00:28:29.000> react 00:28:29.430 --> 00:28:29.440 align:start position:0% are two special components from react 00:28:29.440 --> 00:28:32.430 align:start position:0% are two special components from react router<00:28:29.840> Dom<00:28:30.840> so<00:28:31.080> let's<00:28:31.320> import<00:28:31.760> a<00:28:31.919> component 00:28:32.430 --> 00:28:32.440 align:start position:0% router Dom so let's import a component 00:28:32.440 --> 00:28:34.870 align:start position:0% router Dom so let's import a component called<00:28:32.840> Outlet<00:28:33.840> interesting<00:28:34.279> name<00:28:34.640> I'm<00:28:34.760> going 00:28:34.870 --> 00:28:34.880 align:start position:0% called Outlet interesting name I'm going 00:28:34.880 --> 00:28:36.950 align:start position:0% called Outlet interesting name I'm going to<00:28:35.000> soon<00:28:35.279> let<00:28:35.480> you<00:28:35.600> know<00:28:35.799> what<00:28:35.919> it<00:28:36.080> does<00:28:36.799> and 00:28:36.950 --> 00:28:36.960 align:start position:0% to soon let you know what it does and 00:28:36.960 --> 00:28:39.630 align:start position:0% to soon let you know what it does and then<00:28:37.399> navigate<00:28:38.399> and<00:28:38.640> we<00:28:38.760> can<00:28:38.960> import<00:28:39.360> that 00:28:39.630 --> 00:28:39.640 align:start position:0% then navigate and we can import that 00:28:39.640 --> 00:28:42.230 align:start position:0% then navigate and we can import that from<00:28:40.200> react<00:28:40.880> router 00:28:42.230 --> 00:28:42.240 align:start position:0% from react router 00:28:42.240 --> 00:28:44.669 align:start position:0% from react router Dom<00:28:43.240> now<00:28:43.559> later<00:28:43.799> on<00:28:44.000> we'll<00:28:44.200> have<00:28:44.279> to<00:28:44.440> figure 00:28:44.669 --> 00:28:44.679 align:start position:0% Dom now later on we'll have to figure 00:28:44.679 --> 00:28:47.590 align:start position:0% Dom now later on we'll have to figure out<00:28:44.960> if<00:28:45.080> a<00:28:45.240> user<00:28:45.640> is<00:28:46.080> authenticated<00:28:47.080> so<00:28:47.320> for 00:28:47.590 --> 00:28:47.600 align:start position:0% out if a user is authenticated so for 00:28:47.600 --> 00:28:50.230 align:start position:0% out if a user is authenticated so for now<00:28:47.960> we<00:28:48.080> can<00:28:48.240> simply<00:28:48.559> say<00:28:48.960> is 00:28:50.230 --> 00:28:50.240 align:start position:0% now we can simply say is 00:28:50.240 --> 00:28:53.269 align:start position:0% now we can simply say is authenticated<00:28:51.240> is<00:28:51.600> equal<00:28:51.919> to<00:28:52.519> let's<00:28:52.720> do<00:28:52.880> fals 00:28:53.269 --> 00:28:53.279 align:start position:0% authenticated is equal to let's do fals 00:28:53.279 --> 00:28:56.029 align:start position:0% authenticated is equal to let's do fals for<00:28:53.519> now<00:28:54.240> later<00:28:54.519> on<00:28:55.039> this<00:28:55.159> is<00:28:55.320> going<00:28:55.480> to<00:28:55.640> be<00:28:55.840> a 00:28:56.029 --> 00:28:56.039 align:start position:0% for now later on this is going to be a 00:28:56.039 --> 00:28:59.029 align:start position:0% for now later on this is going to be a dynamic<00:28:56.640> value<00:28:57.600> based<00:28:58.039> off<00:28:58.399> this<00:28:58.559> Boolean 00:28:59.029 --> 00:28:59.039 align:start position:0% dynamic value based off this Boolean 00:28:59.039 --> 00:29:03.590 align:start position:0% dynamic value based off this Boolean variable<00:28:59.919> we<00:29:00.080> can<00:29:00.440> return<00:29:01.080> a<00:29:01.279> react 00:29:03.590 --> 00:29:03.600 align:start position:0% variable we can return a react 00:29:03.600 --> 00:29:06.710 align:start position:0% variable we can return a react fragment<00:29:04.600> but<00:29:04.880> then<00:29:05.640> we<00:29:05.799> can<00:29:06.039> open<00:29:06.320> a<00:29:06.480> new 00:29:06.710 --> 00:29:06.720 align:start position:0% fragment but then we can open a new 00:29:06.720 --> 00:29:10.789 align:start position:0% fragment but then we can open a new Dynamic<00:29:07.159> block<00:29:07.399> of<00:29:07.600> code<00:29:08.279> and<00:29:08.440> say<00:29:08.799> if<00:29:09.600> is 00:29:10.789 --> 00:29:10.799 align:start position:0% Dynamic block of code and say if is 00:29:10.799 --> 00:29:13.669 align:start position:0% Dynamic block of code and say if is authenticated<00:29:11.799> in<00:29:12.080> that<00:29:12.320> case<00:29:12.720> if<00:29:12.880> we<00:29:13.039> are 00:29:13.669 --> 00:29:13.679 align:start position:0% authenticated in that case if we are 00:29:13.679 --> 00:29:17.310 align:start position:0% authenticated in that case if we are authenticated<00:29:14.679> we<00:29:14.799> can<00:29:15.159> return<00:29:15.799> a<00:29:16.320> navigate 00:29:17.310 --> 00:29:17.320 align:start position:0% authenticated we can return a navigate 00:29:17.320 --> 00:29:20.549 align:start position:0% authenticated we can return a navigate to<00:29:18.320> forward<00:29:18.840> slash<00:29:19.640> so<00:29:19.799> we<00:29:19.880> want<00:29:20.039> to<00:29:20.200> navigate 00:29:20.549 --> 00:29:20.559 align:start position:0% to forward slash so we want to navigate 00:29:20.559 --> 00:29:23.350 align:start position:0% to forward slash so we want to navigate the<00:29:20.640> user<00:29:20.880> to<00:29:21.039> the<00:29:21.159> home<00:29:22.039> but<00:29:22.200> if<00:29:22.320> we're<00:29:22.600> not 00:29:23.350 --> 00:29:23.360 align:start position:0% the user to the home but if we're not 00:29:23.360 --> 00:29:26.310 align:start position:0% the user to the home but if we're not authenticated<00:29:24.360> in<00:29:24.600> that<00:29:24.840> case<00:29:25.159> we<00:29:25.279> can 00:29:26.310 --> 00:29:26.320 align:start position:0% authenticated in that case we can 00:29:26.320 --> 00:29:28.509 align:start position:0% authenticated in that case we can return<00:29:27.399> a<00:29:27.559> react 00:29:28.509 --> 00:29:28.519 align:start position:0% return a react 00:29:28.519 --> 00:29:31.870 align:start position:0% return a react fragment<00:29:29.519> like<00:29:29.919> this<00:29:30.919> that's<00:29:31.120> going<00:29:31.320> to<00:29:31.559> have 00:29:31.870 --> 00:29:31.880 align:start position:0% fragment like this that's going to have 00:29:31.880 --> 00:29:35.549 align:start position:0% fragment like this that's going to have a<00:29:32.120> section<00:29:32.720> within<00:29:33.399> it<00:29:34.399> and<00:29:34.720> that<00:29:34.960> section<00:29:35.440> is 00:29:35.549 --> 00:29:35.559 align:start position:0% a section within it and that section is 00:29:35.559 --> 00:29:38.389 align:start position:0% a section within it and that section is going<00:29:35.720> to<00:29:35.840> render<00:29:36.240> the<00:29:36.440> outlet<00:29:37.440> meaning<00:29:38.159> what 00:29:38.389 --> 00:29:38.399 align:start position:0% going to render the outlet meaning what 00:29:38.399 --> 00:29:40.870 align:start position:0% going to render the outlet meaning what has<00:29:38.559> to<00:29:38.760> be<00:29:39.000> on<00:29:39.159> the<00:29:39.360> page<00:29:39.559> we're<00:29:39.760> on<00:29:40.320> such<00:29:40.519> as 00:29:40.870 --> 00:29:40.880 align:start position:0% has to be on the page we're on such as 00:29:40.880 --> 00:29:44.190 align:start position:0% has to be on the page we're on such as sign<00:29:41.159> up<00:29:41.600> or<00:29:41.840> sign<00:29:42.120> in<00:29:42.760> whatever<00:29:43.320> is<00:29:43.720> Within 00:29:44.190 --> 00:29:44.200 align:start position:0% sign up or sign in whatever is Within 00:29:44.200 --> 00:29:47.190 align:start position:0% sign up or sign in whatever is Within These<00:29:44.720> pages<00:29:45.159> right<00:29:45.399> here<00:29:46.200> great<00:29:46.799> so<00:29:47.000> now 00:29:47.190 --> 00:29:47.200 align:start position:0% These pages right here great so now 00:29:47.200 --> 00:29:50.350 align:start position:0% These pages right here great so now let's<00:29:47.440> save<00:29:47.760> this<00:29:48.480> go<00:29:48.720> back<00:29:48.880> to<00:29:49.039> our<00:29:49.279> app<00:29:50.120> and 00:29:50.350 --> 00:29:50.360 align:start position:0% let's save this go back to our app and 00:29:50.360 --> 00:29:53.909 align:start position:0% let's save this go back to our app and you<00:29:50.440> can<00:29:50.600> see<00:29:50.880> a<00:29:51.039> wonderful<00:29:51.880> click<00:29:52.159> me<00:29:52.919> button 00:29:53.909 --> 00:29:53.919 align:start position:0% you can see a wonderful click me button 00:29:53.919 --> 00:29:56.070 align:start position:0% you can see a wonderful click me button great<00:29:54.519> now<00:29:54.720> let's<00:29:54.919> go<00:29:55.120> back<00:29:55.279> to<00:29:55.399> the<00:29:55.559> normal 00:29:56.070 --> 00:29:56.080 align:start position:0% great now let's go back to the normal 00:29:56.080 --> 00:29:58.430 align:start position:0% great now let's go back to the normal size<00:29:57.080> and<00:29:57.440> let's<00:29:57.720> actually<00:29:58.039> start 00:29:58.430 --> 00:29:58.440 align:start position:0% size and let's actually start 00:29:58.440 --> 00:30:01.070 align:start position:0% size and let's actually start implementing<00:29:59.440> what<00:29:59.679> we<00:29:59.799> can<00:29:59.960> see<00:30:00.480> here<00:30:00.799> on<00:30:00.960> the 00:30:01.070 --> 00:30:01.080 align:start position:0% implementing what we can see here on the 00:30:01.080 --> 00:30:04.350 align:start position:0% implementing what we can see here on the finished<00:30:01.480> website<00:30:02.440> a<00:30:02.679> complete<00:30:03.480> sign<00:30:03.760> up<00:30:04.159> and 00:30:04.350 --> 00:30:04.360 align:start position:0% finished website a complete sign up and 00:30:04.360 --> 00:30:07.269 align:start position:0% finished website a complete sign up and sign-in<00:30:04.880> pages<00:30:05.519> with<00:30:05.720> the<00:30:05.919> design<00:30:06.720> and<00:30:07.080> the 00:30:07.269 --> 00:30:07.279 align:start position:0% sign-in pages with the design and the 00:30:07.279 --> 00:30:10.310 align:start position:0% sign-in pages with the design and the forms<00:30:08.279> to<00:30:08.440> do<00:30:08.679> that<00:30:08.960> we<00:30:09.080> can<00:30:09.320> first<00:30:09.760> style<00:30:10.159> the 00:30:10.310 --> 00:30:10.320 align:start position:0% forms to do that we can first style the 00:30:10.320 --> 00:30:13.509 align:start position:0% forms to do that we can first style the layout<00:30:10.679> a<00:30:11.120> bit<00:30:12.120> by<00:30:12.279> giving<00:30:12.559> this<00:30:12.760> section<00:30:13.279> A 00:30:13.509 --> 00:30:13.519 align:start position:0% layout a bit by giving this section A 00:30:13.519 --> 00:30:18.149 align:start position:0% layout a bit by giving this section A Class<00:30:13.840> name<00:30:14.559> equal<00:30:14.880> to<00:30:15.640> flex<00:30:16.640> Flex 00:30:18.149 --> 00:30:18.159 align:start position:0% Class name equal to flex Flex 00:30:18.159 --> 00:30:20.909 align:start position:0% Class name equal to flex Flex D1<00:30:19.159> justify<00:30:19.840> Dash 00:30:20.909 --> 00:30:20.919 align:start position:0% D1 justify Dash 00:30:20.919 --> 00:30:22.990 align:start position:0% D1 justify Dash Center<00:30:21.919> so<00:30:22.080> we<00:30:22.200> need<00:30:22.320> to<00:30:22.440> ensure<00:30:22.720> that<00:30:22.880> the 00:30:22.990 --> 00:30:23.000 align:start position:0% Center so we need to ensure that the 00:30:23.000 --> 00:30:26.269 align:start position:0% Center so we need to ensure that the form<00:30:23.440> is<00:30:23.679> centered<00:30:24.279> horizontally<00:30:25.279> as<00:30:25.440> well<00:30:25.679> as 00:30:26.269 --> 00:30:26.279 align:start position:0% form is centered horizontally as well as 00:30:26.279 --> 00:30:28.110 align:start position:0% form is centered horizontally as well as items<00:30:26.760> Das<00:30:26.960> Center<00:30:27.600> which<00:30:27.720> is<00:30:27.840> going<00:30:28.000> to 00:30:28.110 --> 00:30:28.120 align:start position:0% items Das Center which is going to 00:30:28.120 --> 00:30:30.669 align:start position:0% items Das Center which is going to center<00:30:28.399> it<00:30:28.880> vertically<00:30:29.880> it's<00:30:30.039> going<00:30:30.200> to<00:30:30.360> be 00:30:30.669 --> 00:30:30.679 align:start position:0% center it vertically it's going to be 00:30:30.679 --> 00:30:33.430 align:start position:0% center it vertically it's going to be one<00:30:30.919> below<00:30:31.240> another<00:30:31.720> so<00:30:32.240> flex-all<00:30:33.240> and 00:30:33.430 --> 00:30:33.440 align:start position:0% one below another so flex-all and 00:30:33.440 --> 00:30:35.909 align:start position:0% one below another so flex-all and padding<00:30:33.840> y<00:30:34.120> of<00:30:34.320> 10<00:30:34.760> meaning<00:30:35.120> padding<00:30:35.519> on<00:30:35.720> top 00:30:35.909 --> 00:30:35.919 align:start position:0% padding y of 10 meaning padding on top 00:30:35.919 --> 00:30:38.269 align:start position:0% padding y of 10 meaning padding on top and<00:30:36.120> bottom<00:30:37.120> this<00:30:37.240> is<00:30:37.360> going<00:30:37.519> to<00:30:37.679> now<00:30:37.919> Center 00:30:38.269 --> 00:30:38.279 align:start position:0% and bottom this is going to now Center 00:30:38.279 --> 00:30:40.269 align:start position:0% and bottom this is going to now Center it<00:30:38.760> but<00:30:38.919> on<00:30:39.080> the<00:30:39.279> right<00:30:39.519> side<00:30:39.640> of<00:30:39.760> the<00:30:39.880> screen 00:30:40.269 --> 00:30:40.279 align:start position:0% it but on the right side of the screen 00:30:40.279 --> 00:30:42.789 align:start position:0% it but on the right side of the screen we<00:30:40.399> want<00:30:40.519> to<00:30:40.640> show<00:30:40.960> this<00:30:41.200> beautiful<00:30:41.720> image<00:30:42.600> so 00:30:42.789 --> 00:30:42.799 align:start position:0% we want to show this beautiful image so 00:30:42.799 --> 00:30:45.430 align:start position:0% we want to show this beautiful image so to<00:30:42.960> do<00:30:43.159> that<00:30:43.480> we<00:30:43.600> can<00:30:43.720> render<00:30:44.080> a<00:30:44.440> self-closing 00:30:45.430 --> 00:30:45.440 align:start position:0% to do that we can render a self-closing 00:30:45.440 --> 00:30:48.710 align:start position:0% to do that we can render a self-closing image<00:30:45.880> tag<00:30:46.880> that's<00:30:47.080> going<00:30:47.240> to<00:30:47.440> have<00:30:47.679> a<00:30:47.880> source 00:30:48.710 --> 00:30:48.720 align:start position:0% image tag that's going to have a source 00:30:48.720 --> 00:30:51.350 align:start position:0% image tag that's going to have a source off<00:30:49.720> and<00:30:49.919> now<00:30:50.440> how<00:30:50.600> are<00:30:50.679> we<00:30:50.799> going<00:30:50.960> to<00:30:51.080> get 00:30:51.350 --> 00:30:51.360 align:start position:0% off and now how are we going to get 00:30:51.360 --> 00:30:53.590 align:start position:0% off and now how are we going to get access<00:30:51.640> to<00:30:51.760> this<00:30:51.960> image<00:30:52.600> I<00:30:52.760> created<00:30:53.159> a<00:30:53.360> few 00:30:53.590 --> 00:30:53.600 align:start position:0% access to this image I created a few 00:30:53.600 --> 00:30:55.750 align:start position:0% access to this image I created a few wonderful<00:30:54.200> assets<00:30:54.720> that<00:30:54.960> I<00:30:55.080> want<00:30:55.279> you<00:30:55.440> to<00:30:55.600> be 00:30:55.750 --> 00:30:55.760 align:start position:0% wonderful assets that I want you to be 00:30:55.760 --> 00:30:57.909 align:start position:0% wonderful assets that I want you to be able<00:30:55.960> to<00:30:56.159> use<00:30:56.960> so<00:30:57.240> so<00:30:57.440> down<00:30:57.639> in<00:30:57.760> the 00:30:57.909 --> 00:30:57.919 align:start position:0% able to use so so down in the 00:30:57.919 --> 00:31:00.190 align:start position:0% able to use so so down in the description<00:30:58.679> in<00:30:58.919> that<00:30:59.200> same<00:30:59.559> GitHub<00:30:59.919> gist 00:31:00.190 --> 00:31:00.200 align:start position:0% description in that same GitHub gist 00:31:00.200 --> 00:31:02.190 align:start position:0% description in that same GitHub gist folder<00:31:00.720> where<00:31:00.880> the<00:31:01.039> code<00:31:01.320> is<00:31:01.679> you'll<00:31:01.880> be<00:31:02.000> able 00:31:02.190 --> 00:31:02.200 align:start position:0% folder where the code is you'll be able 00:31:02.200 --> 00:31:05.470 align:start position:0% folder where the code is you'll be able to<00:31:02.360> find<00:31:02.679> a<00:31:02.880> link<00:31:03.279> to<00:31:03.480> a<00:31:03.679> zipped<00:31:04.200> public<00:31:04.519> folder 00:31:05.470 --> 00:31:05.480 align:start position:0% to find a link to a zipped public folder 00:31:05.480 --> 00:31:08.750 align:start position:0% to find a link to a zipped public folder download<00:31:06.000> it<00:31:06.600> unzip<00:31:07.120> it<00:31:07.559> delete<00:31:08.120> the<00:31:08.320> existing 00:31:08.750 --> 00:31:08.760 align:start position:0% download it unzip it delete the existing 00:31:08.760 --> 00:31:11.389 align:start position:0% download it unzip it delete the existing public<00:31:09.039> folder<00:31:10.000> and<00:31:10.200> then<00:31:10.519> simply<00:31:10.919> paste<00:31:11.240> the 00:31:11.389 --> 00:31:11.399 align:start position:0% public folder and then simply paste the 00:31:11.399 --> 00:31:15.310 align:start position:0% public folder and then simply paste the new<00:31:11.600> one<00:31:12.320> right<00:31:13.240> here<00:31:14.240> not<00:31:14.559> within<00:31:14.799> the<00:31:14.919> source 00:31:15.310 --> 00:31:15.320 align:start position:0% new one right here not within the source 00:31:15.320 --> 00:31:17.870 align:start position:0% new one right here not within the source like<00:31:15.519> I<00:31:15.720> did<00:31:16.120> it<00:31:16.320> happens<00:31:16.960> you<00:31:17.120> have<00:31:17.279> to<00:31:17.440> put<00:31:17.600> it 00:31:17.870 --> 00:31:17.880 align:start position:0% like I did it happens you have to put it 00:31:17.880 --> 00:31:20.669 align:start position:0% like I did it happens you have to put it right<00:31:18.120> here<00:31:18.519> outside<00:31:19.240> of<00:31:19.480> everything<00:31:20.240> so<00:31:20.480> it 00:31:20.669 --> 00:31:20.679 align:start position:0% right here outside of everything so it 00:31:20.679 --> 00:31:23.950 align:start position:0% right here outside of everything so it appears<00:31:21.120> on<00:31:21.519> top<00:31:21.880> of<00:31:22.039> the<00:31:22.159> source<00:31:22.720> folder<00:31:23.720> and 00:31:23.950 --> 00:31:23.960 align:start position:0% appears on top of the source folder and 00:31:23.960 --> 00:31:25.509 align:start position:0% appears on top of the source folder and once<00:31:24.120> you<00:31:24.240> have<00:31:24.399> it<00:31:24.639> there<00:31:24.919> you'll<00:31:25.120> be<00:31:25.240> able<00:31:25.440> to 00:31:25.509 --> 00:31:25.519 align:start position:0% once you have it there you'll be able to 00:31:25.519 --> 00:31:28.830 align:start position:0% once you have it there you'll be able to see<00:31:25.760> the<00:31:25.960> assets<00:31:26.519> that<00:31:26.679> contain<00:31:27.279> icons<00:31:28.000> and 00:31:28.830 --> 00:31:28.840 align:start position:0% see the assets that contain icons and 00:31:28.840 --> 00:31:31.470 align:start position:0% see the assets that contain icons and images<00:31:29.840> which<00:31:30.000> means<00:31:30.559> that<00:31:30.720> we<00:31:30.840> can<00:31:31.080> Define 00:31:31.470 --> 00:31:31.480 align:start position:0% images which means that we can Define 00:31:31.480 --> 00:31:33.990 align:start position:0% images which means that we can Define our<00:31:31.880> path<00:31:32.440> right<00:31:32.679> here<00:31:33.360> it's<00:31:33.519> going<00:31:33.679> to<00:31:33.799> be 00:31:33.990 --> 00:31:34.000 align:start position:0% our path right here it's going to be 00:31:34.000 --> 00:31:39.509 align:start position:0% our path right here it's going to be for/<00:31:35.159> assets<00:31:36.159> slash<00:31:36.760> images 00:31:39.509 --> 00:31:39.519 align:start position:0% for/ assets slash images 00:31:39.519 --> 00:31:43.430 align:start position:0% for/ assets slash images slide-img<00:31:40.519> do<00:31:41.120> SVG<00:31:42.120> the<00:31:42.279> alt<00:31:42.760> is<00:31:42.880> going<00:31:43.039> to<00:31:43.240> be 00:31:43.430 --> 00:31:43.440 align:start position:0% slide-img do SVG the alt is going to be 00:31:43.440 --> 00:31:46.750 align:start position:0% slide-img do SVG the alt is going to be logo<00:31:44.360> and<00:31:44.679> class<00:31:45.080> name<00:31:45.519> is<00:31:45.720> going<00:31:45.880> to<00:31:46.080> be 00:31:46.750 --> 00:31:46.760 align:start position:0% logo and class name is going to be 00:31:46.760 --> 00:31:49.190 align:start position:0% logo and class name is going to be hidden<00:31:47.519> so<00:31:47.760> usually<00:31:48.080> on<00:31:48.240> mobile<00:31:48.600> devices<00:31:49.080> it 00:31:49.190 --> 00:31:49.200 align:start position:0% hidden so usually on mobile devices it 00:31:49.200 --> 00:31:51.549 align:start position:0% hidden so usually on mobile devices it will<00:31:49.320> be<00:31:49.519> hidden<00:31:50.399> but<00:31:50.559> on<00:31:50.760> extra<00:31:51.240> large 00:31:51.549 --> 00:31:51.559 align:start position:0% will be hidden but on extra large 00:31:51.559 --> 00:31:53.830 align:start position:0% will be hidden but on extra large devices<00:31:52.240> it<00:31:52.360> will<00:31:52.519> be<00:31:52.679> showing<00:31:53.240> so<00:31:53.399> it's<00:31:53.480> a 00:31:53.830 --> 00:31:53.840 align:start position:0% devices it will be showing so it's a 00:31:53.840 --> 00:31:56.509 align:start position:0% devices it will be showing so it's a block<00:31:54.840> we<00:31:54.960> wanted<00:31:55.279> to<00:31:55.440> take<00:31:55.639> the<00:31:55.799> full<00:31:56.240> height 00:31:56.509 --> 00:31:56.519 align:start position:0% block we wanted to take the full height 00:31:56.519 --> 00:31:59.710 align:start position:0% block we wanted to take the full height of<00:31:56.639> the<00:31:56.760> screen<00:31:57.360> so<00:31:57.519> h-<00:31:58.080> screen<00:31:59.080> the<00:31:59.240> width<00:31:59.559> is 00:31:59.710 --> 00:31:59.720 align:start position:0% of the screen so h- screen the width is 00:31:59.720 --> 00:32:03.070 align:start position:0% of the screen so h- screen the width is going<00:31:59.840> to<00:32:00.000> be<00:32:00.159> 1/2<00:32:00.880> so<00:32:01.120> 1/<00:32:01.639> two<00:32:02.600> it's<00:32:02.760> going<00:32:02.919> to 00:32:03.070 --> 00:32:03.080 align:start position:0% going to be 1/2 so 1/ two it's going to 00:32:03.080 --> 00:32:08.509 align:start position:0% going to be 1/2 so 1/ two it's going to be<00:32:03.360> object<00:32:03.799> cover<00:32:04.679> and<00:32:05.159> BG<00:32:05.840> no<00:32:06.799> repeat<00:32:07.799> great 00:32:08.509 --> 00:32:08.519 align:start position:0% be object cover and BG no repeat great 00:32:08.519 --> 00:32:10.590 align:start position:0% be object cover and BG no repeat great so<00:32:08.799> now<00:32:09.039> that<00:32:09.200> we<00:32:09.279> have<00:32:09.440> modified<00:32:10.000> our<00:32:10.200> o 00:32:10.590 --> 00:32:10.600 align:start position:0% so now that we have modified our o 00:32:10.600 --> 00:32:13.710 align:start position:0% so now that we have modified our o layout<00:32:11.320> we<00:32:11.440> can<00:32:11.639> close<00:32:11.960> it<00:32:12.760> and<00:32:13.000> if<00:32:13.159> we<00:32:13.320> go<00:32:13.559> back 00:32:13.710 --> 00:32:13.720 align:start position:0% layout we can close it and if we go back 00:32:13.720 --> 00:32:15.870 align:start position:0% layout we can close it and if we go back to<00:32:13.880> our<00:32:14.080> website<00:32:14.720> it's<00:32:14.919> going<00:32:15.080> to<00:32:15.320> look<00:32:15.639> like 00:32:15.870 --> 00:32:15.880 align:start position:0% to our website it's going to look like 00:32:15.880 --> 00:32:18.509 align:start position:0% to our website it's going to look like this<00:32:16.639> pretty<00:32:16.919> cool<00:32:17.279> right<00:32:17.760> we<00:32:17.919> have<00:32:18.039> the<00:32:18.240> right 00:32:18.509 --> 00:32:18.519 align:start position:0% this pretty cool right we have the right 00:32:18.519 --> 00:32:20.470 align:start position:0% this pretty cool right we have the right side<00:32:18.760> which<00:32:18.880> is<00:32:19.000> the<00:32:19.159> image<00:32:19.760> and<00:32:19.960> then<00:32:20.200> we<00:32:20.320> have 00:32:20.470 --> 00:32:20.480 align:start position:0% side which is the image and then we have 00:32:20.480 --> 00:32:22.789 align:start position:0% side which is the image and then we have the<00:32:20.639> button<00:32:20.960> on<00:32:21.200> the<00:32:21.360> left<00:32:21.600> side<00:32:22.279> which<00:32:22.600> right 00:32:22.789 --> 00:32:22.799 align:start position:0% the button on the left side which right 00:32:22.799 --> 00:32:25.629 align:start position:0% the button on the left side which right now<00:32:23.120> doesn't<00:32:23.440> do<00:32:23.799> absolutely<00:32:24.399> anything<00:32:25.279> but 00:32:25.629 --> 00:32:25.639 align:start position:0% now doesn't do absolutely anything but 00:32:25.639 --> 00:32:28.509 align:start position:0% now doesn't do absolutely anything but soon<00:32:26.000> enough<00:32:26.480> it<00:32:26.639> will<00:32:27.519> that's<00:32:27.799> because<00:32:28.240> we'll 00:32:28.509 --> 00:32:28.519 align:start position:0% soon enough it will that's because we'll 00:32:28.519 --> 00:32:31.070 align:start position:0% soon enough it will that's because we'll create<00:32:29.000> a<00:32:29.279> comprehensive<00:32:30.159> sign<00:32:30.440> up<00:32:30.799> and 00:32:31.070 --> 00:32:31.080 align:start position:0% create a comprehensive sign up and 00:32:31.080 --> 00:32:34.269 align:start position:0% create a comprehensive sign up and sign-in<00:32:31.559> form<00:32:32.360> and<00:32:32.480> we'll<00:32:32.679> do<00:32:32.960> that<00:32:33.399> using 00:32:34.269 --> 00:32:34.279 align:start position:0% sign-in form and we'll do that using 00:32:34.279 --> 00:32:37.110 align:start position:0% sign-in form and we'll do that using shaten<00:32:35.279> most<00:32:35.679> comprehensive<00:32:36.559> and<00:32:36.760> most 00:32:37.110 --> 00:32:37.120 align:start position:0% shaten most comprehensive and most 00:32:37.120 --> 00:32:40.830 align:start position:0% shaten most comprehensive and most complex<00:32:37.760> component<00:32:38.760> and<00:32:39.000> that<00:32:39.200> is<00:32:39.840> the<00:32:40.000> form 00:32:40.830 --> 00:32:40.840 align:start position:0% complex component and that is the form 00:32:40.840 --> 00:32:43.750 align:start position:0% complex component and that is the form so<00:32:41.120> go<00:32:41.360> here<00:32:41.720> and<00:32:41.919> search<00:32:42.240> for<00:32:42.440> the<00:32:42.559> form<00:32:43.519> it<00:32:43.600> is 00:32:43.750 --> 00:32:43.760 align:start position:0% so go here and search for the form it is 00:32:43.760 --> 00:32:46.629 align:start position:0% so go here and search for the form it is the<00:32:43.919> most<00:32:44.200> comprehensive<00:32:44.840> one<00:32:45.399> because<00:32:46.039> forms 00:32:46.629 --> 00:32:46.639 align:start position:0% the most comprehensive one because forms 00:32:46.639 --> 00:32:48.750 align:start position:0% the most comprehensive one because forms are<00:32:47.039> tricky<00:32:47.760> they're<00:32:48.000> one<00:32:48.120> of<00:32:48.240> the<00:32:48.440> most 00:32:48.750 --> 00:32:48.760 align:start position:0% are tricky they're one of the most 00:32:48.760 --> 00:32:50.070 align:start position:0% are tricky they're one of the most common<00:32:49.080> things<00:32:49.279> you'll<00:32:49.480> build<00:32:49.720> in<00:32:49.880> web 00:32:50.070 --> 00:32:50.080 align:start position:0% common things you'll build in web 00:32:50.080 --> 00:32:52.470 align:start position:0% common things you'll build in web applications<00:32:50.880> but<00:32:51.159> also<00:32:51.480> one<00:32:51.600> of<00:32:51.760> the<00:32:51.919> most 00:32:52.470 --> 00:32:52.480 align:start position:0% applications but also one of the most 00:32:52.480 --> 00:32:55.830 align:start position:0% applications but also one of the most complex<00:32:53.480> so<00:32:54.039> that's<00:32:54.360> why<00:32:54.960> shaten 00:32:55.830 --> 00:32:55.840 align:start position:0% complex so that's why shaten 00:32:55.840 --> 00:32:58.549 align:start position:0% complex so that's why shaten automatically<00:32:56.480> out<00:32:56.639> of<00:32:56.760> the<00:32:56.840> bot<00:32:57.440> uses<00:32:58.039> react 00:32:58.549 --> 00:32:58.559 align:start position:0% automatically out of the bot uses react 00:32:58.559 --> 00:33:00.789 align:start position:0% automatically out of the bot uses react hook<00:32:58.880> form<00:32:59.480> which<00:32:59.600> is<00:32:59.720> a<00:32:59.919> great<00:33:00.200> library<00:33:00.600> for 00:33:00.789 --> 00:33:00.799 align:start position:0% hook form which is a great library for 00:33:00.799 --> 00:33:03.750 align:start position:0% hook form which is a great library for managing<00:33:01.279> forms<00:33:01.720> and<00:33:01.960> states<00:33:02.840> and<00:33:03.000> then<00:33:03.200> Zod 00:33:03.750 --> 00:33:03.760 align:start position:0% managing forms and states and then Zod 00:33:03.760 --> 00:33:06.470 align:start position:0% managing forms and states and then Zod which<00:33:03.880> is<00:33:04.080> great<00:33:04.320> for<00:33:04.519> form<00:33:05.200> validation<00:33:06.200> here 00:33:06.470 --> 00:33:06.480 align:start position:0% which is great for form validation here 00:33:06.480 --> 00:33:08.029 align:start position:0% which is great for form validation here we<00:33:06.600> can<00:33:06.720> learn<00:33:07.000> a<00:33:07.120> bit<00:33:07.320> more<00:33:07.600> about<00:33:07.840> the 00:33:08.029 --> 00:33:08.039 align:start position:0% we can learn a bit more about the 00:33:08.039 --> 00:33:10.310 align:start position:0% we can learn a bit more about the anatomy<00:33:08.600> of<00:33:08.720> a<00:33:08.880> form<00:33:09.440> so<00:33:09.600> you<00:33:09.720> have<00:33:09.880> a<00:33:09.960> form 00:33:10.310 --> 00:33:10.320 align:start position:0% anatomy of a form so you have a form 00:33:10.320 --> 00:33:12.430 align:start position:0% anatomy of a form so you have a form component<00:33:10.880> and<00:33:11.000> then<00:33:11.120> you<00:33:11.279> have<00:33:11.480> form<00:33:11.840> Fields 00:33:12.430 --> 00:33:12.440 align:start position:0% component and then you have form Fields 00:33:12.440 --> 00:33:15.549 align:start position:0% component and then you have form Fields within<00:33:12.720> it<00:33:13.440> each<00:33:13.679> form<00:33:14.000> field<00:33:14.399> has<00:33:14.519> a<00:33:14.720> control 00:33:15.549 --> 00:33:15.559 align:start position:0% within it each form field has a control 00:33:15.559 --> 00:33:17.789 align:start position:0% within it each form field has a control a<00:33:15.760> name<00:33:16.399> and<00:33:16.519> then<00:33:16.639> you<00:33:16.760> can<00:33:16.960> choose<00:33:17.440> how<00:33:17.600> it's 00:33:17.789 --> 00:33:17.799 align:start position:0% a name and then you can choose how it's 00:33:17.799 --> 00:33:19.909 align:start position:0% a name and then you can choose how it's going<00:33:17.960> to<00:33:18.120> look<00:33:18.399> like<00:33:19.120> it's<00:33:19.279> going<00:33:19.399> to<00:33:19.559> render 00:33:19.909 --> 00:33:19.919 align:start position:0% going to look like it's going to render 00:33:19.919 --> 00:33:22.870 align:start position:0% going to look like it's going to render an<00:33:20.159> item<00:33:20.639> a<00:33:20.799> label<00:33:21.360> form<00:33:21.720> control<00:33:22.200> description 00:33:22.870 --> 00:33:22.880 align:start position:0% an item a label form control description 00:33:22.880 --> 00:33:25.310 align:start position:0% an item a label form control description and<00:33:23.120> a<00:33:23.320> message<00:33:24.200> and<00:33:24.440> here<00:33:24.720> we<00:33:24.880> have<00:33:25.120> a 00:33:25.310 --> 00:33:25.320 align:start position:0% and a message and here we have a 00:33:25.320 --> 00:33:28.029 align:start position:0% and a message and here we have a complete<00:33:25.880> form<00:33:26.360> example<00:33:27.279> so<00:33:27.440> let's<00:33:27.639> go<00:33:27.760> ahead 00:33:28.029 --> 00:33:28.039 align:start position:0% complete form example so let's go ahead 00:33:28.039 --> 00:33:31.750 align:start position:0% complete form example so let's go ahead and<00:33:28.200> follow<00:33:28.559> the<00:33:28.720> steps<00:33:29.200> to<00:33:29.639> create<00:33:30.080> our<00:33:30.760> form 00:33:31.750 --> 00:33:31.760 align:start position:0% and follow the steps to create our form 00:33:31.760 --> 00:33:34.230 align:start position:0% and follow the steps to create our form first<00:33:32.039> we<00:33:32.120> need<00:33:32.279> to<00:33:32.600> copy<00:33:33.600> the<00:33:33.760> command<00:33:34.080> to 00:33:34.230 --> 00:33:34.240 align:start position:0% first we need to copy the command to 00:33:34.240 --> 00:33:37.230 align:start position:0% first we need to copy the command to install<00:33:34.639> it<00:33:35.159> so<00:33:35.320> we<00:33:35.399> can<00:33:35.600> go<00:33:35.840> back<00:33:36.799> go<00:33:36.919> to<00:33:37.080> our 00:33:37.230 --> 00:33:37.240 align:start position:0% install it so we can go back go to our 00:33:37.240 --> 00:33:39.549 align:start position:0% install it so we can go back go to our second<00:33:37.519> terminal<00:33:38.320> and<00:33:38.559> paste<00:33:38.840> the<00:33:38.960> command<00:33:39.320> to 00:33:39.549 --> 00:33:39.559 align:start position:0% second terminal and paste the command to 00:33:39.559 --> 00:33:43.190 align:start position:0% second terminal and paste the command to add<00:33:39.799> the<00:33:40.320> form<00:33:41.320> soon<00:33:41.639> enough<00:33:41.919> it<00:33:42.000> will<00:33:42.159> be<00:33:42.360> done 00:33:43.190 --> 00:33:43.200 align:start position:0% add the form soon enough it will be done 00:33:43.200 --> 00:33:46.269 align:start position:0% add the form soon enough it will be done and<00:33:43.399> then<00:33:43.760> we<00:33:43.880> can<00:33:44.120> actually<00:33:44.480> use<00:33:44.720> it<00:33:45.519> so<00:33:45.919> first 00:33:46.269 --> 00:33:46.279 align:start position:0% and then we can actually use it so first 00:33:46.279 --> 00:33:48.990 align:start position:0% and then we can actually use it so first we<00:33:46.440> have<00:33:46.559> to<00:33:46.760> define<00:33:47.279> the<00:33:47.519> shape<00:33:48.039> of<00:33:48.200> our<00:33:48.399> form 00:33:48.990 --> 00:33:49.000 align:start position:0% we have to define the shape of our form 00:33:49.000 --> 00:33:52.110 align:start position:0% we have to define the shape of our form by<00:33:49.200> using<00:33:49.600> a<00:33:49.840> Zod<00:33:50.559> schema<00:33:51.559> of<00:33:51.720> course<00:33:51.880> you<00:33:52.000> can 00:33:52.110 --> 00:33:52.120 align:start position:0% by using a Zod schema of course you can 00:33:52.120 --> 00:33:54.350 align:start position:0% by using a Zod schema of course you can learn<00:33:52.399> more<00:33:52.639> about<00:33:52.919> Zod<00:33:53.320> in<00:33:53.480> the<00:33:53.639> official<00:33:54.000> Zod 00:33:54.350 --> 00:33:54.360 align:start position:0% learn more about Zod in the official Zod 00:33:54.360 --> 00:33:56.310 align:start position:0% learn more about Zod in the official Zod documentation<00:33:55.279> but<00:33:55.440> don't<00:33:55.639> worry<00:33:56.000> it's<00:33:56.120> a 00:33:56.310 --> 00:33:56.320 align:start position:0% documentation but don't worry it's a 00:33:56.320 --> 00:33:58.110 align:start position:0% documentation but don't worry it's a pretty<00:33:56.519> simple<00:33:56.799> IDE<00:33:56.960> library<00:33:57.279> to<00:33:57.399> use<00:33:57.880> and<00:33:58.000> I'm 00:33:58.110 --> 00:33:58.120 align:start position:0% pretty simple IDE library to use and I'm 00:33:58.120 --> 00:34:00.430 align:start position:0% pretty simple IDE library to use and I'm going<00:33:58.200> to<00:33:58.360> teach<00:33:58.519> you<00:33:58.720> how<00:33:58.840> to<00:33:59.039> use<00:33:59.200> it<00:34:00.080> so 00:34:00.430 --> 00:34:00.440 align:start position:0% going to teach you how to use it so 00:34:00.440 --> 00:34:03.350 align:start position:0% going to teach you how to use it so let's<00:34:00.799> copy<00:34:01.399> import<00:34:01.880> everything<00:34:02.320> as<00:34:02.639> Z<00:34:03.120> from 00:34:03.350 --> 00:34:03.360 align:start position:0% let's copy import everything as Z from 00:34:03.360 --> 00:34:06.830 align:start position:0% let's copy import everything as Z from Zod<00:34:04.039> and<00:34:04.200> then<00:34:04.600> const<00:34:05.039> form<00:34:05.559> schema<00:34:06.559> we<00:34:06.639> can 00:34:06.830 --> 00:34:06.840 align:start position:0% Zod and then const form schema we can 00:34:06.840 --> 00:34:09.909 align:start position:0% Zod and then const form schema we can paste<00:34:07.159> that<00:34:07.440> right<00:34:07.639> here<00:34:07.880> at<00:34:08.040> the<00:34:08.639> top<00:34:09.639> we<00:34:09.760> can 00:34:09.909 --> 00:34:09.919 align:start position:0% paste that right here at the top we can 00:34:09.919 --> 00:34:12.550 align:start position:0% paste that right here at the top we can put<00:34:10.119> this<00:34:10.320> import<00:34:10.720> on<00:34:11.000> top<00:34:11.520> as<00:34:11.679> it<00:34:11.839> is<00:34:12.119> external 00:34:12.550 --> 00:34:12.560 align:start position:0% put this import on top as it is external 00:34:12.560 --> 00:34:14.790 align:start position:0% put this import on top as it is external import<00:34:13.480> and<00:34:13.599> we're<00:34:13.720> going<00:34:13.800> to<00:34:13.960> put<00:34:14.200> this<00:34:14.560> right 00:34:14.790 --> 00:34:14.800 align:start position:0% import and we're going to put this right 00:34:14.800 --> 00:34:16.270 align:start position:0% import and we're going to put this right here<00:34:15.119> because<00:34:15.359> it<00:34:15.440> is<00:34:15.599> coming<00:34:15.960> right<00:34:16.119> here 00:34:16.270 --> 00:34:16.280 align:start position:0% here because it is coming right here 00:34:16.280 --> 00:34:19.349 align:start position:0% here because it is coming right here from<00:34:16.440> our<00:34:16.919> code<00:34:17.919> and<00:34:18.159> this<00:34:18.320> form<00:34:18.639> schema<00:34:19.200> is 00:34:19.349 --> 00:34:19.359 align:start position:0% from our code and this form schema is 00:34:19.359 --> 00:34:21.790 align:start position:0% from our code and this form schema is going<00:34:19.520> to<00:34:19.720> go<00:34:20.119> right<00:34:20.359> here<00:34:20.679> within<00:34:21.000> our 00:34:21.790 --> 00:34:21.800 align:start position:0% going to go right here within our 00:34:21.800 --> 00:34:23.790 align:start position:0% going to go right here within our component<00:34:22.800> the<00:34:22.960> next<00:34:23.159> thing<00:34:23.320> they<00:34:23.440> say<00:34:23.679> we 00:34:23.790 --> 00:34:23.800 align:start position:0% component the next thing they say we 00:34:23.800 --> 00:34:26.950 align:start position:0% component the next thing they say we have<00:34:23.919> to<00:34:24.119> do<00:34:24.560> is<00:34:24.919> Define<00:34:25.520> a<00:34:25.720> form<00:34:26.280> by<00:34:26.399> using<00:34:26.679> the 00:34:26.950 --> 00:34:26.960 align:start position:0% have to do is Define a form by using the 00:34:26.960 --> 00:34:29.190 align:start position:0% have to do is Define a form by using the use<00:34:27.200> form<00:34:27.560> hook<00:34:27.919> coming<00:34:28.240> from<00:34:28.480> the<00:34:28.599> react<00:34:29.000> hook 00:34:29.190 --> 00:34:29.200 align:start position:0% use form hook coming from the react hook 00:34:29.200 --> 00:34:31.750 align:start position:0% use form hook coming from the react hook form<00:34:29.480> Library<00:34:30.399> so<00:34:30.720> let's<00:34:30.960> go<00:34:31.079> ahead<00:34:31.440> and 00:34:31.750 --> 00:34:31.760 align:start position:0% form Library so let's go ahead and 00:34:31.760 --> 00:34:34.909 align:start position:0% form Library so let's go ahead and import<00:34:32.399> import<00:34:32.800> Zod<00:34:33.240> resolver<00:34:34.240> as<00:34:34.359> well<00:34:34.520> as<00:34:34.679> Z 00:34:34.909 --> 00:34:34.919 align:start position:0% import import Zod resolver as well as Z 00:34:34.919 --> 00:34:37.389 align:start position:0% import import Zod resolver as well as Z from<00:34:35.119> Zod<00:34:35.760> as<00:34:35.879> well<00:34:36.000> as<00:34:36.119> the<00:34:36.200> form 00:34:37.389 --> 00:34:37.399 align:start position:0% from Zod as well as the form 00:34:37.399 --> 00:34:40.109 align:start position:0% from Zod as well as the form schema<00:34:38.399> which<00:34:38.560> in<00:34:38.720> this<00:34:38.879> case<00:34:39.159> can<00:34:39.399> be<00:34:39.639> placed 00:34:40.109 --> 00:34:40.119 align:start position:0% schema which in this case can be placed 00:34:40.119 --> 00:34:42.389 align:start position:0% schema which in this case can be placed above<00:34:40.520> the<00:34:40.720> component<00:34:41.599> but<00:34:41.760> then<00:34:41.879> we'll<00:34:42.159> also 00:34:42.389 --> 00:34:42.399 align:start position:0% above the component but then we'll also 00:34:42.399 --> 00:34:44.430 align:start position:0% above the component but then we'll also need<00:34:42.599> to<00:34:42.760> import<00:34:43.200> the<00:34:43.320> form<00:34:43.879> and<00:34:44.119> everything 00:34:44.430 --> 00:34:44.440 align:start position:0% need to import the form and everything 00:34:44.440 --> 00:34:46.629 align:start position:0% need to import the form and everything else<00:34:44.720> that<00:34:44.839> is<00:34:45.000> in<00:34:45.280> here<00:34:45.919> so<00:34:46.200> instead<00:34:46.480> of 00:34:46.629 --> 00:34:46.639 align:start position:0% else that is in here so instead of 00:34:46.639 --> 00:34:48.470 align:start position:0% else that is in here so instead of copying<00:34:47.079> everything<00:34:47.639> let's<00:34:47.919> copy<00:34:48.200> just<00:34:48.359> the 00:34:48.470 --> 00:34:48.480 align:start position:0% copying everything let's copy just the 00:34:48.480 --> 00:34:50.270 align:start position:0% copying everything let's copy just the things<00:34:48.639> that<00:34:48.800> we<00:34:48.919> need<00:34:49.599> first<00:34:49.879> I'm<00:34:50.000> going<00:34:50.079> to 00:34:50.270 --> 00:34:50.280 align:start position:0% things that we need first I'm going to 00:34:50.280 --> 00:34:52.470 align:start position:0% things that we need first I'm going to copy<00:34:50.520> the<00:34:50.679> Zod<00:34:51.040> resolver<00:34:51.679> paste<00:34:52.000> it<00:34:52.320> right 00:34:52.470 --> 00:34:52.480 align:start position:0% copy the Zod resolver paste it right 00:34:52.480 --> 00:34:54.389 align:start position:0% copy the Zod resolver paste it right here<00:34:52.679> at<00:34:52.839> the<00:34:53.040> top<00:34:53.599> and<00:34:53.720> then<00:34:53.919> I'm<00:34:54.040> going<00:34:54.159> to 00:34:54.389 --> 00:34:54.399 align:start position:0% here at the top and then I'm going to 00:34:54.399 --> 00:34:57.589 align:start position:0% here at the top and then I'm going to copy<00:34:54.800> the<00:34:55.040> entire<00:34:55.560> form<00:34:56.280> right<00:34:56.520> here<00:34:57.359> or 00:34:57.589 --> 00:34:57.599 align:start position:0% copy the entire form right here or 00:34:57.599 --> 00:34:59.950 align:start position:0% copy the entire form right here or rather<00:34:57.880> just<00:34:58.040> the<00:34:58.240> definition<00:34:58.880> of<00:34:59.040> a<00:34:59.200> form<00:34:59.800> and 00:34:59.950 --> 00:34:59.960 align:start position:0% rather just the definition of a form and 00:34:59.960 --> 00:35:02.910 align:start position:0% rather just the definition of a form and we<00:35:00.079> can<00:35:00.280> paste<00:35:00.480> it<00:35:00.720> right<00:35:00.920> here<00:35:01.119> on<00:35:01.800> top<00:35:02.800> and 00:35:02.910 --> 00:35:02.920 align:start position:0% we can paste it right here on top and 00:35:02.920 --> 00:35:05.270 align:start position:0% we can paste it right here on top and the<00:35:03.040> form<00:35:03.280> schema<00:35:03.680> can<00:35:03.839> go<00:35:04.119> outside<00:35:04.960> right 00:35:05.270 --> 00:35:05.280 align:start position:0% the form schema can go outside right 00:35:05.280 --> 00:35:08.150 align:start position:0% the form schema can go outside right here<00:35:06.280> so<00:35:06.480> now<00:35:06.599> we're<00:35:06.839> defining<00:35:07.280> our<00:35:07.480> form 00:35:08.150 --> 00:35:08.160 align:start position:0% here so now we're defining our form 00:35:08.160 --> 00:35:10.230 align:start position:0% here so now we're defining our form we're<00:35:08.400> also<00:35:08.720> using<00:35:09.079> the<00:35:09.240> form<00:35:09.760> and<00:35:09.960> this<00:35:10.119> has 00:35:10.230 --> 00:35:10.240 align:start position:0% we're also using the form and this has 00:35:10.240 --> 00:35:13.349 align:start position:0% we're also using the form and this has to<00:35:10.359> be<00:35:10.520> imported<00:35:11.400> from<00:35:11.960> react<00:35:12.440> hook<00:35:12.680> form<00:35:13.240> the 00:35:13.349 --> 00:35:13.359 align:start position:0% to be imported from react hook form the 00:35:13.359 --> 00:35:16.190 align:start position:0% to be imported from react hook form the use<00:35:13.680> form<00:35:14.560> right<00:35:14.760> here<00:35:15.440> but<00:35:15.640> now<00:35:15.800> that<00:35:15.920> we<00:35:16.040> have 00:35:16.190 --> 00:35:16.200 align:start position:0% use form right here but now that we have 00:35:16.200 --> 00:35:18.510 align:start position:0% use form right here but now that we have defined<00:35:16.599> it<00:35:16.839> we<00:35:16.960> can<00:35:17.200> actually<00:35:17.640> build<00:35:17.960> out<00:35:18.280> our 00:35:18.510 --> 00:35:18.520 align:start position:0% defined it we can actually build out our 00:35:18.520 --> 00:35:20.910 align:start position:0% defined it we can actually build out our form<00:35:19.160> so<00:35:19.359> we<00:35:19.440> need<00:35:19.599> to<00:35:19.800> import<00:35:20.400> all<00:35:20.560> of<00:35:20.720> the 00:35:20.910 --> 00:35:20.920 align:start position:0% form so we need to import all of the 00:35:20.920 --> 00:35:22.510 align:start position:0% form so we need to import all of the different<00:35:21.240> components<00:35:21.839> that<00:35:22.000> go<00:35:22.200> into 00:35:22.510 --> 00:35:22.520 align:start position:0% different components that go into 00:35:22.520 --> 00:35:24.950 align:start position:0% different components that go into building<00:35:22.839> a<00:35:23.000> form<00:35:24.000> which<00:35:24.119> we<00:35:24.240> can<00:35:24.440> paste<00:35:24.760> right 00:35:24.950 --> 00:35:24.960 align:start position:0% building a form which we can paste right 00:35:24.960 --> 00:35:27.910 align:start position:0% building a form which we can paste right here<00:35:25.200> on<00:35:25.800> top<00:35:26.880> and<00:35:27.040> you<00:35:27.119> can<00:35:27.280> notice<00:35:27.640> that<00:35:27.800> one 00:35:27.910 --> 00:35:27.920 align:start position:0% here on top and you can notice that one 00:35:27.920 --> 00:35:30.510 align:start position:0% here on top and you can notice that one of<00:35:28.119> these<00:35:28.599> is<00:35:28.839> an<00:35:29.040> input<00:35:29.720> which<00:35:29.880> is<00:35:30.119> another 00:35:30.510 --> 00:35:30.520 align:start position:0% of these is an input which is another 00:35:30.520 --> 00:35:32.750 align:start position:0% of these is an input which is another component<00:35:31.000> we<00:35:31.119> have<00:35:31.280> to<00:35:31.480> install<00:35:32.440> because<00:35:32.680> if 00:35:32.750 --> 00:35:32.760 align:start position:0% component we have to install because if 00:35:32.760 --> 00:35:35.109 align:start position:0% component we have to install because if you<00:35:32.880> check<00:35:33.160> the<00:35:33.320> component<00:35:33.760> so<00:35:34.000> far<00:35:34.839> you<00:35:34.960> can 00:35:35.109 --> 00:35:35.119 align:start position:0% you check the component so far you can 00:35:35.119 --> 00:35:37.910 align:start position:0% you check the component so far you can notice<00:35:35.520> the<00:35:35.680> form<00:35:36.079> label<00:35:36.400> and<00:35:36.640> button<00:35:37.359> but<00:35:37.599> no 00:35:37.910 --> 00:35:37.920 align:start position:0% notice the form label and button but no 00:35:37.920 --> 00:35:40.390 align:start position:0% notice the form label and button but no input<00:35:38.800> so<00:35:39.040> to<00:35:39.240> install<00:35:39.560> the<00:35:39.720> input<00:35:40.119> you<00:35:40.240> know 00:35:40.390 --> 00:35:40.400 align:start position:0% input so to install the input you know 00:35:40.400 --> 00:35:43.190 align:start position:0% input so to install the input you know what<00:35:40.520> we<00:35:40.640> need<00:35:40.760> to<00:35:40.920> do<00:35:41.440> just<00:35:41.560> say<00:35:41.839> MPX<00:35:42.400> CH<00:35:42.680> C<00:35:42.839> Nui 00:35:43.190 --> 00:35:43.200 align:start position:0% what we need to do just say MPX CH C Nui 00:35:43.200 --> 00:35:45.069 align:start position:0% what we need to do just say MPX CH C Nui latest<00:35:44.000> add 00:35:45.069 --> 00:35:45.079 align:start position:0% latest add 00:35:45.079 --> 00:35:48.390 align:start position:0% latest add input<00:35:46.079> it<00:35:46.200> is<00:35:46.480> as<00:35:46.680> simple<00:35:47.040> as<00:35:47.280> that<00:35:48.119> we<00:35:48.240> can 00:35:48.390 --> 00:35:48.400 align:start position:0% input it is as simple as that we can 00:35:48.400 --> 00:35:50.990 align:start position:0% input it is as simple as that we can also<00:35:48.680> put<00:35:48.960> all<00:35:49.119> of<00:35:49.359> these<00:35:49.800> components<00:35:50.440> in<00:35:50.640> one 00:35:50.990 --> 00:35:51.000 align:start position:0% also put all of these components in one 00:35:51.000 --> 00:35:53.790 align:start position:0% also put all of these components in one line<00:35:51.480> so<00:35:51.720> it's<00:35:52.000> easier<00:35:52.599> to<00:35:52.760> see<00:35:53.160> everything 00:35:53.790 --> 00:35:53.800 align:start position:0% line so it's easier to see everything 00:35:53.800 --> 00:35:56.510 align:start position:0% line so it's easier to see everything just<00:35:54.040> like<00:35:54.240> so<00:35:55.240> and<00:35:55.480> then<00:35:55.880> we<00:35:56.000> can<00:35:56.240> actually 00:35:56.510 --> 00:35:56.520 align:start position:0% just like so and then we can actually 00:35:56.520 --> 00:35:58.870 align:start position:0% just like so and then we can actually build<00:35:56.800> build<00:35:57.040> out<00:35:57.280> our<00:35:57.520> form<00:35:58.119> by<00:35:58.319> copying<00:35:58.720> the 00:35:58.870 --> 00:35:58.880 align:start position:0% build build out our form by copying the 00:35:58.880 --> 00:36:01.950 align:start position:0% build build out our form by copying the form<00:35:59.520> right<00:35:59.920> here<00:36:00.800> and<00:36:01.119> let's<00:36:01.400> paste<00:36:01.680> it 00:36:01.950 --> 00:36:01.960 align:start position:0% form right here and let's paste it 00:36:01.960 --> 00:36:03.550 align:start position:0% form right here and let's paste it instead<00:36:02.520> of<00:36:02.720> this 00:36:03.550 --> 00:36:03.560 align:start position:0% instead of this 00:36:03.560 --> 00:36:07.270 align:start position:0% instead of this button<00:36:04.560> we<00:36:04.760> can<00:36:05.040> indent<00:36:05.400> it<00:36:05.920> properly<00:36:06.920> and 00:36:07.270 --> 00:36:07.280 align:start position:0% button we can indent it properly and 00:36:07.280 --> 00:36:09.630 align:start position:0% button we can indent it properly and save<00:36:07.560> it<00:36:08.119> and<00:36:08.359> that's<00:36:08.599> it<00:36:08.920> you<00:36:09.040> now<00:36:09.319> have<00:36:09.520> a 00:36:09.630 --> 00:36:09.640 align:start position:0% save it and that's it you now have a 00:36:09.640 --> 00:36:12.069 align:start position:0% save it and that's it you now have a fully<00:36:10.040> accessible<00:36:10.480> form<00:36:10.839> that<00:36:10.960> is<00:36:11.119> type<00:36:11.520> safe 00:36:12.069 --> 00:36:12.079 align:start position:0% fully accessible form that is type safe 00:36:12.079 --> 00:36:14.430 align:start position:0% fully accessible form that is type safe with<00:36:12.319> client<00:36:12.800> side<00:36:13.079> validation<00:36:14.079> and<00:36:14.240> let's 00:36:14.430 --> 00:36:14.440 align:start position:0% with client side validation and let's 00:36:14.440 --> 00:36:16.790 align:start position:0% with client side validation and let's see<00:36:14.560> if<00:36:14.680> it<00:36:14.880> actually<00:36:15.160> looks<00:36:15.480> like<00:36:15.680> this<00:36:16.599> and 00:36:16.790 --> 00:36:16.800 align:start position:0% see if it actually looks like this and 00:36:16.800 --> 00:36:19.030 align:start position:0% see if it actually looks like this and would<00:36:16.960> you<00:36:17.079> look<00:36:17.240> at<00:36:17.440> that<00:36:17.880> it<00:36:18.000> looks<00:36:18.319> amazing 00:36:19.030 --> 00:36:19.040 align:start position:0% would you look at that it looks amazing 00:36:19.040 --> 00:36:21.670 align:start position:0% would you look at that it looks amazing but<00:36:19.240> it's<00:36:19.400> only<00:36:19.720> one<00:36:19.960> input<00:36:20.359> and<00:36:20.520> one<00:36:20.839> button 00:36:21.670 --> 00:36:21.680 align:start position:0% but it's only one input and one button 00:36:21.680 --> 00:36:23.510 align:start position:0% but it's only one input and one button but<00:36:21.920> the<00:36:22.079> validation<00:36:22.839> is<00:36:23.040> working 00:36:23.510 --> 00:36:23.520 align:start position:0% but the validation is working 00:36:23.520 --> 00:36:25.670 align:start position:0% but the validation is working wonderfully<00:36:24.319> and<00:36:24.599> chatan<00:36:25.280> has<00:36:25.480> this 00:36:25.670 --> 00:36:25.680 align:start position:0% wonderfully and chatan has this 00:36:25.680 --> 00:36:29.550 align:start position:0% wonderfully and chatan has this beautiful<00:36:26.319> button<00:36:26.720> minimalistic<00:36:27.920> UI<00:36:28.920> so<00:36:29.200> now 00:36:29.550 --> 00:36:29.560 align:start position:0% beautiful button minimalistic UI so now 00:36:29.560 --> 00:36:32.750 align:start position:0% beautiful button minimalistic UI so now let's<00:36:29.800> convert<00:36:30.400> this<00:36:31.240> into<00:36:31.680> this<00:36:32.280> and<00:36:32.480> make<00:36:32.599> it 00:36:32.750 --> 00:36:32.760 align:start position:0% let's convert this into this and make it 00:36:32.760 --> 00:36:35.069 align:start position:0% let's convert this into this and make it fully<00:36:33.200> functional<00:36:33.800> to<00:36:33.960> do<00:36:34.160> that<00:36:34.440> we<00:36:34.720> won't 00:36:35.069 --> 00:36:35.079 align:start position:0% fully functional to do that we won't 00:36:35.079 --> 00:36:37.510 align:start position:0% fully functional to do that we won't simply<00:36:35.440> keep<00:36:35.760> everything<00:36:36.160> in<00:36:36.280> a<00:36:36.440> single<00:36:36.839> file 00:36:37.510 --> 00:36:37.520 align:start position:0% simply keep everything in a single file 00:36:37.520 --> 00:36:39.790 align:start position:0% simply keep everything in a single file as<00:36:37.800> that<00:36:37.960> would<00:36:38.240> quickly<00:36:38.560> clutter<00:36:39.000> our<00:36:39.200> view 00:36:39.790 --> 00:36:39.800 align:start position:0% as that would quickly clutter our view 00:36:39.800 --> 00:36:42.109 align:start position:0% as that would quickly clutter our view and<00:36:40.079> wouldn't<00:36:40.359> be<00:36:40.520> so<00:36:40.839> reusable<00:36:41.839> so<00:36:42.000> we're 00:36:42.109 --> 00:36:42.119 align:start position:0% and wouldn't be so reusable so we're 00:36:42.119 --> 00:36:44.510 align:start position:0% and wouldn't be so reusable so we're going<00:36:42.240> to<00:36:42.359> use<00:36:42.720> many<00:36:43.000> reusable<00:36:43.640> practices<00:36:44.319> to 00:36:44.510 --> 00:36:44.520 align:start position:0% going to use many reusable practices to 00:36:44.520 --> 00:36:46.309 align:start position:0% going to use many reusable practices to turn<00:36:44.760> this<00:36:44.960> into<00:36:45.160> a<00:36:45.319> component<00:36:45.960> that<00:36:46.079> we<00:36:46.200> can 00:36:46.309 --> 00:36:46.319 align:start position:0% turn this into a component that we can 00:36:46.319 --> 00:36:49.390 align:start position:0% turn this into a component that we can then<00:36:46.520> reuse<00:36:47.400> and<00:36:47.760> manage<00:36:48.200> its<00:36:48.440> data<00:36:48.920> more 00:36:49.390 --> 00:36:49.400 align:start position:0% then reuse and manage its data more 00:36:49.400 --> 00:36:51.710 align:start position:0% then reuse and manage its data more efficiently<00:36:50.400> and<00:36:50.560> the<00:36:50.760> first<00:36:51.040> step<00:36:51.240> we'll<00:36:51.440> do 00:36:51.710 --> 00:36:51.720 align:start position:0% efficiently and the first step we'll do 00:36:51.720 --> 00:36:53.470 align:start position:0% efficiently and the first step we'll do to<00:36:51.920> achieve<00:36:52.319> that<00:36:52.720> is<00:36:52.920> we're<00:36:53.079> going<00:36:53.200> to 00:36:53.470 --> 00:36:53.480 align:start position:0% to achieve that is we're going to 00:36:53.480 --> 00:36:56.470 align:start position:0% to achieve that is we're going to extract<00:36:54.119> this<00:36:54.280> form<00:36:54.680> schema<00:36:55.359> into<00:36:55.839> a<00:36:56.079> separate 00:36:56.470 --> 00:36:56.480 align:start position:0% extract this form schema into a separate 00:36:56.480 --> 00:36:59.390 align:start position:0% extract this form schema into a separate vol<00:36:56.680> validations<00:36:57.359> file<00:36:58.240> so<00:36:58.599> let's<00:36:58.880> go<00:36:59.040> ahead 00:36:59.390 --> 00:36:59.400 align:start position:0% vol validations file so let's go ahead 00:36:59.400 --> 00:37:02.069 align:start position:0% vol validations file so let's go ahead and<00:36:59.640> go<00:36:59.760> to<00:37:00.000> file<00:37:00.359> explorer<00:37:01.359> collapse 00:37:02.069 --> 00:37:02.079 align:start position:0% and go to file explorer collapse 00:37:02.079 --> 00:37:05.109 align:start position:0% and go to file explorer collapse everything<00:37:03.079> and<00:37:03.359> go<00:37:03.599> within<00:37:03.960> Source<00:37:04.760> within 00:37:05.109 --> 00:37:05.119 align:start position:0% everything and go within Source within 00:37:05.119 --> 00:37:07.589 align:start position:0% everything and go within Source within lib<00:37:05.880> and<00:37:06.040> then<00:37:06.319> right<00:37:06.560> here<00:37:06.920> create<00:37:07.200> a<00:37:07.400> new 00:37:07.589 --> 00:37:07.599 align:start position:0% lib and then right here create a new 00:37:07.599 --> 00:37:09.550 align:start position:0% lib and then right here create a new folder<00:37:08.240> called 00:37:09.550 --> 00:37:09.560 align:start position:0% folder called 00:37:09.560 --> 00:37:13.349 align:start position:0% folder called validation<00:37:10.560> within<00:37:10.880> it<00:37:11.119> we<00:37:11.240> can<00:37:11.440> create<00:37:11.760> a<00:37:11.960> new 00:37:13.349 --> 00:37:13.359 align:start position:0% validation within it we can create a new 00:37:13.359 --> 00:37:17.670 align:start position:0% validation within it we can create a new index.ts<00:37:14.760> file<00:37:15.760> and<00:37:15.960> within<00:37:16.319> index<00:37:17.040> we<00:37:17.160> can<00:37:17.400> do 00:37:17.670 --> 00:37:17.680 align:start position:0% index.ts file and within index we can do 00:37:17.680 --> 00:37:19.349 align:start position:0% index.ts file and within index we can do something<00:37:18.040> similar<00:37:18.480> to<00:37:18.680> what<00:37:18.839> we<00:37:18.960> have<00:37:19.119> done 00:37:19.349 --> 00:37:19.359 align:start position:0% something similar to what we have done 00:37:19.359 --> 00:37:21.790 align:start position:0% something similar to what we have done in<00:37:19.480> the<00:37:19.680> signup<00:37:20.079> form<00:37:20.839> we<00:37:20.920> can<00:37:21.200> import 00:37:21.790 --> 00:37:21.800 align:start position:0% in the signup form we can import 00:37:21.800 --> 00:37:24.030 align:start position:0% in the signup form we can import everything<00:37:22.440> as<00:37:22.800> Z<00:37:23.200> from 00:37:24.030 --> 00:37:24.040 align:start position:0% everything as Z from 00:37:24.040 --> 00:37:28.150 align:start position:0% everything as Z from Zod<00:37:25.040> and<00:37:25.240> then<00:37:25.720> we<00:37:25.839> can<00:37:26.040> create<00:37:26.839> Define<00:37:27.520> a<00:37:27.680> form 00:37:28.150 --> 00:37:28.160 align:start position:0% Zod and then we can create Define a form 00:37:28.160 --> 00:37:31.990 align:start position:0% Zod and then we can create Define a form schema<00:37:28.960> so<00:37:29.240> right<00:37:29.520> here<00:37:30.359> let's<00:37:30.640> define<00:37:31.000> it<00:37:31.800> but 00:37:31.990 --> 00:37:32.000 align:start position:0% schema so right here let's define it but 00:37:32.000 --> 00:37:33.750 align:start position:0% schema so right here let's define it but in<00:37:32.240> this<00:37:32.480> file<00:37:32.760> we're<00:37:32.920> going<00:37:33.000> to<00:37:33.160> keep<00:37:33.480> many 00:37:33.750 --> 00:37:33.760 align:start position:0% in this file we're going to keep many 00:37:33.760 --> 00:37:35.550 align:start position:0% in this file we're going to keep many different<00:37:34.040> form<00:37:34.359> schemas<00:37:34.960> so<00:37:35.119> we<00:37:35.240> have<00:37:35.359> to 00:37:35.550 --> 00:37:35.560 align:start position:0% different form schemas so we have to 00:37:35.560 --> 00:37:37.910 align:start position:0% different form schemas so we have to Define<00:37:36.000> which<00:37:36.160> one<00:37:36.440> is<00:37:36.560> it<00:37:37.319> this<00:37:37.440> is<00:37:37.599> going<00:37:37.760> to 00:37:37.910 --> 00:37:37.920 align:start position:0% Define which one is it this is going to 00:37:37.920 --> 00:37:42.710 align:start position:0% Define which one is it this is going to be<00:37:38.240> a<00:37:38.640> signup<00:37:39.920> validation<00:37:41.119> schema<00:37:42.119> and<00:37:42.440> we're 00:37:42.710 --> 00:37:42.720 align:start position:0% be a signup validation schema and we're 00:37:42.720 --> 00:37:44.270 align:start position:0% be a signup validation schema and we're not<00:37:42.839> going<00:37:42.960> to<00:37:43.119> Define<00:37:43.359> it<00:37:43.480> in<00:37:43.680> this<00:37:43.880> file<00:37:44.119> and 00:37:44.270 --> 00:37:44.280 align:start position:0% not going to Define it in this file and 00:37:44.280 --> 00:37:47.710 align:start position:0% not going to Define it in this file and then<00:37:44.480> not<00:37:44.760> use<00:37:44.960> it<00:37:45.400> we<00:37:45.520> have<00:37:45.640> to<00:37:45.839> say<00:37:46.760> export 00:37:47.710 --> 00:37:47.720 align:start position:0% then not use it we have to say export 00:37:47.720 --> 00:37:50.270 align:start position:0% then not use it we have to say export const<00:37:48.359> sign<00:37:48.599> up<00:37:48.800> validation<00:37:49.599> to<00:37:49.760> be<00:37:49.920> able<00:37:50.119> to 00:37:50.270 --> 00:37:50.280 align:start position:0% const sign up validation to be able to 00:37:50.280 --> 00:37:52.910 align:start position:0% const sign up validation to be able to use<00:37:50.480> it<00:37:51.240> so<00:37:51.520> now<00:37:52.000> we<00:37:52.079> can<00:37:52.280> go<00:37:52.520> back<00:37:52.640> to<00:37:52.800> our 00:37:52.910 --> 00:37:52.920 align:start position:0% use it so now we can go back to our 00:37:52.920 --> 00:37:55.430 align:start position:0% use it so now we can go back to our signup<00:37:53.319> form<00:37:54.040> and<00:37:54.160> we<00:37:54.280> can<00:37:54.520> import<00:37:55.079> form 00:37:55.430 --> 00:37:55.440 align:start position:0% signup form and we can import form 00:37:55.440 --> 00:37:58.430 align:start position:0% signup form and we can import form schema<00:37:56.280> or<00:37:56.760> rather<00:37:57.280> we<00:37:57.400> can<00:37:57.599> rename<00:37:58.000> it<00:37:58.200> to 00:37:58.430 --> 00:37:58.440 align:start position:0% schema or rather we can rename it to 00:37:58.440 --> 00:38:02.190 align:start position:0% schema or rather we can rename it to signup<00:37:59.119> validation<00:38:00.119> coming<00:38:00.520> from 00:38:02.190 --> 00:38:02.200 align:start position:0% signup validation coming from 00:38:02.200 --> 00:38:05.670 align:start position:0% signup validation coming from atli<00:38:03.200> SLV<00:38:03.599> validation<00:38:04.599> and<00:38:04.720> we<00:38:04.800> can<00:38:04.960> use<00:38:05.160> it<00:38:05.480> in 00:38:05.670 --> 00:38:05.680 align:start position:0% atli SLV validation and we can use it in 00:38:05.680 --> 00:38:08.349 align:start position:0% atli SLV validation and we can use it in three<00:38:05.960> places<00:38:06.520> where<00:38:06.680> we<00:38:06.800> used<00:38:07.040> it<00:38:07.280> before<00:38:08.200> and 00:38:08.349 --> 00:38:08.359 align:start position:0% three places where we used it before and 00:38:08.359 --> 00:38:10.670 align:start position:0% three places where we used it before and in<00:38:08.560> this<00:38:08.720> case<00:38:08.920> we<00:38:09.079> also<00:38:09.280> need<00:38:09.520> a<00:38:09.680> z<00:38:10.000> from<00:38:10.200> Zod 00:38:10.670 --> 00:38:10.680 align:start position:0% in this case we also need a z from Zod 00:38:10.680 --> 00:38:12.710 align:start position:0% in this case we also need a z from Zod as<00:38:10.800> we're<00:38:11.040> referencing<00:38:11.560> it<00:38:11.920> right<00:38:12.079> here<00:38:12.319> as<00:38:12.440> a 00:38:12.710 --> 00:38:12.720 align:start position:0% as we're referencing it right here as a 00:38:12.720 --> 00:38:15.589 align:start position:0% as we're referencing it right here as a type<00:38:13.640> great<00:38:14.079> so<00:38:14.280> now<00:38:14.480> we<00:38:14.599> have<00:38:14.760> just<00:38:15.000> extracted 00:38:15.589 --> 00:38:15.599 align:start position:0% type great so now we have just extracted 00:38:15.599 --> 00:38:17.670 align:start position:0% type great so now we have just extracted one<00:38:15.880> thing<00:38:16.680> but<00:38:16.920> instead<00:38:17.160> of<00:38:17.319> Simply 00:38:17.670 --> 00:38:17.680 align:start position:0% one thing but instead of Simply 00:38:17.680 --> 00:38:20.630 align:start position:0% one thing but instead of Simply extracting<00:38:18.400> That<00:38:18.680> Base<00:38:19.240> example<00:38:19.720> we<00:38:19.960> had 00:38:20.630 --> 00:38:20.640 align:start position:0% extracting That Base example we had 00:38:20.640 --> 00:38:22.109 align:start position:0% extracting That Base example we had let's<00:38:20.920> actually<00:38:21.319> make<00:38:21.520> it<00:38:21.640> a<00:38:21.760> bit<00:38:21.920> more 00:38:22.109 --> 00:38:22.119 align:start position:0% let's actually make it a bit more 00:38:22.119 --> 00:38:23.910 align:start position:0% let's actually make it a bit more meaningful<00:38:22.960> we're<00:38:23.160> not<00:38:23.400> just<00:38:23.560> going<00:38:23.680> to<00:38:23.800> have 00:38:23.910 --> 00:38:23.920 align:start position:0% meaningful we're not just going to have 00:38:23.920 --> 00:38:26.309 align:start position:0% meaningful we're not just going to have a<00:38:24.079> username<00:38:24.839> we're<00:38:24.960> going<00:38:25.079> to<00:38:25.280> have<00:38:25.560> a<00:38:25.800> name<00:38:26.200> as 00:38:26.309 --> 00:38:26.319 align:start position:0% a username we're going to have a name as 00:38:26.319 --> 00:38:29.710 align:start position:0% a username we're going to have a name as well<00:38:26.640> well<00:38:27.280> so<00:38:27.599> let's<00:38:27.880> define<00:38:28.200> it<00:38:28.960> at<00:38:29.079> the<00:38:29.319> top 00:38:29.710 --> 00:38:29.720 align:start position:0% well well so let's define it at the top 00:38:29.720 --> 00:38:34.109 align:start position:0% well well so let's define it at the top let's<00:38:29.920> say<00:38:30.200> name<00:38:30.720> is<00:38:30.880> going<00:38:30.960> to<00:38:31.160> be<00:38:31.680> a<00:38:31.880> z. 00:38:34.109 --> 00:38:34.119 align:start position:0% let's say name is going to be a z. 00:38:34.119 --> 00:38:37.990 align:start position:0% let's say name is going to be a z. string<00:38:35.119> with<00:38:35.319> a<00:38:35.520> minimum<00:38:36.079> of<00:38:36.280> two 00:38:37.990 --> 00:38:38.000 align:start position:0% string with a minimum of two 00:38:38.000 --> 00:38:40.069 align:start position:0% string with a minimum of two characters<00:38:39.000> and<00:38:39.160> then<00:38:39.440> as<00:38:39.599> the<00:38:39.760> second 00:38:40.069 --> 00:38:40.079 align:start position:0% characters and then as the second 00:38:40.079 --> 00:38:42.349 align:start position:0% characters and then as the second parameter<00:38:40.599> of<00:38:40.760> a<00:38:40.960> specific<00:38:41.440> option<00:38:42.040> you<00:38:42.160> can 00:38:42.349 --> 00:38:42.359 align:start position:0% parameter of a specific option you can 00:38:42.359 --> 00:38:44.589 align:start position:0% parameter of a specific option you can provide<00:38:42.680> the<00:38:42.839> error<00:38:43.240> message<00:38:44.079> so<00:38:44.240> in<00:38:44.400> this 00:38:44.589 --> 00:38:44.599 align:start position:0% provide the error message so in this 00:38:44.599 --> 00:38:46.990 align:start position:0% provide the error message so in this case<00:38:44.960> we<00:38:45.079> can<00:38:45.200> say<00:38:45.440> a<00:38:45.680> message<00:38:46.240> is<00:38:46.480> something 00:38:46.990 --> 00:38:47.000 align:start position:0% case we can say a message is something 00:38:47.000 --> 00:38:49.470 align:start position:0% case we can say a message is something like<00:38:48.000> to 00:38:49.470 --> 00:38:49.480 align:start position:0% like to 00:38:49.480 --> 00:38:51.950 align:start position:0% like to short<00:38:50.480> there<00:38:50.680> we<00:38:50.839> go<00:38:51.440> and<00:38:51.560> then<00:38:51.680> you<00:38:51.800> can 00:38:51.950 --> 00:38:51.960 align:start position:0% short there we go and then you can 00:38:51.960 --> 00:38:54.390 align:start position:0% short there we go and then you can continue<00:38:52.359> doing<00:38:52.720> that<00:38:53.240> we<00:38:53.400> have<00:38:53.560> the<00:38:53.720> username 00:38:54.390 --> 00:38:54.400 align:start position:0% continue doing that we have the username 00:38:54.400 --> 00:38:57.230 align:start position:0% continue doing that we have the username username<00:38:55.000> is<00:38:55.119> going<00:38:55.319> to<00:38:55.640> also<00:38:56.079> be<00:38:56.640> a<00:38:56.800> minimum 00:38:57.230 --> 00:38:57.240 align:start position:0% username is going to also be a minimum 00:38:57.240 --> 00:38:59.910 align:start position:0% username is going to also be a minimum of<00:38:57.400> two<00:38:58.200> characters<00:38:59.200> we<00:38:59.319> don't<00:38:59.560> need<00:38:59.720> a 00:38:59.910 --> 00:38:59.920 align:start position:0% of two characters we don't need a 00:38:59.920 --> 00:39:02.109 align:start position:0% of two characters we don't need a maximum<00:39:00.440> here<00:39:00.839> and<00:39:00.960> we<00:39:01.040> can<00:39:01.240> also<00:39:01.520> provide<00:39:01.920> a 00:39:02.109 --> 00:39:02.119 align:start position:0% maximum here and we can also provide a 00:39:02.119 --> 00:39:05.510 align:start position:0% maximum here and we can also provide a message<00:39:02.720> of<00:39:02.920> something<00:39:03.280> like<00:39:03.640> too<00:39:04.280> short<00:39:05.280> then 00:39:05.510 --> 00:39:05.520 align:start position:0% message of something like too short then 00:39:05.520 --> 00:39:07.150 align:start position:0% message of something like too short then we<00:39:05.640> can<00:39:05.800> have<00:39:05.920> an<00:39:06.079> email<00:39:06.599> which<00:39:06.720> is<00:39:06.839> going<00:39:07.040> to 00:39:07.150 --> 00:39:07.160 align:start position:0% we can have an email which is going to 00:39:07.160 --> 00:39:08.670 align:start position:0% we can have an email which is going to be<00:39:07.359> a<00:39:07.560> z. 00:39:08.670 --> 00:39:08.680 align:start position:0% be a z. 00:39:08.680 --> 00:39:12.510 align:start position:0% be a z. string.<00:39:09.680> email<00:39:10.599> like<00:39:10.880> so<00:39:11.880> and<00:39:12.040> then<00:39:12.200> we<00:39:12.319> can 00:39:12.510 --> 00:39:12.520 align:start position:0% string. email like so and then we can 00:39:12.520 --> 00:39:15.109 align:start position:0% string. email like so and then we can have<00:39:12.680> a<00:39:12.880> password<00:39:13.640> which<00:39:13.760> is<00:39:13.920> going<00:39:14.079> to<00:39:14.200> be<00:39:14.400> z. 00:39:15.109 --> 00:39:15.119 align:start position:0% have a password which is going to be z. 00:39:15.119 --> 00:39:17.790 align:start position:0% have a password which is going to be z. string<00:39:16.119> and<00:39:16.359> it's<00:39:16.520> going<00:39:16.680> to<00:39:16.800> be<00:39:16.960> a<00:39:17.119> men<00:39:17.560> of 00:39:17.790 --> 00:39:17.800 align:start position:0% string and it's going to be a men of 00:39:17.800 --> 00:39:19.870 align:start position:0% string and it's going to be a men of eight<00:39:18.240> characters<00:39:19.200> and<00:39:19.319> we're<00:39:19.440> going<00:39:19.560> to<00:39:19.680> say 00:39:19.870 --> 00:39:19.880 align:start position:0% eight characters and we're going to say 00:39:19.880 --> 00:39:22.109 align:start position:0% eight characters and we're going to say to<00:39:20.160> short<00:39:20.760> if<00:39:20.920> it's<00:39:21.160> less<00:39:21.400> than 00:39:22.109 --> 00:39:22.119 align:start position:0% to short if it's less than 00:39:22.119 --> 00:39:24.670 align:start position:0% to short if it's less than eight<00:39:23.119> of<00:39:23.280> course<00:39:23.480> feel<00:39:23.720> free<00:39:23.960> to<00:39:24.280> provide 00:39:24.670 --> 00:39:24.680 align:start position:0% eight of course feel free to provide 00:39:24.680 --> 00:39:26.950 align:start position:0% eight of course feel free to provide more<00:39:24.880> meaningful<00:39:25.400> error<00:39:25.760> messages<00:39:26.560> something 00:39:26.950 --> 00:39:26.960 align:start position:0% more meaningful error messages something 00:39:26.960 --> 00:39:31.510 align:start position:0% more meaningful error messages something like<00:39:27.680> password<00:39:28.680> must<00:39:29.079> be<00:39:29.599> at<00:39:29.839> least<00:39:30.440> eight 00:39:31.510 --> 00:39:31.520 align:start position:0% like password must be at least eight 00:39:31.520 --> 00:39:33.589 align:start position:0% like password must be at least eight characters<00:39:32.520> you<00:39:32.599> can<00:39:32.760> do<00:39:32.960> that<00:39:33.079> for<00:39:33.280> all<00:39:33.440> the 00:39:33.589 --> 00:39:33.599 align:start position:0% characters you can do that for all the 00:39:33.599 --> 00:39:36.550 align:start position:0% characters you can do that for all the other<00:39:33.800> ones<00:39:34.640> now<00:39:34.839> we<00:39:35.000> have<00:39:35.200> our<00:39:35.440> proper<00:39:35.800> signup 00:39:36.550 --> 00:39:36.560 align:start position:0% other ones now we have our proper signup 00:39:36.560 --> 00:39:38.910 align:start position:0% other ones now we have our proper signup validation<00:39:37.560> but<00:39:37.920> as<00:39:38.000> you<00:39:38.119> can<00:39:38.280> notice<00:39:38.720> we're 00:39:38.910 --> 00:39:38.920 align:start position:0% validation but as you can notice we're 00:39:38.920 --> 00:39:41.470 align:start position:0% validation but as you can notice we're using<00:39:39.280> it<00:39:39.520> here<00:39:40.160> but<00:39:40.480> as<00:39:40.599> for<00:39:40.800> the<00:39:41.000> default 00:39:41.470 --> 00:39:41.480 align:start position:0% using it here but as for the default 00:39:41.480 --> 00:39:43.430 align:start position:0% using it here but as for the default values<00:39:41.920> we're<00:39:42.160> simply<00:39:42.640> defining<00:39:43.160> the 00:39:43.430 --> 00:39:43.440 align:start position:0% values we're simply defining the 00:39:43.440 --> 00:39:46.550 align:start position:0% values we're simply defining the username<00:39:44.440> so<00:39:44.800> let's<00:39:45.040> also<00:39:45.400> add<00:39:45.599> a<00:39:45.800> name<00:39:46.240> at<00:39:46.440> the 00:39:46.550 --> 00:39:46.560 align:start position:0% username so let's also add a name at the 00:39:46.560 --> 00:39:49.670 align:start position:0% username so let's also add a name at the start<00:39:46.920> equal<00:39:47.240> to<00:39:47.400> an<00:39:47.520> empty 00:39:49.670 --> 00:39:49.680 align:start position:0% start equal to an empty 00:39:49.680 --> 00:39:53.109 align:start position:0% start equal to an empty string<00:39:50.680> let's<00:39:50.880> also<00:39:51.119> do<00:39:51.240> a<00:39:51.800> username<00:39:52.800> after 00:39:53.109 --> 00:39:53.119 align:start position:0% string let's also do a username after 00:39:53.119 --> 00:39:54.710 align:start position:0% string let's also do a username after that<00:39:53.280> we're<00:39:53.400> going<00:39:53.480> to<00:39:53.599> have<00:39:53.720> an 00:39:54.710 --> 00:39:54.720 align:start position:0% that we're going to have an 00:39:54.720 --> 00:39:57.910 align:start position:0% that we're going to have an email<00:39:55.720> and<00:39:55.920> finally<00:39:56.480> we're<00:39:56.599> going<00:39:56.720> to<00:39:56.920> have<00:39:57.240> a 00:39:57.910 --> 00:39:57.920 align:start position:0% email and finally we're going to have a 00:39:57.920 --> 00:40:00.349 align:start position:0% email and finally we're going to have a password<00:39:58.920> so<00:39:59.119> now<00:39:59.240> we're<00:39:59.440> starting<00:39:59.760> to<00:40:00.000> create 00:40:00.349 --> 00:40:00.359 align:start position:0% password so now we're starting to create 00:40:00.359 --> 00:40:02.990 align:start position:0% password so now we're starting to create the<00:40:00.599> structure<00:40:01.359> for<00:40:01.760> what<00:40:01.960> our<00:40:02.160> form<00:40:02.599> is<00:40:02.839> yet 00:40:02.990 --> 00:40:03.000 align:start position:0% the structure for what our form is yet 00:40:03.000 --> 00:40:05.349 align:start position:0% the structure for what our form is yet to<00:40:03.440> become<00:40:04.440> and<00:40:04.560> of<00:40:04.680> course<00:40:04.920> the<00:40:05.040> next<00:40:05.200> thing 00:40:05.349 --> 00:40:05.359 align:start position:0% to become and of course the next thing 00:40:05.359 --> 00:40:07.950 align:start position:0% to become and of course the next thing we<00:40:05.520> have<00:40:05.640> to<00:40:05.760> do<00:40:06.240> is<00:40:06.520> actually<00:40:07.359> create<00:40:07.720> our 00:40:07.950 --> 00:40:07.960 align:start position:0% we have to do is actually create our 00:40:07.960 --> 00:40:10.349 align:start position:0% we have to do is actually create our form<00:40:08.560> with<00:40:08.760> all<00:40:08.960> of<00:40:09.079> the<00:40:09.280> necessary<00:40:09.760> form 00:40:10.349 --> 00:40:10.359 align:start position:0% form with all of the necessary form 00:40:10.359 --> 00:40:13.190 align:start position:0% form with all of the necessary form Fields<00:40:11.359> so<00:40:11.760> if<00:40:11.880> we<00:40:12.040> go<00:40:12.240> back<00:40:12.440> to<00:40:12.560> the<00:40:12.680> finished 00:40:13.190 --> 00:40:13.200 align:start position:0% Fields so if we go back to the finished 00:40:13.200 --> 00:40:15.630 align:start position:0% Fields so if we go back to the finished site<00:40:14.200> right<00:40:14.359> now<00:40:14.640> we<00:40:14.800> still<00:40:15.079> have<00:40:15.319> just<00:40:15.480> the 00:40:15.630 --> 00:40:15.640 align:start position:0% site right now we still have just the 00:40:15.640 --> 00:40:17.829 align:start position:0% site right now we still have just the input<00:40:16.480> but<00:40:16.680> let's<00:40:16.880> go<00:40:17.000> ahead<00:40:17.240> and<00:40:17.440> put<00:40:17.599> this 00:40:17.829 --> 00:40:17.839 align:start position:0% input but let's go ahead and put this 00:40:17.839 --> 00:40:19.670 align:start position:0% input but let's go ahead and put this side<00:40:18.040> by<00:40:18.319> side<00:40:18.480> with<00:40:18.599> our<00:40:18.760> editor<00:40:19.280> so<00:40:19.480> we<00:40:19.560> can 00:40:19.670 --> 00:40:19.680 align:start position:0% side by side with our editor so we can 00:40:19.680 --> 00:40:22.870 align:start position:0% side by side with our editor so we can see<00:40:19.880> the<00:40:20.000> changes<00:40:20.440> that<00:40:20.599> we<00:40:20.720> make<00:40:21.240> live<00:40:22.240> now<00:40:22.680> we 00:40:22.870 --> 00:40:22.880 align:start position:0% see the changes that we make live now we 00:40:22.880 --> 00:40:24.829 align:start position:0% see the changes that we make live now we have<00:40:23.040> our<00:40:23.240> form<00:40:23.599> on<00:40:23.720> the<00:40:23.920> right<00:40:24.200> side<00:40:24.520> and<00:40:24.680> the 00:40:24.829 --> 00:40:24.839 align:start position:0% have our form on the right side and the 00:40:24.839 --> 00:40:27.109 align:start position:0% have our form on the right side and the code<00:40:25.119> on<00:40:25.240> the<00:40:25.440> left<00:40:25.960> so<00:40:26.400> let's<00:40:26.560> go<00:40:26.680> ahead<00:40:26.960> and 00:40:27.109 --> 00:40:27.119 align:start position:0% code on the left so let's go ahead and 00:40:27.119 --> 00:40:30.069 align:start position:0% code on the left so let's go ahead and turn<00:40:27.400> this<00:40:27.560> into<00:40:27.800> an<00:40:28.079> actual<00:40:28.760> final<00:40:29.240> form<00:40:29.880> to 00:40:30.069 --> 00:40:30.079 align:start position:0% turn this into an actual final form to 00:40:30.079 --> 00:40:33.109 align:start position:0% turn this into an actual final form to look<00:40:30.520> exactly<00:40:31.280> like<00:40:31.520> this<00:40:31.680> one<00:40:31.920> does<00:40:32.800> to<00:40:32.960> be 00:40:33.109 --> 00:40:33.119 align:start position:0% look exactly like this one does to be 00:40:33.119 --> 00:40:34.990 align:start position:0% look exactly like this one does to be able<00:40:33.359> to<00:40:33.480> do<00:40:33.720> that<00:40:34.079> we<00:40:34.200> can<00:40:34.440> start<00:40:34.760> with<00:40:34.880> the 00:40:34.990 --> 00:40:35.000 align:start position:0% able to do that we can start with the 00:40:35.000 --> 00:40:37.510 align:start position:0% able to do that we can start with the outer<00:40:35.440> div<00:40:36.079> or<00:40:36.319> rather<00:40:36.560> with<00:40:36.720> the<00:40:36.839> form<00:40:37.400> we 00:40:37.510 --> 00:40:37.520 align:start position:0% outer div or rather with the form we 00:40:37.520 --> 00:40:38.990 align:start position:0% outer div or rather with the form we don't<00:40:37.760> need<00:40:37.920> to<00:40:38.079> wrap<00:40:38.400> the<00:40:38.480> form<00:40:38.760> with 00:40:38.990 --> 00:40:39.000 align:start position:0% don't need to wrap the form with 00:40:39.000 --> 00:40:41.150 align:start position:0% don't need to wrap the form with anything<00:40:39.640> as<00:40:39.800> the<00:40:39.920> form<00:40:40.319> is<00:40:40.440> going<00:40:40.640> to<00:40:40.760> be<00:40:40.960> the 00:40:41.150 --> 00:40:41.160 align:start position:0% anything as the form is going to be the 00:40:41.160 --> 00:40:43.670 align:start position:0% anything as the form is going to be the most<00:40:41.520> outer<00:40:42.000> side<00:40:42.400> container<00:40:43.240> so<00:40:43.400> we<00:40:43.480> can 00:40:43.670 --> 00:40:43.680 align:start position:0% most outer side container so we can 00:40:43.680 --> 00:40:46.990 align:start position:0% most outer side container so we can remove<00:40:44.079> this<00:40:44.359> outer<00:40:44.920> div<00:40:45.920> and<00:40:46.119> we<00:40:46.240> can<00:40:46.400> select 00:40:46.990 --> 00:40:47.000 align:start position:0% remove this outer div and we can select 00:40:47.000 --> 00:40:50.190 align:start position:0% remove this outer div and we can select everything<00:40:47.599> within<00:40:47.880> the<00:40:48.000> form<00:40:48.800> just<00:40:49.119> like<00:40:49.400> so 00:40:50.190 --> 00:40:50.200 align:start position:0% everything within the form just like so 00:40:50.200 --> 00:40:53.109 align:start position:0% everything within the form just like so and<00:40:50.560> indent<00:40:50.920> it<00:40:51.160> properly<00:40:52.160> I<00:40:52.319> always<00:40:52.640> try<00:40:52.880> to 00:40:53.109 --> 00:40:53.119 align:start position:0% and indent it properly I always try to 00:40:53.119 --> 00:40:54.630 align:start position:0% and indent it properly I always try to keep<00:40:53.480> my<00:40:53.640> code 00:40:54.630 --> 00:40:54.640 align:start position:0% keep my code 00:40:54.640 --> 00:40:57.150 align:start position:0% keep my code clean<00:40:55.640> now<00:40:55.920> within<00:40:56.160> the<00:40:56.359> this<00:40:56.480> form<00:40:56.960> we're 00:40:57.150 --> 00:40:57.160 align:start position:0% clean now within the this form we're 00:40:57.160 --> 00:40:59.870 align:start position:0% clean now within the this form we're going<00:40:57.280> to<00:40:57.520> have<00:40:57.800> a<00:40:58.000> div<00:40:58.599> so<00:40:58.920> right<00:40:59.119> here<00:40:59.520> create 00:40:59.870 --> 00:40:59.880 align:start position:0% going to have a div so right here create 00:40:59.880 --> 00:41:01.150 align:start position:0% going to have a div so right here create a<00:41:00.040> new 00:41:01.150 --> 00:41:01.160 align:start position:0% a new 00:41:01.160 --> 00:41:03.910 align:start position:0% a new div<00:41:02.160> and<00:41:02.599> this<00:41:02.800> div<00:41:03.160> is<00:41:03.280> going<00:41:03.480> to<00:41:03.640> have<00:41:03.760> a 00:41:03.910 --> 00:41:03.920 align:start position:0% div and this div is going to have a 00:41:03.920 --> 00:41:07.349 align:start position:0% div and this div is going to have a class<00:41:04.319> name<00:41:04.920> equal<00:41:05.280> to<00:41:05.960> on<00:41:06.160> small<00:41:06.520> devices 00:41:07.349 --> 00:41:07.359 align:start position:0% class name equal to on small devices 00:41:07.359 --> 00:41:08.870 align:start position:0% class name equal to on small devices width<00:41:07.680> is<00:41:07.800> going<00:41:07.960> to<00:41:08.079> be 00:41:08.870 --> 00:41:08.880 align:start position:0% width is going to be 00:41:08.880 --> 00:41:12.870 align:start position:0% width is going to be 420<00:41:09.880> it's<00:41:10.040> going<00:41:10.200> to<00:41:10.359> be<00:41:10.599> Flex<00:41:11.720> Center<00:41:12.720> and 00:41:12.870 --> 00:41:12.880 align:start position:0% 420 it's going to be Flex Center and 00:41:12.880 --> 00:41:14.910 align:start position:0% 420 it's going to be Flex Center and it's<00:41:13.040> going<00:41:13.200> to<00:41:13.280> be<00:41:13.440> Flex<00:41:13.839> C<00:41:14.200> so<00:41:14.359> the<00:41:14.440> elements 00:41:14.910 --> 00:41:14.920 align:start position:0% it's going to be Flex C so the elements 00:41:14.920 --> 00:41:17.870 align:start position:0% it's going to be Flex C so the elements appear<00:41:15.440> one<00:41:15.640> below<00:41:16.119> another<00:41:17.119> next<00:41:17.440> we<00:41:17.599> have<00:41:17.720> to 00:41:17.870 --> 00:41:17.880 align:start position:0% appear one below another next we have to 00:41:17.880 --> 00:41:20.270 align:start position:0% appear one below another next we have to create<00:41:18.200> this<00:41:18.400> logo<00:41:18.800> on<00:41:18.960> the<00:41:19.200> top<00:41:19.720> so<00:41:20.000> let's 00:41:20.270 --> 00:41:20.280 align:start position:0% create this logo on the top so let's 00:41:20.280 --> 00:41:22.829 align:start position:0% create this logo on the top so let's immediately<00:41:20.760> do<00:41:21.079> that<00:41:21.880> here<00:41:22.160> we<00:41:22.280> can<00:41:22.400> render<00:41:22.720> a 00:41:22.829 --> 00:41:22.839 align:start position:0% immediately do that here we can render a 00:41:22.839 --> 00:41:24.790 align:start position:0% immediately do that here we can render a self-closing<00:41:23.599> image<00:41:24.160> that's<00:41:24.359> going<00:41:24.520> to<00:41:24.640> have 00:41:24.790 --> 00:41:24.800 align:start position:0% self-closing image that's going to have 00:41:24.800 --> 00:41:30.710 align:start position:0% self-closing image that's going to have a<00:41:24.960> source<00:41:25.720> of<00:41:26.280> /<00:41:27.040> assets<00:41:28.040> SL<00:41:28.520> images<00:41:29.520> SL 00:41:30.710 --> 00:41:30.720 align:start position:0% a source of / assets SL images SL 00:41:30.720 --> 00:41:33.030 align:start position:0% a source of / assets SL images SL logo.svg<00:41:31.720> and<00:41:31.880> you<00:41:31.960> can<00:41:32.079> give<00:41:32.200> it<00:41:32.319> an<00:41:32.480> ALT<00:41:32.800> tag 00:41:33.030 --> 00:41:33.040 align:start position:0% logo.svg and you can give it an ALT tag 00:41:33.040 --> 00:41:35.790 align:start position:0% logo.svg and you can give it an ALT tag of<00:41:33.359> logo<00:41:34.359> now<00:41:34.520> if<00:41:34.599> you<00:41:34.760> save<00:41:35.000> it<00:41:35.400> you<00:41:35.480> should<00:41:35.680> be 00:41:35.790 --> 00:41:35.800 align:start position:0% of logo now if you save it you should be 00:41:35.800 --> 00:41:38.270 align:start position:0% of logo now if you save it you should be able<00:41:36.000> to<00:41:36.160> see<00:41:36.480> a<00:41:36.760> nice<00:41:37.079> looking<00:41:37.359> logo<00:41:37.800> appear 00:41:38.270 --> 00:41:38.280 align:start position:0% able to see a nice looking logo appear 00:41:38.280 --> 00:41:41.150 align:start position:0% able to see a nice looking logo appear right<00:41:38.440> on<00:41:38.680> top<00:41:39.200> as<00:41:39.280> soon<00:41:39.440> as<00:41:39.560> you<00:41:39.960> reload<00:41:40.960> and 00:41:41.150 --> 00:41:41.160 align:start position:0% right on top as soon as you reload and 00:41:41.160 --> 00:41:43.589 align:start position:0% right on top as soon as you reload and there<00:41:41.280> we<00:41:41.440> go<00:41:41.800> you<00:41:41.880> can<00:41:42.040> see<00:41:42.319> logo's<00:41:42.760> icon 00:41:43.589 --> 00:41:43.599 align:start position:0% there we go you can see logo's icon 00:41:43.599 --> 00:41:45.470 align:start position:0% there we go you can see logo's icon actually<00:41:43.960> the<00:41:44.079> entire<00:41:44.440> logo<00:41:44.720> is<00:41:44.920> there<00:41:45.319> as<00:41:45.400> you 00:41:45.470 --> 00:41:45.480 align:start position:0% actually the entire logo is there as you 00:41:45.480 --> 00:41:47.790 align:start position:0% actually the entire logo is there as you can<00:41:45.599> see<00:41:45.800> when<00:41:45.920> I<00:41:46.079> drag<00:41:46.319> and<00:41:46.480> drop<00:41:46.760> it<00:41:47.040> here<00:41:47.640> but 00:41:47.790 --> 00:41:47.800 align:start position:0% can see when I drag and drop it here but 00:41:47.800 --> 00:41:49.510 align:start position:0% can see when I drag and drop it here but you<00:41:47.920> cannot<00:41:48.200> see<00:41:48.359> it<00:41:48.560> as<00:41:48.720> the<00:41:48.880> background<00:41:49.280> is 00:41:49.510 --> 00:41:49.520 align:start position:0% you cannot see it as the background is 00:41:49.520 --> 00:41:52.510 align:start position:0% you cannot see it as the background is white<00:41:50.440> so<00:41:50.720> let's<00:41:50.960> go<00:41:51.119> ahead<00:41:51.520> and<00:41:51.800> figure<00:41:52.119> out 00:41:52.510 --> 00:41:52.520 align:start position:0% white so let's go ahead and figure out 00:41:52.520 --> 00:41:55.150 align:start position:0% white so let's go ahead and figure out why<00:41:52.720> our<00:41:53.040> background<00:41:53.560> is<00:41:53.760> not<00:41:54.119> dark<00:41:54.599> as<00:41:54.720> it<00:41:54.880> was 00:41:55.150 --> 00:41:55.160 align:start position:0% why our background is not dark as it was 00:41:55.160 --> 00:41:59.150 align:start position:0% why our background is not dark as it was dark<00:41:55.520> before<00:41:56.720> if<00:41:56.839> you<00:41:57.040> head<00:41:57.280> to<00:41:57.680> your<00:41:58.280> global. 00:41:59.150 --> 00:41:59.160 align:start position:0% dark before if you head to your global. 00:41:59.160 --> 00:42:01.550 align:start position:0% dark before if you head to your global. CSS<00:41:59.720> file<00:42:00.359> you'll<00:42:00.640> notice<00:42:01.119> it<00:42:01.280> got 00:42:01.550 --> 00:42:01.560 align:start position:0% CSS file you'll notice it got 00:42:01.560 --> 00:42:05.190 align:start position:0% CSS file you'll notice it got overwritten<00:42:02.400> by<00:42:03.000> shaten<00:42:04.000> and<00:42:04.520> it's<00:42:04.720> no<00:42:04.880> longer 00:42:05.190 --> 00:42:05.200 align:start position:0% overwritten by shaten and it's no longer 00:42:05.200 --> 00:42:07.150 align:start position:0% overwritten by shaten and it's no longer applying<00:42:05.640> the<00:42:05.920> black<00:42:06.319> background<00:42:06.800> on<00:42:06.960> our 00:42:07.150 --> 00:42:07.160 align:start position:0% applying the black background on our 00:42:07.160 --> 00:42:09.589 align:start position:0% applying the black background on our body<00:42:07.880> so<00:42:08.200> once<00:42:08.440> again<00:42:08.720> to<00:42:08.920> get<00:42:09.119> back<00:42:09.280> to<00:42:09.400> our 00:42:09.589 --> 00:42:09.599 align:start position:0% body so once again to get back to our 00:42:09.599 --> 00:42:11.470 align:start position:0% body so once again to get back to our previous<00:42:09.960> globals<00:42:10.560> you'll<00:42:10.760> have<00:42:10.880> to<00:42:11.079> go<00:42:11.280> to 00:42:11.470 --> 00:42:11.480 align:start position:0% previous globals you'll have to go to 00:42:11.480 --> 00:42:14.230 align:start position:0% previous globals you'll have to go to the<00:42:11.640> GitHub<00:42:12.000> jiz<00:42:12.280> down<00:42:12.480> below<00:42:13.240> copy<00:42:13.560> it<00:42:14.079> and 00:42:14.230 --> 00:42:14.240 align:start position:0% the GitHub jiz down below copy it and 00:42:14.240 --> 00:42:17.430 align:start position:0% the GitHub jiz down below copy it and then<00:42:14.480> paste<00:42:14.760> it<00:42:15.240> right<00:42:15.520> over<00:42:16.119> here<00:42:17.119> once<00:42:17.319> you 00:42:17.430 --> 00:42:17.440 align:start position:0% then paste it right over here once you 00:42:17.440 --> 00:42:19.030 align:start position:0% then paste it right over here once you do<00:42:17.640> that<00:42:17.800> you're<00:42:17.960> going<00:42:18.040> to<00:42:18.200> get<00:42:18.319> an<00:42:18.480> error 00:42:19.030 --> 00:42:19.040 align:start position:0% do that you're going to get an error 00:42:19.040 --> 00:42:22.630 align:start position:0% do that you're going to get an error because<00:42:19.400> our<00:42:19.720> tail<00:42:20.040> wi.<00:42:20.640> config.js<00:42:21.480> also<00:42:22.319> got 00:42:22.630 --> 00:42:22.640 align:start position:0% because our tail wi. config.js also got 00:42:22.640 --> 00:42:24.950 align:start position:0% because our tail wi. config.js also got overridden<00:42:23.640> so<00:42:23.960> copy<00:42:24.240> it<00:42:24.359> from<00:42:24.480> the<00:42:24.599> GitHub 00:42:24.950 --> 00:42:24.960 align:start position:0% overridden so copy it from the GitHub 00:42:24.960 --> 00:42:27.549 align:start position:0% overridden so copy it from the GitHub gist<00:42:25.359> and<00:42:25.480> then<00:42:25.680> paste<00:42:25.920> it<00:42:26.319> right<00:42:26.520> here<00:42:27.359> that's 00:42:27.549 --> 00:42:27.559 align:start position:0% gist and then paste it right here that's 00:42:27.559 --> 00:42:29.510 align:start position:0% gist and then paste it right here that's going<00:42:27.760> to<00:42:27.920> ensure<00:42:28.400> that<00:42:28.520> you<00:42:28.720> have<00:42:29.000> access<00:42:29.319> to 00:42:29.510 --> 00:42:29.520 align:start position:0% going to ensure that you have access to 00:42:29.520 --> 00:42:32.670 align:start position:0% going to ensure that you have access to all<00:42:29.880> the<00:42:30.040> necessary<00:42:30.680> theme<00:42:31.319> colors<00:42:32.319> and 00:42:32.670 --> 00:42:32.680 align:start position:0% all the necessary theme colors and 00:42:32.680 --> 00:42:34.910 align:start position:0% all the necessary theme colors and everything<00:42:33.000> is<00:42:33.119> going<00:42:33.319> to<00:42:33.480> work<00:42:33.839> as<00:42:33.960> it<00:42:34.200> should 00:42:34.910 --> 00:42:34.920 align:start position:0% everything is going to work as it should 00:42:34.920 --> 00:42:38.309 align:start position:0% everything is going to work as it should now<00:42:35.319> with<00:42:35.520> the<00:42:35.640> dark<00:42:36.280> mode<00:42:37.280> so<00:42:37.720> below<00:42:38.119> this 00:42:38.309 --> 00:42:38.319 align:start position:0% now with the dark mode so below this 00:42:38.319 --> 00:42:40.990 align:start position:0% now with the dark mode so below this image<00:42:38.839> let's<00:42:39.079> create<00:42:39.359> an<00:42:39.520> H2<00:42:40.400> that's<00:42:40.599> going<00:42:40.800> to 00:42:40.990 --> 00:42:41.000 align:start position:0% image let's create an H2 that's going to 00:42:41.000 --> 00:42:44.230 align:start position:0% image let's create an H2 that's going to say<00:42:41.440> something<00:42:41.839> like<00:42:42.200> create<00:42:42.839> a<00:42:43.119> new 00:42:44.230 --> 00:42:44.240 align:start position:0% say something like create a new 00:42:44.240 --> 00:42:47.390 align:start position:0% say something like create a new account<00:42:45.240> and<00:42:45.559> we<00:42:45.680> can<00:42:45.839> give<00:42:45.960> it<00:42:46.040> a<00:42:46.240> class<00:42:46.599> name 00:42:47.390 --> 00:42:47.400 align:start position:0% account and we can give it a class name 00:42:47.400 --> 00:42:50.870 align:start position:0% account and we can give it a class name of<00:42:48.200> H3<00:42:49.200> bold<00:42:50.200> now<00:42:50.400> I<00:42:50.480> know<00:42:50.599> what<00:42:50.720> you're 00:42:50.870 --> 00:42:50.880 align:start position:0% of H3 bold now I know what you're 00:42:50.880 --> 00:42:54.390 align:start position:0% of H3 bold now I know what you're thinking<00:42:51.520> why<00:42:51.760> H3<00:42:52.480> if<00:42:52.640> the<00:42:52.760> element<00:42:53.079> is<00:42:53.400> H2 00:42:54.390 --> 00:42:54.400 align:start position:0% thinking why H3 if the element is H2 00:42:54.400 --> 00:42:56.549 align:start position:0% thinking why H3 if the element is H2 well<00:42:54.640> that's<00:42:54.880> because<00:42:55.200> on<00:42:55.400> medium<00:42:55.760> devices<00:42:56.240> is 00:42:56.549 --> 00:42:56.559 align:start position:0% well that's because on medium devices is 00:42:56.559 --> 00:42:58.710 align:start position:0% well that's because on medium devices is it's<00:42:56.760> going<00:42:56.920> to<00:42:57.040> be<00:42:57.280> H2<00:42:57.880> bold<00:42:58.319> so<00:42:58.440> we're<00:42:58.599> going 00:42:58.710 --> 00:42:58.720 align:start position:0% it's going to be H2 bold so we're going 00:42:58.720 --> 00:43:01.470 align:start position:0% it's going to be H2 bold so we're going to<00:42:58.839> make<00:42:58.960> it<00:42:59.079> a<00:42:59.240> bit<00:42:59.480> smaller<00:43:00.240> there<00:43:01.200> we<00:43:01.280> can 00:43:01.470 --> 00:43:01.480 align:start position:0% to make it a bit smaller there we can 00:43:01.480 --> 00:43:04.510 align:start position:0% to make it a bit smaller there we can also<00:43:01.720> give<00:43:01.839> it<00:43:01.920> a<00:43:02.079> padding<00:43:02.480> top<00:43:02.920> of<00:43:03.319> five<00:43:03.760> so<00:43:04.119> PT 00:43:04.510 --> 00:43:04.520 align:start position:0% also give it a padding top of five so PT 00:43:04.520 --> 00:43:07.309 align:start position:0% also give it a padding top of five so PT of<00:43:04.760> five<00:43:05.400> and<00:43:05.559> then<00:43:05.760> small<00:43:06.040> devices<00:43:06.760> a<00:43:06.920> larger 00:43:07.309 --> 00:43:07.319 align:start position:0% of five and then small devices a larger 00:43:07.319 --> 00:43:10.950 align:start position:0% of five and then small devices a larger PT<00:43:07.800> of<00:43:08.079> 12<00:43:08.599> to<00:43:08.760> create<00:43:09.040> some<00:43:09.599> spacing<00:43:10.599> below 00:43:10.950 --> 00:43:10.960 align:start position:0% PT of 12 to create some spacing below 00:43:10.960 --> 00:43:13.790 align:start position:0% PT of 12 to create some spacing below the<00:43:11.119> H2<00:43:11.760> we<00:43:11.839> can<00:43:12.000> have<00:43:12.200> a<00:43:12.359> P<00:43:12.640> tag<00:43:13.160> and<00:43:13.359> this<00:43:13.559> P 00:43:13.790 --> 00:43:13.800 align:start position:0% the H2 we can have a P tag and this P 00:43:13.800 --> 00:43:17.829 align:start position:0% the H2 we can have a P tag and this P tag<00:43:14.040> is<00:43:14.119> going<00:43:14.319> to<00:43:14.480> say<00:43:15.040> to<00:43:15.359> use 00:43:17.829 --> 00:43:17.839 align:start position:0% tag is going to say to use 00:43:17.839 --> 00:43:21.589 align:start position:0% tag is going to say to use snapgram<00:43:18.839> enter<00:43:19.520> your<00:43:20.000> account 00:43:21.589 --> 00:43:21.599 align:start position:0% snapgram enter your account 00:43:21.599 --> 00:43:24.390 align:start position:0% snapgram enter your account details<00:43:22.599> and<00:43:22.800> now<00:43:23.040> we<00:43:23.119> can<00:43:23.280> give<00:43:23.400> it<00:43:23.520> a<00:43:23.680> class 00:43:24.390 --> 00:43:24.400 align:start position:0% details and now we can give it a class 00:43:24.400 --> 00:43:28.030 align:start position:0% details and now we can give it a class name<00:43:25.400> that's<00:43:25.599> going<00:43:25.720> to<00:43:25.839> say<00:43:26.359> text- 00:43:28.030 --> 00:43:28.040 align:start position:0% name that's going to say text- 00:43:28.040 --> 00:43:32.190 align:start position:0% name that's going to say text- light-3<00:43:29.040> small-<00:43:29.920> medium<00:43:30.480> for<00:43:30.720> the<00:43:30.880> font<00:43:31.280> size 00:43:32.190 --> 00:43:32.200 align:start position:0% light-3 small- medium for the font size 00:43:32.200 --> 00:43:35.870 align:start position:0% light-3 small- medium for the font size on<00:43:32.520> medium<00:43:33.000> devices<00:43:33.880> base<00:43:34.400> Dash<00:43:34.720> regular<00:43:35.680> and 00:43:35.870 --> 00:43:35.880 align:start position:0% on medium devices base Dash regular and 00:43:35.880 --> 00:43:38.710 align:start position:0% on medium devices base Dash regular and a<00:43:36.040> margin<00:43:36.440> top<00:43:36.720> of<00:43:37.200> 12<00:43:38.200> and<00:43:38.400> we<00:43:38.520> don't 00:43:38.710 --> 00:43:38.720 align:start position:0% a margin top of 12 and we don't 00:43:38.720 --> 00:43:40.430 align:start position:0% a margin top of 12 and we don't necessarily<00:43:39.160> have<00:43:39.280> to<00:43:39.359> say<00:43:39.680> count<00:43:40.200> just 00:43:40.430 --> 00:43:40.440 align:start position:0% necessarily have to say count just 00:43:40.440 --> 00:43:43.710 align:start position:0% necessarily have to say count just details<00:43:41.119> to<00:43:41.319> use<00:43:41.480> a<00:43:41.599> bit<00:43:41.800> less<00:43:42.240> width<00:43:43.240> now<00:43:43.599> we 00:43:43.710 --> 00:43:43.720 align:start position:0% details to use a bit less width now we 00:43:43.720 --> 00:43:46.309 align:start position:0% details to use a bit less width now we want<00:43:43.839> to<00:43:44.040> wrap<00:43:44.400> our<00:43:44.640> entire<00:43:45.079> form<00:43:45.760> within<00:43:46.079> this 00:43:46.309 --> 00:43:46.319 align:start position:0% want to wrap our entire form within this 00:43:46.319 --> 00:43:49.549 align:start position:0% want to wrap our entire form within this div<00:43:46.760> so<00:43:46.960> let's<00:43:47.200> copy<00:43:47.480> the<00:43:47.599> ending<00:43:48.160> tag<00:43:49.160> and 00:43:49.549 --> 00:43:49.559 align:start position:0% div so let's copy the ending tag and 00:43:49.559 --> 00:43:51.349 align:start position:0% div so let's copy the ending tag and paste<00:43:49.839> it<00:43:50.000> right<00:43:50.280> here<00:43:50.480> below<00:43:50.760> the<00:43:50.880> end<00:43:51.079> of<00:43:51.240> the 00:43:51.349 --> 00:43:51.359 align:start position:0% paste it right here below the end of the 00:43:51.359 --> 00:43:54.910 align:start position:0% paste it right here below the end of the form<00:43:52.359> and<00:43:52.680> let's<00:43:52.960> expand<00:43:53.319> our<00:43:53.559> form<00:43:54.200> to<00:43:54.520> fit 00:43:54.910 --> 00:43:54.920 align:start position:0% form and let's expand our form to fit 00:43:54.920 --> 00:43:56.670 align:start position:0% form and let's expand our form to fit nicely<00:43:55.400> right<00:43:55.599> here 00:43:56.670 --> 00:43:56.680 align:start position:0% nicely right here 00:43:56.680 --> 00:43:59.390 align:start position:0% nicely right here there<00:43:56.839> we<00:43:57.040> go<00:43:57.839> now<00:43:58.079> our<00:43:58.280> form<00:43:58.800> is<00:43:58.960> going<00:43:59.119> to 00:43:59.390 --> 00:43:59.400 align:start position:0% there we go now our form is going to 00:43:59.400 --> 00:44:02.750 align:start position:0% there we go now our form is going to have<00:43:59.720> a<00:44:00.000> class<00:44:00.400> name<00:44:01.119> of 00:44:02.750 --> 00:44:02.760 align:start position:0% have a class name of 00:44:02.760 --> 00:44:04.670 align:start position:0% have a class name of flex 00:44:04.670 --> 00:44:04.680 align:start position:0% flex 00:44:04.680 --> 00:44:08.710 align:start position:0% flex flex-all<00:44:05.680> gap<00:44:05.960> of<00:44:06.200> five<00:44:06.920> w-<00:44:07.640> full<00:44:08.440> and<00:44:08.559> then 00:44:08.710 --> 00:44:08.720 align:start position:0% flex-all gap of five w- full and then 00:44:08.720 --> 00:44:11.109 align:start position:0% flex-all gap of five w- full and then margin<00:44:09.160> top<00:44:09.440> of<00:44:09.559> four<00:44:10.359> this<00:44:10.480> is<00:44:10.599> going<00:44:10.760> to<00:44:10.920> make 00:44:11.109 --> 00:44:11.119 align:start position:0% margin top of four this is going to make 00:44:11.119 --> 00:44:13.190 align:start position:0% margin top of four this is going to make the<00:44:11.280> elements<00:44:11.720> extend<00:44:12.119> the<00:44:12.319> full<00:44:12.720> width<00:44:13.079> of 00:44:13.190 --> 00:44:13.200 align:start position:0% the elements extend the full width of 00:44:13.200 --> 00:44:15.549 align:start position:0% the elements extend the full width of the<00:44:13.359> screen<00:44:14.240> or<00:44:14.520> rather<00:44:14.800> full<00:44:15.119> width<00:44:15.319> of<00:44:15.440> the 00:44:15.549 --> 00:44:15.559 align:start position:0% the screen or rather full width of the 00:44:15.559 --> 00:44:17.670 align:start position:0% the screen or rather full width of the container<00:44:16.240> so<00:44:16.520> now<00:44:16.760> everything<00:44:17.079> looks 00:44:17.670 --> 00:44:17.680 align:start position:0% container so now everything looks 00:44:17.680 --> 00:44:20.390 align:start position:0% container so now everything looks uniform<00:44:18.680> the<00:44:18.839> first<00:44:19.119> field<00:44:19.480> we<00:44:19.680> have<00:44:20.079> is<00:44:20.240> going 00:44:20.390 --> 00:44:20.400 align:start position:0% uniform the first field we have is going 00:44:20.400 --> 00:44:22.630 align:start position:0% uniform the first field we have is going to<00:44:20.520> be<00:44:20.640> a<00:44:20.800> name<00:44:21.079> field<00:44:21.960> we<00:44:22.079> can<00:44:22.240> change<00:44:22.520> the 00:44:22.630 --> 00:44:22.640 align:start position:0% to be a name field we can change the 00:44:22.640 --> 00:44:26.069 align:start position:0% to be a name field we can change the form<00:44:22.960> label<00:44:23.440> to<00:44:24.079> name<00:44:25.079> and<00:44:25.319> we<00:44:25.440> can<00:44:25.559> remove<00:44:25.839> the 00:44:26.069 --> 00:44:26.079 align:start position:0% form label to name and we can remove the 00:44:26.079 --> 00:44:28.670 align:start position:0% form label to name and we can remove the placeholder<00:44:27.079> but<00:44:27.480> rather<00:44:27.960> we<00:44:28.079> can<00:44:28.200> give<00:44:28.319> it<00:44:28.480> a 00:44:28.670 --> 00:44:28.680 align:start position:0% placeholder but rather we can give it a 00:44:28.680 --> 00:44:30.349 align:start position:0% placeholder but rather we can give it a type<00:44:29.160> is<00:44:29.359> equal<00:44:29.599> to 00:44:30.349 --> 00:44:30.359 align:start position:0% type is equal to 00:44:30.359 --> 00:44:34.829 align:start position:0% type is equal to text<00:44:31.359> and<00:44:31.800> a<00:44:32.119> class<00:44:32.520> name<00:44:33.160> equal<00:44:33.480> to<00:44:34.000> Shad 00:44:34.829 --> 00:44:34.839 align:start position:0% text and a class name equal to Shad 00:44:34.839 --> 00:44:37.390 align:start position:0% text and a class name equal to Shad input<00:44:35.839> if<00:44:35.960> we<00:44:36.119> save<00:44:36.480> this<00:44:36.720> it's<00:44:36.920> going<00:44:37.040> to<00:44:37.240> get 00:44:37.390 --> 00:44:37.400 align:start position:0% input if we save this it's going to get 00:44:37.400 --> 00:44:39.910 align:start position:0% input if we save this it's going to get this<00:44:37.599> beautiful<00:44:38.040> view<00:44:38.720> and<00:44:38.920> we<00:44:39.040> don't<00:44:39.359> need<00:44:39.760> a 00:44:39.910 --> 00:44:39.920 align:start position:0% this beautiful view and we don't need a 00:44:39.920 --> 00:44:42.829 align:start position:0% this beautiful view and we don't need a form<00:44:40.359> description<00:44:41.359> I<00:44:41.480> believe<00:44:41.760> a<00:44:42.000> title<00:44:42.559> or 00:44:42.829 --> 00:44:42.839 align:start position:0% form description I believe a title or 00:44:42.839 --> 00:44:45.630 align:start position:0% form description I believe a title or rather<00:44:43.040> a<00:44:43.200> label<00:44:43.800> is<00:44:44.160> enough<00:44:45.160> so<00:44:45.319> now<00:44:45.480> we're 00:44:45.630 --> 00:44:45.640 align:start position:0% rather a label is enough so now we're 00:44:45.640 --> 00:44:48.549 align:start position:0% rather a label is enough so now we're getting<00:44:45.960> closer<00:44:46.480> to<00:44:46.680> this<00:44:46.839> final<00:44:47.240> view<00:44:48.240> so 00:44:48.549 --> 00:44:48.559 align:start position:0% getting closer to this final view so 00:44:48.559 --> 00:44:50.710 align:start position:0% getting closer to this final view so let's<00:44:48.760> go<00:44:48.880> ahead<00:44:49.200> and<00:44:49.440> duplicate<00:44:50.200> this<00:44:50.359> form 00:44:50.710 --> 00:44:50.720 align:start position:0% let's go ahead and duplicate this form 00:44:50.720 --> 00:44:53.870 align:start position:0% let's go ahead and duplicate this form field<00:44:51.400> right<00:44:51.640> here<00:44:52.200> below<00:44:53.200> and<00:44:53.400> the<00:44:53.599> second 00:44:53.870 --> 00:44:53.880 align:start position:0% field right here below and the second 00:44:53.880 --> 00:44:56.510 align:start position:0% field right here below and the second one<00:44:54.119> is<00:44:54.280> going<00:44:54.480> to<00:44:54.839> say<00:44:55.359> username 00:44:56.510 --> 00:44:56.520 align:start position:0% one is going to say username 00:44:56.520 --> 00:44:59.109 align:start position:0% one is going to say username and<00:44:56.680> we<00:44:56.760> can<00:44:56.920> change<00:44:57.119> it<00:44:57.240> to<00:44:57.440> username<00:44:58.119> here<00:44:58.680> as 00:44:59.109 --> 00:44:59.119 align:start position:0% and we can change it to username here as 00:44:59.119 --> 00:45:02.390 align:start position:0% and we can change it to username here as well<00:45:00.119> that's<00:45:00.400> great<00:45:01.040> two<00:45:01.319> done<00:45:01.760> two<00:45:01.960> more<00:45:02.200> to 00:45:02.390 --> 00:45:02.400 align:start position:0% well that's great two done two more to 00:45:02.400 --> 00:45:05.630 align:start position:0% well that's great two done two more to go<00:45:03.079> let's<00:45:03.359> duplicate<00:45:03.760> it<00:45:03.960> two<00:45:04.160> more<00:45:04.480> times<00:45:05.440> the 00:45:05.630 --> 00:45:05.640 align:start position:0% go let's duplicate it two more times the 00:45:05.640 --> 00:45:09.430 align:start position:0% go let's duplicate it two more times the next<00:45:05.920> one<00:45:06.359> is<00:45:06.520> going<00:45:06.720> to<00:45:07.000> say<00:45:08.119> email<00:45:09.119> and<00:45:09.319> we 00:45:09.430 --> 00:45:09.440 align:start position:0% next one is going to say email and we 00:45:09.440 --> 00:45:12.270 align:start position:0% next one is going to say email and we can<00:45:09.599> say<00:45:09.880> email<00:45:10.359> here<00:45:11.359> as<00:45:11.480> well<00:45:11.640> as<00:45:11.760> change<00:45:12.119> the 00:45:12.270 --> 00:45:12.280 align:start position:0% can say email here as well as change the 00:45:12.280 --> 00:45:15.750 align:start position:0% can say email here as well as change the type<00:45:12.520> of<00:45:12.599> the<00:45:12.720> field<00:45:13.240> to<00:45:13.720> email<00:45:14.720> there<00:45:14.880> we<00:45:15.079> go 00:45:15.750 --> 00:45:15.760 align:start position:0% type of the field to email there we go 00:45:15.760 --> 00:45:17.630 align:start position:0% type of the field to email there we go and<00:45:15.920> the<00:45:16.119> last<00:45:16.359> one<00:45:16.640> is<00:45:16.760> going<00:45:16.960> to<00:45:17.200> of<00:45:17.359> course 00:45:17.630 --> 00:45:17.640 align:start position:0% and the last one is going to of course 00:45:17.640 --> 00:45:20.150 align:start position:0% and the last one is going to of course be<00:45:17.880> the<00:45:18.119> password<00:45:18.880> so<00:45:19.040> let's<00:45:19.240> change<00:45:19.559> this<00:45:19.720> to 00:45:20.150 --> 00:45:20.160 align:start position:0% be the password so let's change this to 00:45:20.160 --> 00:45:24.069 align:start position:0% be the password so let's change this to password<00:45:21.160> type<00:45:21.559> password<00:45:22.160> as<00:45:22.400> well<00:45:23.359> and<00:45:23.640> say 00:45:24.069 --> 00:45:24.079 align:start position:0% password type password as well and say 00:45:24.079 --> 00:45:27.069 align:start position:0% password type password as well and say password<00:45:24.640> here<00:45:25.240> so<00:45:25.480> now<00:45:25.960> once<00:45:26.119> we<00:45:26.280> type<00:45:26.599> here 00:45:27.069 --> 00:45:27.079 align:start position:0% password here so now once we type here 00:45:27.079 --> 00:45:29.190 align:start position:0% password here so now once we type here it's<00:45:27.280> actually<00:45:27.559> going<00:45:27.720> to<00:45:27.839> be<00:45:28.040> dots<00:45:28.680> meaning 00:45:29.190 --> 00:45:29.200 align:start position:0% it's actually going to be dots meaning 00:45:29.200 --> 00:45:31.710 align:start position:0% it's actually going to be dots meaning it's<00:45:29.680> hidden<00:45:30.680> and<00:45:30.920> finally<00:45:31.240> we<00:45:31.359> need<00:45:31.559> a 00:45:31.710 --> 00:45:31.720 align:start position:0% it's hidden and finally we need a 00:45:31.720 --> 00:45:33.190 align:start position:0% it's hidden and finally we need a beautiful<00:45:32.160> button<00:45:32.520> that's<00:45:32.680> going<00:45:32.839> to<00:45:32.960> allow 00:45:33.190 --> 00:45:33.200 align:start position:0% beautiful button that's going to allow 00:45:33.200 --> 00:45:35.990 align:start position:0% beautiful button that's going to allow us<00:45:33.319> to<00:45:33.480> submit<00:45:33.839> the<00:45:34.000> form<00:45:34.640> so<00:45:35.079> let's<00:45:35.359> give<00:45:35.640> this 00:45:35.990 --> 00:45:36.000 align:start position:0% us to submit the form so let's give this 00:45:36.000 --> 00:45:40.309 align:start position:0% us to submit the form so let's give this button<00:45:36.400> type<00:45:36.680> submit<00:45:37.440> a<00:45:37.760> class<00:45:38.160> name<00:45:39.040> equal<00:45:39.359> to 00:45:40.309 --> 00:45:40.319 align:start position:0% button type submit a class name equal to 00:45:40.319 --> 00:45:43.270 align:start position:0% button type submit a class name equal to Shad<00:45:41.040> dasb<00:45:41.400> button<00:45:41.960> undor 00:45:43.270 --> 00:45:43.280 align:start position:0% Shad dasb button undor 00:45:43.280 --> 00:45:46.190 align:start position:0% Shad dasb button undor primary<00:45:44.280> there<00:45:44.440> we<00:45:44.640> go<00:45:45.400> but<00:45:45.599> it's<00:45:45.760> not<00:45:45.960> always 00:45:46.190 --> 00:45:46.200 align:start position:0% primary there we go but it's not always 00:45:46.200 --> 00:45:48.670 align:start position:0% primary there we go but it's not always going<00:45:46.400> to<00:45:46.520> say<00:45:46.800> submit<00:45:47.800> sometimes<00:45:48.119> it<00:45:48.319> has<00:45:48.440> to 00:45:48.670 --> 00:45:48.680 align:start position:0% going to say submit sometimes it has to 00:45:48.680 --> 00:45:51.109 align:start position:0% going to say submit sometimes it has to load<00:45:49.280> meaning<00:45:49.720> we've<00:45:50.000> submitted<00:45:50.440> it<00:45:50.800> and<00:45:50.920> it's 00:45:51.109 --> 00:45:51.119 align:start position:0% load meaning we've submitted it and it's 00:45:51.119 --> 00:45:54.230 align:start position:0% load meaning we've submitted it and it's doing<00:45:51.480> its<00:45:51.760> action<00:45:52.760> so<00:45:53.160> what<00:45:53.280> we<00:45:53.440> can<00:45:53.599> do<00:45:53.960> is 00:45:54.230 --> 00:45:54.240 align:start position:0% doing its action so what we can do is 00:45:54.240 --> 00:45:57.910 align:start position:0% doing its action so what we can do is create<00:45:54.839> for<00:45:55.119> now<00:45:55.599> a<00:45:56.000> fake<00:45:56.319> field<00:45:57.040> called<00:45:57.480> is 00:45:57.910 --> 00:45:57.920 align:start position:0% create for now a fake field called is 00:45:57.920 --> 00:46:01.990 align:start position:0% create for now a fake field called is loading<00:45:58.920> so<00:45:59.240> const<00:45:59.800> is<00:46:00.400> loading<00:46:01.400> is<00:46:01.680> at<00:46:01.800> the 00:46:01.990 --> 00:46:02.000 align:start position:0% loading so const is loading is at the 00:46:02.000 --> 00:46:04.750 align:start position:0% loading so const is loading is at the start<00:46:02.359> going<00:46:02.520> to<00:46:02.680> be<00:46:02.800> set<00:46:03.079> to<00:46:03.359> true<00:46:04.200> and<00:46:04.400> now<00:46:04.640> if 00:46:04.750 --> 00:46:04.760 align:start position:0% start going to be set to true and now if 00:46:04.760 --> 00:46:07.829 align:start position:0% start going to be set to true and now if we<00:46:04.920> go<00:46:05.200> back<00:46:05.720> we<00:46:05.800> can<00:46:06.040> use<00:46:06.400> that<00:46:06.640> property<00:46:07.559> to 00:46:07.829 --> 00:46:07.839 align:start position:0% we go back we can use that property to 00:46:07.839 --> 00:46:11.829 align:start position:0% we go back we can use that property to make<00:46:08.040> some<00:46:08.280> Dynamic<00:46:08.920> changes<00:46:09.920> if<00:46:10.480> is<00:46:10.839> loading 00:46:11.829 --> 00:46:11.839 align:start position:0% make some Dynamic changes if is loading 00:46:11.839 --> 00:46:15.109 align:start position:0% make some Dynamic changes if is loading in<00:46:12.079> that<00:46:12.319> case<00:46:12.720> we<00:46:12.839> can<00:46:13.200> return<00:46:13.760> a<00:46:14.000> div<00:46:14.920> that's 00:46:15.109 --> 00:46:15.119 align:start position:0% in that case we can return a div that's 00:46:15.119 --> 00:46:18.510 align:start position:0% in that case we can return a div that's going<00:46:15.280> to<00:46:15.440> have<00:46:15.599> a<00:46:15.839> class<00:46:16.200> name<00:46:17.160> equal<00:46:17.480> to<00:46:17.720> flex 00:46:18.510 --> 00:46:18.520 align:start position:0% going to have a class name equal to flex 00:46:18.520 --> 00:46:21.829 align:start position:0% going to have a class name equal to flex Center<00:46:19.400> and<00:46:19.559> a<00:46:19.839> gap<00:46:20.040> of<00:46:20.400> two<00:46:21.400> between<00:46:21.720> the 00:46:21.829 --> 00:46:21.839 align:start position:0% Center and a gap of two between the 00:46:21.839 --> 00:46:23.710 align:start position:0% Center and a gap of two between the center<00:46:22.119> and<00:46:22.240> the<00:46:22.359> flex<00:46:22.640> you<00:46:22.760> need<00:46:22.880> to<00:46:23.000> have<00:46:23.160> a 00:46:23.710 --> 00:46:23.720 align:start position:0% center and the flex you need to have a 00:46:23.720 --> 00:46:27.430 align:start position:0% center and the flex you need to have a dash<00:46:24.720> and<00:46:25.119> here<00:46:25.559> we<00:46:25.880> can<00:46:26.000> say<00:46:26.200> loading<00:46:26.720> dot<00:46:27.040> dot 00:46:27.430 --> 00:46:27.440 align:start position:0% dash and here we can say loading dot dot 00:46:27.440 --> 00:46:30.309 align:start position:0% dash and here we can say loading dot dot dot<00:46:28.440> else<00:46:29.000> we're<00:46:29.200> going<00:46:29.359> to<00:46:29.480> render<00:46:30.000> something 00:46:30.309 --> 00:46:30.319 align:start position:0% dot else we're going to render something 00:46:30.319 --> 00:46:32.630 align:start position:0% dot else we're going to render something else<00:46:30.920> which<00:46:31.040> is<00:46:31.200> simply<00:46:31.599> a<00:46:31.800> text<00:46:32.280> that's<00:46:32.480> going 00:46:32.630 --> 00:46:32.640 align:start position:0% else which is simply a text that's going 00:46:32.640 --> 00:46:36.030 align:start position:0% else which is simply a text that's going to<00:46:32.839> say<00:46:33.480> sign<00:46:34.240> up<00:46:34.960> and<00:46:35.119> there<00:46:35.240> we<00:46:35.400> go<00:46:35.760> now<00:46:35.920> we 00:46:36.030 --> 00:46:36.040 align:start position:0% to say sign up and there we go now we 00:46:36.040 --> 00:46:37.990 align:start position:0% to say sign up and there we go now we can<00:46:36.160> see<00:46:36.359> loading<00:46:37.160> but<00:46:37.280> to<00:46:37.400> make<00:46:37.559> this<00:46:37.720> loading 00:46:37.990 --> 00:46:38.000 align:start position:0% can see loading but to make this loading 00:46:38.000 --> 00:46:40.190 align:start position:0% can see loading but to make this loading a<00:46:38.119> bit<00:46:38.280> more<00:46:38.480> interesting<00:46:39.400> let's<00:46:39.680> create<00:46:40.040> a 00:46:40.190 --> 00:46:40.200 align:start position:0% a bit more interesting let's create a 00:46:40.200 --> 00:46:43.950 align:start position:0% a bit more interesting let's create a new<00:46:40.440> component<00:46:41.160> called<00:46:42.000> loader<00:46:43.000> so<00:46:43.400> we<00:46:43.520> can<00:46:43.760> go 00:46:43.950 --> 00:46:43.960 align:start position:0% new component called loader so we can go 00:46:43.960 --> 00:46:46.030 align:start position:0% new component called loader so we can go to<00:46:44.160> our<00:46:44.400> components<00:46:45.240> and<00:46:45.400> create<00:46:45.680> a<00:46:45.839> new 00:46:46.030 --> 00:46:46.040 align:start position:0% to our components and create a new 00:46:46.040 --> 00:46:49.230 align:start position:0% to our components and create a new folder<00:46:46.480> within<00:46:46.839> there<00:46:47.400> called<00:46:48.079> shared<00:46:49.079> these 00:46:49.230 --> 00:46:49.240 align:start position:0% folder within there called shared these 00:46:49.240 --> 00:46:51.069 align:start position:0% folder within there called shared these are<00:46:49.440> components<00:46:49.920> that<00:46:49.960> are<00:46:50.079> shared<00:46:50.559> all 00:46:51.069 --> 00:46:51.079 align:start position:0% are components that are shared all 00:46:51.079 --> 00:46:53.790 align:start position:0% are components that are shared all across<00:46:51.480> our<00:46:52.000> application<00:46:53.000> within<00:46:53.280> it<00:46:53.520> we<00:46:53.640> can 00:46:53.790 --> 00:46:53.800 align:start position:0% across our application within it we can 00:46:53.800 --> 00:46:58.829 align:start position:0% across our application within it we can create<00:46:54.079> a<00:46:54.280> new<00:46:54.800> loader.<00:46:56.119> TSX<00:46:57.119> and<00:46:57.319> run 00:46:58.829 --> 00:46:58.839 align:start position:0% create a new loader. TSX and run 00:46:58.839 --> 00:47:01.870 align:start position:0% create a new loader. TSX and run rafc<00:46:59.839> within<00:47:00.280> here<00:47:00.680> we<00:47:00.800> can<00:47:01.000> wrap<00:47:01.480> everything 00:47:01.870 --> 00:47:01.880 align:start position:0% rafc within here we can wrap everything 00:47:01.880 --> 00:47:04.950 align:start position:0% rafc within here we can wrap everything in<00:47:02.040> a<00:47:02.520> div<00:47:03.520> that<00:47:03.880> div<00:47:04.160> is<00:47:04.280> going<00:47:04.440> to<00:47:04.599> have<00:47:04.720> a 00:47:04.950 --> 00:47:04.960 align:start position:0% in a div that div is going to have a 00:47:04.960 --> 00:47:08.750 align:start position:0% in a div that div is going to have a class<00:47:05.319> name<00:47:05.920> equal<00:47:06.240> to<00:47:06.520> flex<00:47:07.200> Center<00:47:07.880> and 00:47:08.750 --> 00:47:08.760 align:start position:0% class name equal to flex Center and 00:47:08.760 --> 00:47:12.069 align:start position:0% class name equal to flex Center and w-o<00:47:09.760> and<00:47:09.960> within<00:47:10.240> it<00:47:10.480> we<00:47:10.599> can<00:47:10.720> render<00:47:11.160> just<00:47:11.480> one 00:47:12.069 --> 00:47:12.079 align:start position:0% w-o and within it we can render just one 00:47:12.079 --> 00:47:15.510 align:start position:0% w-o and within it we can render just one self-closing<00:47:13.079> image<00:47:13.960> with<00:47:14.160> a<00:47:14.400> source<00:47:15.200> equal 00:47:15.510 --> 00:47:15.520 align:start position:0% self-closing image with a source equal 00:47:15.520 --> 00:47:20.589 align:start position:0% self-closing image with a source equal to<00:47:16.240> SL<00:47:16.839> assets<00:47:17.839> SL<00:47:18.400> ions<00:47:19.400> SL 00:47:20.589 --> 00:47:20.599 align:start position:0% to SL assets SL ions SL 00:47:20.599 --> 00:47:24.349 align:start position:0% to SL assets SL ions SL loader.<00:47:21.960> SVG<00:47:22.960> we<00:47:23.079> can<00:47:23.240> have<00:47:23.359> an<00:47:23.520> ALT<00:47:23.839> tag<00:47:24.079> of 00:47:24.349 --> 00:47:24.359 align:start position:0% loader. SVG we can have an ALT tag of 00:47:24.359 --> 00:47:26.870 align:start position:0% loader. SVG we can have an ALT tag of loader<00:47:25.359> we<00:47:25.480> can<00:47:25.599> have<00:47:25.839> have<00:47:25.920> a<00:47:26.119> width<00:47:26.440> of<00:47:26.599> about 00:47:26.870 --> 00:47:26.880 align:start position:0% loader we can have have a width of about 00:47:26.880 --> 00:47:29.150 align:start position:0% loader we can have have a width of about 24<00:47:27.640> and<00:47:27.839> a<00:47:28.079> height<00:47:28.440> of 00:47:29.150 --> 00:47:29.160 align:start position:0% 24 and a height of 00:47:29.160 --> 00:47:32.510 align:start position:0% 24 and a height of 24<00:47:30.160> now<00:47:30.440> if<00:47:30.559> we<00:47:30.720> go<00:47:31.000> back<00:47:31.160> to<00:47:31.319> our<00:47:31.480> signup<00:47:31.839> form 00:47:32.510 --> 00:47:32.520 align:start position:0% 24 now if we go back to our signup form 00:47:32.520 --> 00:47:35.510 align:start position:0% 24 now if we go back to our signup form we<00:47:32.599> can<00:47:32.800> call<00:47:33.240> our<00:47:33.480> self<00:47:33.920> closing<00:47:34.680> loader 00:47:35.510 --> 00:47:35.520 align:start position:0% we can call our self closing loader 00:47:35.520 --> 00:47:38.390 align:start position:0% we can call our self closing loader right<00:47:35.760> here<00:47:36.559> by<00:47:36.960> putting<00:47:37.240> it<00:47:37.480> here<00:47:38.079> and<00:47:38.240> then 00:47:38.390 --> 00:47:38.400 align:start position:0% right here by putting it here and then 00:47:38.400 --> 00:47:40.430 align:start position:0% right here by putting it here and then double<00:47:38.760> clicking<00:47:39.359> and<00:47:39.559> pressing<00:47:39.880> control<00:47:40.240> or 00:47:40.430 --> 00:47:40.440 align:start position:0% double clicking and pressing control or 00:47:40.440 --> 00:47:42.990 align:start position:0% double clicking and pressing control or command<00:47:40.839> space<00:47:41.480> to<00:47:41.839> import<00:47:42.160> it<00:47:42.359> from 00:47:42.990 --> 00:47:43.000 align:start position:0% command space to import it from 00:47:43.000 --> 00:47:45.270 align:start position:0% command space to import it from components<00:47:44.000> if<00:47:44.079> you<00:47:44.240> save<00:47:44.480> it<00:47:44.800> you<00:47:44.920> can<00:47:45.079> see 00:47:45.270 --> 00:47:45.280 align:start position:0% components if you save it you can see 00:47:45.280 --> 00:47:47.750 align:start position:0% components if you save it you can see this<00:47:45.440> loader<00:47:45.960> appear<00:47:46.400> right<00:47:46.640> here<00:47:47.160> which<00:47:47.319> is 00:47:47.750 --> 00:47:47.760 align:start position:0% this loader appear right here which is 00:47:47.760 --> 00:47:49.910 align:start position:0% this loader appear right here which is amazing<00:47:48.760> now<00:47:49.040> of<00:47:49.200> course<00:47:49.440> we're<00:47:49.640> not 00:47:49.910 --> 00:47:49.920 align:start position:0% amazing now of course we're not 00:47:49.920 --> 00:47:52.230 align:start position:0% amazing now of course we're not submitting<00:47:50.480> yet<00:47:50.839> so<00:47:51.040> what<00:47:51.160> we<00:47:51.280> can<00:47:51.440> do<00:47:51.960> is 00:47:52.230 --> 00:47:52.240 align:start position:0% submitting yet so what we can do is 00:47:52.240 --> 00:47:55.309 align:start position:0% submitting yet so what we can do is bring<00:47:52.720> this<00:47:53.280> is<00:47:53.520> loading<00:47:54.119> to<00:47:54.400> false<00:47:55.119> because 00:47:55.309 --> 00:47:55.319 align:start position:0% bring this is loading to false because 00:47:55.319 --> 00:47:56.790 align:start position:0% bring this is loading to false because we<00:47:55.480> haven't<00:47:55.680> haven't<00:47:55.920> yet<00:47:56.040> submitted<00:47:56.520> we<00:47:56.640> have 00:47:56.790 --> 00:47:56.800 align:start position:0% we haven't haven't yet submitted we have 00:47:56.800 --> 00:47:59.670 align:start position:0% we haven't haven't yet submitted we have nothing<00:47:57.079> to<00:47:57.240> load<00:47:58.240> and<00:47:58.440> now<00:47:58.960> we<00:47:59.160> have<00:47:59.400> our 00:47:59.670 --> 00:47:59.680 align:start position:0% nothing to load and now we have our 00:47:59.680 --> 00:48:01.750 align:start position:0% nothing to load and now we have our beautiful<00:48:00.240> form<00:48:00.800> that<00:48:00.920> you<00:48:01.000> can<00:48:01.160> see<00:48:01.520> right 00:48:01.750 --> 00:48:01.760 align:start position:0% beautiful form that you can see right 00:48:01.760 --> 00:48:04.030 align:start position:0% beautiful form that you can see right here<00:48:02.400> it<00:48:02.520> is<00:48:02.680> a<00:48:02.839> bit<00:48:03.079> wider<00:48:03.640> and<00:48:03.839> that's 00:48:04.030 --> 00:48:04.040 align:start position:0% here it is a bit wider and that's 00:48:04.040 --> 00:48:06.270 align:start position:0% here it is a bit wider and that's because<00:48:04.280> we<00:48:04.440> here<00:48:04.760> have<00:48:05.000> more<00:48:05.280> words<00:48:05.839> to<00:48:06.040> use 00:48:06.270 --> 00:48:06.280 align:start position:0% because we here have more words to use 00:48:06.280 --> 00:48:08.750 align:start position:0% because we here have more words to use snapgram<00:48:06.960> please<00:48:07.240> enter<00:48:07.520> your<00:48:07.760> details<00:48:08.599> let's 00:48:08.750 --> 00:48:08.760 align:start position:0% snapgram please enter your details let's 00:48:08.760 --> 00:48:11.750 align:start position:0% snapgram please enter your details let's see<00:48:08.960> what<00:48:09.119> do<00:48:09.240> we<00:48:09.440> have<00:48:09.800> here<00:48:10.680> to<00:48:10.880> use 00:48:11.750 --> 00:48:11.760 align:start position:0% see what do we have here to use 00:48:11.760 --> 00:48:14.230 align:start position:0% see what do we have here to use snapgram<00:48:12.760> okay<00:48:13.079> let's<00:48:13.280> be<00:48:13.480> nice<00:48:13.760> and<00:48:13.920> say 00:48:14.230 --> 00:48:14.240 align:start position:0% snapgram okay let's be nice and say 00:48:14.240 --> 00:48:16.470 align:start position:0% snapgram okay let's be nice and say please<00:48:14.680> enter<00:48:15.040> your<00:48:15.280> details<00:48:16.119> which<00:48:16.240> is<00:48:16.359> going 00:48:16.470 --> 00:48:16.480 align:start position:0% please enter your details which is going 00:48:16.480 --> 00:48:19.990 align:start position:0% please enter your details which is going to<00:48:16.640> make<00:48:16.760> her<00:48:16.920> form<00:48:17.200> a<00:48:17.359> bit<00:48:17.559> wider<00:48:18.559> great<00:48:19.559> and 00:48:19.990 --> 00:48:20.000 align:start position:0% to make her form a bit wider great and 00:48:20.000 --> 00:48:22.069 align:start position:0% to make her form a bit wider great and now<00:48:20.240> that<00:48:20.400> we<00:48:20.520> have<00:48:20.760> all<00:48:20.920> of<00:48:21.119> those<00:48:21.319> fields<00:48:21.920> we 00:48:22.069 --> 00:48:22.079 align:start position:0% now that we have all of those fields we 00:48:22.079 --> 00:48:24.670 align:start position:0% now that we have all of those fields we have<00:48:22.200> to<00:48:22.400> figure<00:48:22.720> out<00:48:23.280> how<00:48:23.520> to<00:48:23.960> actually 00:48:24.670 --> 00:48:24.680 align:start position:0% have to figure out how to actually 00:48:24.680 --> 00:48:26.990 align:start position:0% have to figure out how to actually submit<00:48:25.160> them<00:48:26.119> but<00:48:26.319> before<00:48:26.680> that<00:48:26.839> we're 00:48:26.990 --> 00:48:27.000 align:start position:0% submit them but before that we're 00:48:27.000 --> 00:48:28.950 align:start position:0% submit them but before that we're missing<00:48:27.400> just<00:48:27.680> one<00:48:27.960> additional<00:48:28.400> piece<00:48:28.559> of 00:48:28.950 --> 00:48:28.960 align:start position:0% missing just one additional piece of 00:48:28.960 --> 00:48:31.990 align:start position:0% missing just one additional piece of information<00:48:29.960> which<00:48:30.160> is<00:48:30.839> the<00:48:31.040> link<00:48:31.480> to<00:48:31.680> go<00:48:31.839> to 00:48:31.990 --> 00:48:32.000 align:start position:0% information which is the link to go to 00:48:32.000 --> 00:48:34.270 align:start position:0% information which is the link to go to the<00:48:32.160> login<00:48:32.640> as<00:48:32.839> well<00:48:33.280> in<00:48:33.440> case<00:48:33.720> we<00:48:33.880> already 00:48:34.270 --> 00:48:34.280 align:start position:0% the login as well in case we already 00:48:34.280 --> 00:48:37.069 align:start position:0% the login as well in case we already have<00:48:34.440> an<00:48:34.640> account<00:48:35.559> so<00:48:36.000> right<00:48:36.200> here<00:48:36.480> below<00:48:36.880> this 00:48:37.069 --> 00:48:37.079 align:start position:0% have an account so right here below this 00:48:37.079 --> 00:48:39.990 align:start position:0% have an account so right here below this button<00:48:37.720> we<00:48:37.839> can<00:48:38.040> create<00:48:38.319> a<00:48:38.520> P<00:48:38.839> tag<00:48:39.839> that's 00:48:39.990 --> 00:48:40.000 align:start position:0% button we can create a P tag that's 00:48:40.000 --> 00:48:43.549 align:start position:0% button we can create a P tag that's going<00:48:40.200> to<00:48:40.319> have<00:48:40.480> a<00:48:40.720> class<00:48:41.200> name<00:48:42.200> equal<00:48:42.559> to 00:48:43.549 --> 00:48:43.559 align:start position:0% going to have a class name equal to 00:48:43.559 --> 00:48:49.390 align:start position:0% going to have a class name equal to text-<00:48:44.720> small-<00:48:45.760> regular<00:48:46.760> text- 00:48:49.390 --> 00:48:49.400 align:start position:0% text- small- regular text- 00:48:49.400 --> 00:48:52.789 align:start position:0% text- small- regular text- light-2<00:48:50.400> and<00:48:50.680> text-<00:48:51.240> center<00:48:51.960> and<00:48:52.119> margin<00:48:52.559> top 00:48:52.789 --> 00:48:52.799 align:start position:0% light-2 and text- center and margin top 00:48:52.799 --> 00:48:54.789 align:start position:0% light-2 and text- center and margin top of<00:48:52.960> two<00:48:53.480> so<00:48:53.640> that's<00:48:53.799> going<00:48:53.960> to<00:48:54.160> provide<00:48:54.440> this 00:48:54.789 --> 00:48:54.799 align:start position:0% of two so that's going to provide this 00:48:54.799 --> 00:48:58.030 align:start position:0% of two so that's going to provide this nice<00:48:55.040> centered<00:48:55.640> text<00:48:56.480> we<00:48:56.599> can<00:48:56.760> say<00:48:57.079> already 00:48:58.030 --> 00:48:58.040 align:start position:0% nice centered text we can say already 00:48:58.040 --> 00:48:59.390 align:start position:0% nice centered text we can say already have<00:48:58.319> an 00:48:59.390 --> 00:48:59.400 align:start position:0% have an 00:48:59.400 --> 00:49:01.870 align:start position:0% have an account<00:49:00.400> and<00:49:00.599> if<00:49:00.799> that<00:49:00.920> is<00:49:01.079> the<00:49:01.240> case<00:49:01.599> we<00:49:01.720> can 00:49:01.870 --> 00:49:01.880 align:start position:0% account and if that is the case we can 00:49:01.880 --> 00:49:05.589 align:start position:0% account and if that is the case we can render<00:49:02.400> a<00:49:02.640> link<00:49:03.520> component<00:49:04.520> this<00:49:04.720> link<00:49:05.280> has<00:49:05.440> to 00:49:05.589 --> 00:49:05.599 align:start position:0% render a link component this link has to 00:49:05.599 --> 00:49:08.870 align:start position:0% render a link component this link has to be<00:49:05.760> imported<00:49:06.520> from<00:49:07.400> we<00:49:07.559> don't<00:49:07.799> have<00:49:07.960> it<00:49:08.240> here 00:49:08.870 --> 00:49:08.880 align:start position:0% be imported from we don't have it here 00:49:08.880 --> 00:49:11.549 align:start position:0% be imported from we don't have it here but<00:49:09.119> it<00:49:09.240> should<00:49:09.440> be<00:49:09.599> coming<00:49:09.960> from<00:49:10.920> react 00:49:11.549 --> 00:49:11.559 align:start position:0% but it should be coming from react 00:49:11.559 --> 00:49:13.910 align:start position:0% but it should be coming from react router<00:49:12.000> Dom<00:49:12.640> so<00:49:12.880> right<00:49:13.040> here<00:49:13.200> at<00:49:13.319> the<00:49:13.520> top<00:49:13.799> we 00:49:13.910 --> 00:49:13.920 align:start position:0% router Dom so right here at the top we 00:49:13.920 --> 00:49:18.870 align:start position:0% router Dom so right here at the top we can<00:49:14.040> say<00:49:14.319> import<00:49:14.960> link<00:49:15.960> from<00:49:16.960> react<00:49:17.760> router 00:49:18.870 --> 00:49:18.880 align:start position:0% can say import link from react router 00:49:18.880 --> 00:49:22.549 align:start position:0% can say import link from react router Dom<00:49:19.880> and<00:49:20.079> now<00:49:20.480> if<00:49:20.599> we<00:49:20.799> go<00:49:21.240> down<00:49:22.240> this<00:49:22.359> is 00:49:22.549 --> 00:49:22.559 align:start position:0% Dom and now if we go down this is 00:49:22.559 --> 00:49:24.549 align:start position:0% Dom and now if we go down this is looking<00:49:22.920> good<00:49:23.599> and<00:49:23.760> what<00:49:23.880> is<00:49:24.000> this<00:49:24.119> link<00:49:24.400> going 00:49:24.549 --> 00:49:24.559 align:start position:0% looking good and what is this link going 00:49:24.559 --> 00:49:27.109 align:start position:0% looking good and what is this link going to<00:49:24.760> say<00:49:25.359> well<00:49:25.599> well<00:49:25.760> it's<00:49:25.880> going<00:49:26.040> to<00:49:26.280> point<00:49:26.839> to 00:49:27.109 --> 00:49:27.119 align:start position:0% to say well well it's going to point to 00:49:27.119 --> 00:49:30.270 align:start position:0% to say well well it's going to point to forward<00:49:27.599> SL<00:49:28.040> sign<00:49:28.480> in<00:49:29.480> it's<00:49:29.640> going<00:49:29.799> to<00:49:29.920> have<00:49:30.040> a 00:49:30.270 --> 00:49:30.280 align:start position:0% forward SL sign in it's going to have a 00:49:30.280 --> 00:49:33.549 align:start position:0% forward SL sign in it's going to have a class<00:49:30.640> name<00:49:31.200> of<00:49:31.520> text- 00:49:33.549 --> 00:49:33.559 align:start position:0% class name of text- 00:49:33.559 --> 00:49:37.470 align:start position:0% class name of text- primary<00:49:34.559> and<00:49:34.799> it's<00:49:34.960> going<00:49:35.160> to<00:49:35.359> say<00:49:35.880> log<00:49:36.480> in 00:49:37.470 --> 00:49:37.480 align:start position:0% primary and it's going to say log in 00:49:37.480 --> 00:49:39.750 align:start position:0% primary and it's going to say log in there<00:49:37.640> we<00:49:37.799> go<00:49:38.160> let's<00:49:38.400> style<00:49:38.680> it<00:49:38.799> a<00:49:38.920> bit<00:49:39.119> further 00:49:39.750 --> 00:49:39.760 align:start position:0% there we go let's style it a bit further 00:49:39.760 --> 00:49:42.630 align:start position:0% there we go let's style it a bit further by<00:49:39.960> giving<00:49:40.240> it<00:49:40.480> a<00:49:40.720> text<00:49:41.040> primary<00:49:41.559> 500<00:49:42.400> which<00:49:42.520> is 00:49:42.630 --> 00:49:42.640 align:start position:0% by giving it a text primary 500 which is 00:49:42.640 --> 00:49:46.910 align:start position:0% by giving it a text primary 500 which is the<00:49:42.760> shade<00:49:43.040> of<00:49:43.160> the<00:49:43.319> color<00:49:44.319> text-<00:49:45.240> small-<00:49:46.240> semi 00:49:46.910 --> 00:49:46.920 align:start position:0% the shade of the color text- small- semi 00:49:46.920 --> 00:49:51.030 align:start position:0% the shade of the color text- small- semi bold<00:49:47.920> and<00:49:48.160> finally<00:49:48.680> a<00:49:48.839> margin<00:49:49.280> left<00:49:49.799> of 00:49:51.030 --> 00:49:51.040 align:start position:0% bold and finally a margin left of 00:49:51.040 --> 00:49:53.950 align:start position:0% bold and finally a margin left of one<00:49:52.040> so<00:49:52.280> now<00:49:52.559> it's<00:49:52.720> looking<00:49:53.119> great<00:49:53.720> and<00:49:53.839> it's 00:49:53.950 --> 00:49:53.960 align:start position:0% one so now it's looking great and it's 00:49:53.960 --> 00:49:55.750 align:start position:0% one so now it's looking great and it's going<00:49:54.079> to<00:49:54.240> redirect<00:49:54.720> us<00:49:54.880> to<00:49:55.000> the<00:49:55.160> sign<00:49:55.359> in<00:49:55.559> in 00:49:55.750 --> 00:49:55.760 align:start position:0% going to redirect us to the sign in in 00:49:55.760 --> 00:49:58.990 align:start position:0% going to redirect us to the sign in in form<00:49:56.559> which<00:49:56.799> doesn't<00:49:57.359> exist<00:49:57.880> yet<00:49:58.640> we're<00:49:58.839> going 00:49:58.990 --> 00:49:59.000 align:start position:0% form which doesn't exist yet we're going 00:49:59.000 --> 00:50:02.069 align:start position:0% form which doesn't exist yet we're going to<00:49:59.240> create<00:49:59.559> it<00:50:00.040> as<00:50:00.319> soon<00:50:00.920> as<00:50:01.119> we<00:50:01.319> implement<00:50:01.880> the 00:50:02.069 --> 00:50:02.079 align:start position:0% to create it as soon as we implement the 00:50:02.079 --> 00:50:04.990 align:start position:0% to create it as soon as we implement the functionality<00:50:02.960> to<00:50:03.280> actually<00:50:03.799> log<00:50:04.160> our<00:50:04.440> users 00:50:04.990 --> 00:50:05.000 align:start position:0% functionality to actually log our users 00:50:05.000 --> 00:50:07.230 align:start position:0% functionality to actually log our users in<00:50:05.960> that's<00:50:06.200> definitely<00:50:06.640> the<00:50:06.760> first<00:50:06.960> thing<00:50:07.079> we 00:50:07.230 --> 00:50:07.240 align:start position:0% in that's definitely the first thing we 00:50:07.240 --> 00:50:09.710 align:start position:0% in that's definitely the first thing we have<00:50:07.319> to<00:50:07.480> do<00:50:07.839> right<00:50:08.559> so<00:50:08.880> how<00:50:09.000> is<00:50:09.160> that<00:50:09.359> going<00:50:09.520> to 00:50:09.710 --> 00:50:09.720 align:start position:0% have to do right so how is that going to 00:50:09.720 --> 00:50:12.030 align:start position:0% have to do right so how is that going to work<00:50:10.440> well<00:50:10.799> everything<00:50:11.119> starts<00:50:11.680> with<00:50:11.839> a 00:50:12.030 --> 00:50:12.040 align:start position:0% work well everything starts with a 00:50:12.040 --> 00:50:15.270 align:start position:0% work well everything starts with a button<00:50:12.520> that<00:50:12.720> has<00:50:12.839> a<00:50:13.119> type<00:50:13.480> of<00:50:14.000> submit<00:50:15.000> and 00:50:15.270 --> 00:50:15.280 align:start position:0% button that has a type of submit and 00:50:15.280 --> 00:50:17.510 align:start position:0% button that has a type of submit and once<00:50:15.480> we<00:50:15.680> submit<00:50:16.040> it<00:50:16.440> it's<00:50:16.599> going<00:50:16.760> to<00:50:17.000> submit 00:50:17.510 --> 00:50:17.520 align:start position:0% once we submit it it's going to submit 00:50:17.520 --> 00:50:21.670 align:start position:0% once we submit it it's going to submit the<00:50:17.720> entire<00:50:18.200> form<00:50:19.160> right<00:50:19.960> here<00:50:20.960> that<00:50:21.160> form<00:50:21.559> is 00:50:21.670 --> 00:50:21.680 align:start position:0% the entire form right here that form is 00:50:21.680 --> 00:50:24.270 align:start position:0% the entire form right here that form is going<00:50:21.880> to<00:50:22.079> call<00:50:22.599> the<00:50:22.799> handle<00:50:23.200> submit<00:50:23.640> function 00:50:24.270 --> 00:50:24.280 align:start position:0% going to call the handle submit function 00:50:24.280 --> 00:50:26.750 align:start position:0% going to call the handle submit function which<00:50:24.440> we<00:50:24.599> have<00:50:24.920> here<00:50:25.880> and<00:50:26.040> then<00:50:26.240> the<00:50:26.359> only 00:50:26.750 --> 00:50:26.760 align:start position:0% which we have here and then the only 00:50:26.760 --> 00:50:29.230 align:start position:0% which we have here and then the only question<00:50:27.119> is<00:50:27.799> what<00:50:27.960> do<00:50:28.079> we<00:50:28.200> want<00:50:28.280> to<00:50:28.440> do<00:50:28.760> on 00:50:29.230 --> 00:50:29.240 align:start position:0% question is what do we want to do on 00:50:29.240 --> 00:50:32.030 align:start position:0% question is what do we want to do on submit<00:50:30.240> and<00:50:30.400> the<00:50:30.559> simple<00:50:30.920> answer<00:50:31.280> is<00:50:31.720> we<00:50:31.880> want 00:50:32.030 --> 00:50:32.040 align:start position:0% submit and the simple answer is we want 00:50:32.040 --> 00:50:36.190 align:start position:0% submit and the simple answer is we want to<00:50:32.760> create<00:50:33.720> the<00:50:34.319> user<00:50:35.319> and<00:50:35.680> that<00:50:35.839> usually 00:50:36.190 --> 00:50:36.200 align:start position:0% to create the user and that usually 00:50:36.200 --> 00:50:38.870 align:start position:0% to create the user and that usually looks<00:50:36.440> something<00:50:36.760> like<00:50:37.000> this<00:50:37.599> we<00:50:37.760> say<00:50:38.160> const 00:50:38.870 --> 00:50:38.880 align:start position:0% looks something like this we say const 00:50:38.880 --> 00:50:43.670 align:start position:0% looks something like this we say const new<00:50:39.160> user<00:50:40.000> is<00:50:40.240> equal<00:50:40.559> to<00:50:41.200> a<00:50:41.559> wait<00:50:42.559> why<00:50:42.799> a<00:50:43.040> wait 00:50:43.670 --> 00:50:43.680 align:start position:0% new user is equal to a wait why a wait 00:50:43.680 --> 00:50:45.750 align:start position:0% new user is equal to a wait why a wait because<00:50:43.960> usually<00:50:44.480> creating<00:50:44.839> a<00:50:44.960> user<00:50:45.480> takes 00:50:45.750 --> 00:50:45.760 align:start position:0% because usually creating a user takes 00:50:45.760 --> 00:50:48.349 align:start position:0% because usually creating a user takes some<00:50:46.040> time<00:50:46.839> it<00:50:46.960> is<00:50:47.079> an<00:50:47.359> asynchronous<00:50:48.119> action 00:50:48.349 --> 00:50:48.359 align:start position:0% some time it is an asynchronous action 00:50:48.359 --> 00:50:50.430 align:start position:0% some time it is an asynchronous action in<00:50:48.480> the<00:50:48.640> database<00:50:49.520> which<00:50:49.680> means<00:50:50.000> we<00:50:50.119> have<00:50:50.240> to 00:50:50.430 --> 00:50:50.440 align:start position:0% in the database which means we have to 00:50:50.440 --> 00:50:53.270 align:start position:0% in the database which means we have to specify<00:50:50.960> this<00:50:51.280> as<00:50:51.359> an<00:50:51.559> async<00:50:52.160> function<00:50:53.160> and 00:50:53.270 --> 00:50:53.280 align:start position:0% specify this as an async function and 00:50:53.280 --> 00:50:54.910 align:start position:0% specify this as an async function and then<00:50:53.480> usually<00:50:54.000> the<00:50:54.119> function<00:50:54.400> to<00:50:54.559> create<00:50:54.799> a 00:50:54.910 --> 00:50:54.920 align:start position:0% then usually the function to create a 00:50:54.920 --> 00:50:59.589 align:start position:0% then usually the function to create a user<00:50:55.440> is<00:50:55.599> called<00:50:56.319> create<00:50:57.319> user<00:50:58.319> account<00:50:59.280> to 00:50:59.589 --> 00:50:59.599 align:start position:0% user is called create user account to 00:50:59.599 --> 00:51:02.789 align:start position:0% user is called create user account to which<00:50:59.920> we<00:51:00.040> want<00:51:00.160> to<00:51:00.400> pass<00:51:00.760> the<00:51:01.280> values<00:51:02.280> but<00:51:02.680> as 00:51:02.789 --> 00:51:02.799 align:start position:0% which we want to pass the values but as 00:51:02.799 --> 00:51:04.670 align:start position:0% which we want to pass the values but as you<00:51:02.880> can<00:51:03.000> see<00:51:03.280> we<00:51:03.480> don't<00:51:03.720> yet<00:51:04.000> have<00:51:04.240> the<00:51:04.400> create 00:51:04.670 --> 00:51:04.680 align:start position:0% you can see we don't yet have the create 00:51:04.680 --> 00:51:06.630 align:start position:0% you can see we don't yet have the create user<00:51:05.040> account<00:51:05.359> function<00:51:05.880> so<00:51:06.040> let's<00:51:06.280> comment 00:51:06.630 --> 00:51:06.640 align:start position:0% user account function so let's comment 00:51:06.640 --> 00:51:09.630 align:start position:0% user account function so let's comment this<00:51:06.799> out<00:51:07.559> and<00:51:07.720> we<00:51:07.839> have<00:51:08.079> no<00:51:08.319> idea<00:51:09.280> where<00:51:09.480> is 00:51:09.630 --> 00:51:09.640 align:start position:0% this out and we have no idea where is 00:51:09.640 --> 00:51:11.870 align:start position:0% this out and we have no idea where is this<00:51:09.799> event<00:51:10.119> coming<00:51:10.440> from<00:51:11.119> how<00:51:11.480> are<00:51:11.599> we<00:51:11.720> going 00:51:11.870 --> 00:51:11.880 align:start position:0% this event coming from how are we going 00:51:11.880 --> 00:51:15.150 align:start position:0% this event coming from how are we going to<00:51:12.079> create<00:51:12.480> our<00:51:12.720> user<00:51:13.720> and<00:51:13.960> thankfully<00:51:14.359> for<00:51:14.559> us 00:51:15.150 --> 00:51:15.160 align:start position:0% to create our user and thankfully for us 00:51:15.160 --> 00:51:17.390 align:start position:0% to create our user and thankfully for us this<00:51:15.280> is<00:51:15.559> where<00:51:15.839> aight<00:51:16.400> comes<00:51:16.640> in<00:51:17.160> they're 00:51:17.390 --> 00:51:17.400 align:start position:0% this is where aight comes in they're 00:51:17.400 --> 00:51:19.670 align:start position:0% this is where aight comes in they're going<00:51:17.559> to<00:51:17.720> help<00:51:18.000> us<00:51:18.400> with<00:51:18.720> databases 00:51:19.670 --> 00:51:19.680 align:start position:0% going to help us with databases 00:51:19.680 --> 00:51:23.670 align:start position:0% going to help us with databases functions<00:51:20.440> storage<00:51:21.359> but<00:51:21.640> in<00:51:21.920> this<00:51:22.160> case<00:51:22.880> o<00:51:23.520> as 00:51:23.670 --> 00:51:23.680 align:start position:0% functions storage but in this case o as 00:51:23.680 --> 00:51:26.230 align:start position:0% functions storage but in this case o as we<00:51:23.920> actually<00:51:24.240> have<00:51:24.400> to<00:51:24.559> create<00:51:24.839> our<00:51:24.960> users 00:51:26.230 --> 00:51:26.240 align:start position:0% we actually have to create our users 00:51:26.240 --> 00:51:28.030 align:start position:0% we actually have to create our users and<00:51:26.480> as<00:51:26.599> I've<00:51:26.760> told<00:51:26.920> you<00:51:27.040> at<00:51:27.160> the<00:51:27.359> start<00:51:27.799> we'll 00:51:28.030 --> 00:51:28.040 align:start position:0% and as I've told you at the start we'll 00:51:28.040 --> 00:51:31.670 align:start position:0% and as I've told you at the start we'll be<00:51:28.200> using<00:51:28.720> ID's<00:51:29.520> Cloud<00:51:30.160> platform<00:51:31.160> click<00:51:31.480> the 00:51:31.670 --> 00:51:31.680 align:start position:0% be using ID's Cloud platform click the 00:51:31.680 --> 00:51:33.390 align:start position:0% be using ID's Cloud platform click the special<00:51:32.160> ight<00:51:32.640> Cloud<00:51:32.920> Link<00:51:33.119> in<00:51:33.200> the 00:51:33.390 --> 00:51:33.400 align:start position:0% special ight Cloud Link in the 00:51:33.400 --> 00:51:35.109 align:start position:0% special ight Cloud Link in the description<00:51:34.040> that's<00:51:34.240> going<00:51:34.400> to<00:51:34.520> allow<00:51:34.760> you<00:51:34.880> to 00:51:35.109 --> 00:51:35.119 align:start position:0% description that's going to allow you to 00:51:35.119 --> 00:51:38.190 align:start position:0% description that's going to allow you to sign<00:51:35.400> in<00:51:36.200> and<00:51:36.480> follow<00:51:36.839> along<00:51:37.200> with<00:51:37.359> this<00:51:37.599> video 00:51:38.190 --> 00:51:38.200 align:start position:0% sign in and follow along with this video 00:51:38.200 --> 00:51:41.829 align:start position:0% sign in and follow along with this video seamlessly<00:51:39.200> and<00:51:39.400> then<00:51:39.839> sign<00:51:40.160> in<00:51:40.520> or<00:51:40.839> sign<00:51:41.119> up<00:51:41.680> I 00:51:41.829 --> 00:51:41.839 align:start position:0% seamlessly and then sign in or sign up I 00:51:41.839 --> 00:51:44.870 align:start position:0% seamlessly and then sign in or sign up I recommend<00:51:42.359> with<00:51:42.760> GitHub<00:51:43.760> and<00:51:44.040> once<00:51:44.200> you're<00:51:44.400> in 00:51:44.870 --> 00:51:44.880 align:start position:0% recommend with GitHub and once you're in 00:51:44.880 --> 00:51:47.069 align:start position:0% recommend with GitHub and once you're in you'll<00:51:45.079> be<00:51:45.240> able<00:51:45.440> to<00:51:45.640> create<00:51:46.040> your<00:51:46.319> first 00:51:47.069 --> 00:51:47.079 align:start position:0% you'll be able to create your first 00:51:47.079 --> 00:51:49.710 align:start position:0% you'll be able to create your first project<00:51:48.079> let's<00:51:48.319> do<00:51:48.640> something<00:51:49.000> like 00:51:49.710 --> 00:51:49.720 align:start position:0% project let's do something like 00:51:49.720 --> 00:51:51.309 align:start position:0% project let's do something like jmore 00:51:51.309 --> 00:51:51.319 align:start position:0% jmore 00:51:51.319 --> 00:51:53.510 align:start position:0% jmore snapgram<00:51:52.319> of<00:51:52.480> course<00:51:52.760> this<00:51:52.880> is<00:51:53.000> now<00:51:53.240> going<00:51:53.400> to 00:51:53.510 --> 00:51:53.520 align:start position:0% snapgram of course this is now going to 00:51:53.520 --> 00:51:56.030 align:start position:0% snapgram of course this is now going to be<00:51:53.720> taken<00:51:54.200> by<00:51:54.400> me<00:51:55.040> but<00:51:55.440> whatever<00:51:55.720> name<00:51:55.880> you 00:51:56.030 --> 00:51:56.040 align:start position:0% be taken by me but whatever name you 00:51:56.040 --> 00:51:58.789 align:start position:0% be taken by me but whatever name you decide<00:51:56.359> to<00:51:56.520> take<00:51:57.119> definitely<00:51:57.640> append<00:51:58.040> JSM<00:51:58.680> in 00:51:58.789 --> 00:51:58.799 align:start position:0% decide to take definitely append JSM in 00:51:58.799 --> 00:52:02.910 align:start position:0% decide to take definitely append JSM in front<00:51:59.040> of<00:51:59.400> it<00:52:00.400> and<00:52:00.559> then<00:52:00.799> click 00:52:02.910 --> 00:52:02.920 align:start position:0% front of it and then click 00:52:02.920 --> 00:52:06.230 align:start position:0% front of it and then click create<00:52:03.920> there<00:52:04.079> we<00:52:04.280> go<00:52:04.680> our<00:52:04.880> JSM<00:52:05.319> snapgram<00:52:06.079> has 00:52:06.230 --> 00:52:06.240 align:start position:0% create there we go our JSM snapgram has 00:52:06.240 --> 00:52:08.109 align:start position:0% create there we go our JSM snapgram has been<00:52:06.480> created<00:52:07.160> and<00:52:07.400> here<00:52:07.640> we<00:52:07.760> have<00:52:07.920> our 00:52:08.109 --> 00:52:08.119 align:start position:0% been created and here we have our 00:52:08.119 --> 00:52:10.990 align:start position:0% been created and here we have our getting<00:52:08.440> started<00:52:09.119> guide<00:52:10.119> but<00:52:10.359> thankfully<00:52:10.880> you 00:52:10.990 --> 00:52:11.000 align:start position:0% getting started guide but thankfully you 00:52:11.000 --> 00:52:12.829 align:start position:0% getting started guide but thankfully you won't<00:52:11.319> have<00:52:11.440> to<00:52:11.559> follow<00:52:11.920> it<00:52:12.280> because<00:52:12.520> you're 00:52:12.829 --> 00:52:12.839 align:start position:0% won't have to follow it because you're 00:52:12.839 --> 00:52:14.510 align:start position:0% won't have to follow it because you're watching<00:52:13.319> this<00:52:13.520> video<00:52:13.960> and<00:52:14.079> I'm<00:52:14.200> going<00:52:14.280> to 00:52:14.510 --> 00:52:14.520 align:start position:0% watching this video and I'm going to 00:52:14.520 --> 00:52:17.270 align:start position:0% watching this video and I'm going to teach<00:52:14.760> you<00:52:15.200> everything<00:52:16.000> step<00:52:16.359> by<00:52:16.640> step<00:52:17.079> to 00:52:17.270 --> 00:52:17.280 align:start position:0% teach you everything step by step to 00:52:17.280 --> 00:52:20.510 align:start position:0% teach you everything step by step to utilize<00:52:17.839> all<00:52:18.280> of<00:52:18.440> the<00:52:18.640> primary<00:52:19.319> upright<00:52:19.760> Cloud 00:52:20.510 --> 00:52:20.520 align:start position:0% utilize all of the primary upright Cloud 00:52:20.520 --> 00:52:23.430 align:start position:0% utilize all of the primary upright Cloud features<00:52:21.520> we'll<00:52:21.720> be<00:52:21.880> dealing<00:52:22.319> with<00:52:22.599> OD<00:52:23.240> really 00:52:23.430 --> 00:52:23.440 align:start position:0% features we'll be dealing with OD really 00:52:23.440 --> 00:52:26.230 align:start position:0% features we'll be dealing with OD really soon<00:52:23.720> to<00:52:23.880> create<00:52:24.119> our<00:52:24.319> users<00:52:25.319> databases 00:52:26.230 --> 00:52:26.240 align:start position:0% soon to create our users databases 00:52:26.240 --> 00:52:29.510 align:start position:0% soon to create our users databases functions<00:52:26.960> and<00:52:27.200> even<00:52:27.799> storage<00:52:28.799> so<00:52:29.000> for<00:52:29.240> now 00:52:29.510 --> 00:52:29.520 align:start position:0% functions and even storage so for now 00:52:29.520 --> 00:52:31.630 align:start position:0% functions and even storage so for now the<00:52:29.680> only<00:52:29.920> thing<00:52:30.079> you<00:52:30.200> have<00:52:30.319> to<00:52:30.480> do<00:52:31.000> is<00:52:31.280> copy 00:52:31.630 --> 00:52:31.640 align:start position:0% the only thing you have to do is copy 00:52:31.640 --> 00:52:33.630 align:start position:0% the only thing you have to do is copy this<00:52:31.839> ID<00:52:32.240> that<00:52:32.359> you've<00:52:32.520> been<00:52:32.720> given<00:52:33.040> for<00:52:33.319> your 00:52:33.630 --> 00:52:33.640 align:start position:0% this ID that you've been given for your 00:52:33.640 --> 00:52:35.990 align:start position:0% this ID that you've been given for your project<00:52:34.480> once<00:52:34.680> you<00:52:34.799> do<00:52:35.079> that<00:52:35.359> we<00:52:35.480> can<00:52:35.640> go<00:52:35.839> back 00:52:35.990 --> 00:52:36.000 align:start position:0% project once you do that we can go back 00:52:36.000 --> 00:52:36.950 align:start position:0% project once you do that we can go back to<00:52:36.119> our 00:52:36.950 --> 00:52:36.960 align:start position:0% to our 00:52:36.960 --> 00:52:39.230 align:start position:0% to our application<00:52:37.960> and<00:52:38.160> then<00:52:38.480> we<00:52:38.599> can<00:52:38.760> go<00:52:38.880> to<00:52:39.040> our 00:52:39.230 --> 00:52:39.240 align:start position:0% application and then we can go to our 00:52:39.240 --> 00:52:41.190 align:start position:0% application and then we can go to our Explorer<00:52:40.079> collapse<00:52:40.599> everything<00:52:40.880> so<00:52:41.040> it's 00:52:41.190 --> 00:52:41.200 align:start position:0% Explorer collapse everything so it's 00:52:41.200 --> 00:52:43.549 align:start position:0% Explorer collapse everything so it's easier<00:52:41.520> to<00:52:41.680> see<00:52:42.440> as<00:52:42.559> a<00:52:42.680> matter<00:52:42.880> of<00:52:43.040> fact<00:52:43.240> we<00:52:43.319> can 00:52:43.549 --> 00:52:43.559 align:start position:0% easier to see as a matter of fact we can 00:52:43.559 --> 00:52:46.230 align:start position:0% easier to see as a matter of fact we can close<00:52:44.000> all<00:52:44.240> the<00:52:44.400> files<00:52:44.680> at<00:52:44.839> the<00:52:45.079> moment<00:52:46.079> and 00:52:46.230 --> 00:52:46.240 align:start position:0% close all the files at the moment and 00:52:46.240 --> 00:52:49.589 align:start position:0% close all the files at the moment and then<00:52:46.400> go<00:52:46.559> to<00:52:46.799> Source<00:52:47.760> lib<00:52:48.559> and<00:52:48.799> within<00:52:49.079> the<00:52:49.280> lib 00:52:49.589 --> 00:52:49.599 align:start position:0% then go to Source lib and within the lib 00:52:49.599 --> 00:52:51.190 align:start position:0% then go to Source lib and within the lib we're<00:52:49.720> going<00:52:49.799> to<00:52:49.960> create<00:52:50.240> a<00:52:50.400> new<00:52:50.640> folder 00:52:51.190 --> 00:52:51.200 align:start position:0% we're going to create a new folder 00:52:51.200 --> 00:52:52.230 align:start position:0% we're going to create a new folder called 00:52:52.230 --> 00:52:52.240 align:start position:0% called 00:52:52.240 --> 00:52:54.990 align:start position:0% called aight<00:52:53.240> within<00:52:53.680> aight<00:52:54.200> we're<00:52:54.359> going<00:52:54.480> to<00:52:54.680> create 00:52:54.990 --> 00:52:55.000 align:start position:0% aight within aight we're going to create 00:52:55.000 --> 00:53:16.910 align:start position:0% aight within aight we're going to create a<00:52:55.319> new<00:52:55.599> file<00:52:56.040> called 00:53:16.910 --> 00:53:16.920 align:start position:0% 00:53:16.920 --> 00:53:18.510 align:start position:0% config.sys 00:53:18.510 --> 00:53:18.520 align:start position:0% config.sys 00:53:18.520 --> 00:53:22.030 align:start position:0% config.sys so<00:53:19.520> open<00:53:19.760> up<00:53:19.920> your<00:53:20.079> terminal<00:53:20.799> and<00:53:20.960> run<00:53:21.319> mpm 00:53:22.030 --> 00:53:22.040 align:start position:0% so open up your terminal and run mpm 00:53:22.040 --> 00:53:25.390 align:start position:0% so open up your terminal and run mpm install<00:53:23.280> ight<00:53:24.280> and<00:53:24.480> that's<00:53:24.680> the<00:53:24.839> only 00:53:25.390 --> 00:53:25.400 align:start position:0% install ight and that's the only 00:53:25.400 --> 00:53:27.069 align:start position:0% install ight and that's the only dependency<00:53:26.000> you<00:53:26.160> have<00:53:26.280> to<00:53:26.400> install<00:53:26.760> to<00:53:26.880> make 00:53:27.069 --> 00:53:27.079 align:start position:0% dependency you have to install to make 00:53:27.079 --> 00:53:30.230 align:start position:0% dependency you have to install to make this<00:53:27.319> work<00:53:28.200> and<00:53:28.440> just<00:53:28.559> to<00:53:28.760> verify<00:53:29.319> in<00:53:29.559> my<00:53:29.839> case 00:53:30.230 --> 00:53:30.240 align:start position:0% this work and just to verify in my case 00:53:30.240 --> 00:53:54.150 align:start position:0% this work and just to verify in my case I'm<00:53:30.400> on<00:53:30.640> version 00:53:54.150 --> 00:53:54.160 align:start position:0% 00:53:54.160 --> 00:53:56.589 align:start position:0% 13.0.0.0.0<00:53:55.200> able<00:53:55.359> to<00:53:55.520> define<00:53:56.040> a<00:53:56.200> couple<00:53:56.440> of 00:53:56.589 --> 00:53:56.599 align:start position:0% 13.0.0.0.0 able to define a couple of 00:53:56.599 --> 00:54:00.430 align:start position:0% 13.0.0.0.0 able to define a couple of things<00:53:57.319> first<00:53:57.520> of<00:53:57.720> all<00:53:58.160> your<00:53:58.599> project<00:53:59.200> ID<00:54:00.200> and 00:54:00.430 --> 00:54:00.440 align:start position:0% things first of all your project ID and 00:54:00.440 --> 00:54:02.309 align:start position:0% things first of all your project ID and I<00:54:00.520> think<00:54:00.680> you<00:54:00.799> already<00:54:01.079> know<00:54:01.280> it<00:54:01.559> right<00:54:02.119> it's 00:54:02.309 --> 00:54:02.319 align:start position:0% I think you already know it right it's 00:54:02.319 --> 00:54:05.270 align:start position:0% I think you already know it right it's the<00:54:02.480> ID<00:54:02.799> we<00:54:03.000> copied<00:54:03.520> from<00:54:03.839> aite<00:54:04.640> but<00:54:04.880> we<00:54:05.040> never 00:54:05.270 --> 00:54:05.280 align:start position:0% the ID we copied from aite but we never 00:54:05.280 --> 00:54:08.390 align:start position:0% the ID we copied from aite but we never want<00:54:05.440> to<00:54:05.559> share<00:54:06.040> any<00:54:06.319> IDs<00:54:06.960> or<00:54:07.200> keys<00:54:07.599> or<00:54:07.839> Secrets 00:54:08.390 --> 00:54:08.400 align:start position:0% want to share any IDs or keys or Secrets 00:54:08.400 --> 00:54:10.589 align:start position:0% want to share any IDs or keys or Secrets publicly<00:54:09.200> so<00:54:09.400> for<00:54:09.640> that<00:54:09.880> we're<00:54:10.040> going<00:54:10.119> to<00:54:10.280> use 00:54:10.589 --> 00:54:10.599 align:start position:0% publicly so for that we're going to use 00:54:10.599 --> 00:54:14.670 align:start position:0% publicly so for that we're going to use environment<00:54:11.440> variables<00:54:12.440> so<00:54:12.880> let's<00:54:13.160> go<00:54:13.440> to<00:54:13.839> our 00:54:14.670 --> 00:54:14.680 align:start position:0% environment variables so let's go to our 00:54:14.680 --> 00:54:17.910 align:start position:0% environment variables so let's go to our app<00:54:15.680> and<00:54:15.880> then<00:54:16.480> outside<00:54:16.960> of<00:54:17.079> the<00:54:17.240> source<00:54:17.799> we 00:54:17.910 --> 00:54:17.920 align:start position:0% app and then outside of the source we 00:54:17.920 --> 00:54:22.950 align:start position:0% app and then outside of the source we can<00:54:18.079> create<00:54:18.440> a<00:54:18.960> new<00:54:20.359> env.<00:54:21.359> local<00:54:21.799> file<00:54:22.720> and 00:54:22.950 --> 00:54:22.960 align:start position:0% can create a new env. local file and 00:54:22.960 --> 00:54:25.910 align:start position:0% can create a new env. local file and within<00:54:23.240> it<00:54:23.520> we<00:54:23.640> can<00:54:23.839> Define<00:54:24.200> the<00:54:24.480> V<00:54:25.160> uncore 00:54:25.910 --> 00:54:25.920 align:start position:0% within it we can Define the V uncore 00:54:25.920 --> 00:54:30.789 align:start position:0% within it we can Define the V uncore aprite<00:54:26.720> uncore<00:54:27.559> projector<00:54:28.559> ID<00:54:29.400> is<00:54:29.640> equal<00:54:30.000> to 00:54:30.789 --> 00:54:30.799 align:start position:0% aprite uncore projector ID is equal to 00:54:30.799 --> 00:54:34.430 align:start position:0% aprite uncore projector ID is equal to this<00:54:31.119> same<00:54:31.599> ID<00:54:32.200> that<00:54:32.359> we<00:54:32.799> copied<00:54:33.799> that<00:54:34.000> way 00:54:34.430 --> 00:54:34.440 align:start position:0% this same ID that we copied that way 00:54:34.440 --> 00:54:36.430 align:start position:0% this same ID that we copied that way instead<00:54:34.720> of<00:54:34.880> just<00:54:35.040> simply<00:54:35.319> using<00:54:35.720> plain<00:54:36.040> text 00:54:36.430 --> 00:54:36.440 align:start position:0% instead of just simply using plain text 00:54:36.440 --> 00:54:40.510 align:start position:0% instead of just simply using plain text here<00:54:36.799> we'll<00:54:36.960> be<00:54:37.079> able<00:54:37.280> to<00:54:37.440> say<00:54:37.880> import.<00:54:38.880> meta 00:54:40.510 --> 00:54:40.520 align:start position:0% here we'll be able to say import. meta 00:54:40.520 --> 00:54:46.710 align:start position:0% here we'll be able to say import. meta env.<00:54:41.880> vorea<00:54:42.960> rightor<00:54:44.160> projector<00:54:45.280> ID<00:54:46.280> and<00:54:46.520> that 00:54:46.710 --> 00:54:46.720 align:start position:0% env. vorea rightor projector ID and that 00:54:46.720 --> 00:54:50.150 align:start position:0% env. vorea rightor projector ID and that way<00:54:47.040> it's<00:54:47.240> going<00:54:47.400> to<00:54:47.559> be<00:54:48.240> safe<00:54:49.240> now<00:54:49.640> here<00:54:50.040> you 00:54:50.150 --> 00:54:50.160 align:start position:0% way it's going to be safe now here you 00:54:50.160 --> 00:54:51.950 align:start position:0% way it's going to be safe now here you can<00:54:50.359> notice<00:54:50.799> that<00:54:51.040> our<00:54:51.280> typescript<00:54:51.839> is 00:54:51.950 --> 00:54:51.960 align:start position:0% can notice that our typescript is 00:54:51.960 --> 00:54:54.150 align:start position:0% can notice that our typescript is complaining<00:54:52.400> a<00:54:52.520> bit<00:54:52.920> saying<00:54:53.240> that<00:54:53.440> EnV<00:54:53.960> does 00:54:54.150 --> 00:54:54.160 align:start position:0% complaining a bit saying that EnV does 00:54:54.160 --> 00:54:57.069 align:start position:0% complaining a bit saying that EnV does not<00:54:54.440> exist<00:54:54.720> on<00:54:54.880> typ<00:54:55.079> type<00:54:55.319> import<00:54:55.680> meta<00:54:56.640> and<00:54:56.920> we 00:54:57.069 --> 00:54:57.079 align:start position:0% not exist on typ type import meta and we 00:54:57.079 --> 00:54:58.710 align:start position:0% not exist on typ type import meta and we just<00:54:57.200> have<00:54:57.319> to<00:54:57.520> let<00:54:57.799> typescript<00:54:58.359> know<00:54:58.599> that 00:54:58.710 --> 00:54:58.720 align:start position:0% just have to let typescript know that 00:54:58.720 --> 00:55:01.150 align:start position:0% just have to let typescript know that we're<00:54:58.920> using<00:54:59.280> V<00:54:59.920> and<00:55:00.160> that<00:55:00.599> this<00:55:00.720> is<00:55:00.880> actually 00:55:01.150 --> 00:55:01.160 align:start position:0% we're using V and that this is actually 00:55:01.160 --> 00:55:03.670 align:start position:0% we're using V and that this is actually going<00:55:01.319> to<00:55:01.559> exist<00:55:02.480> and<00:55:02.640> the<00:55:02.799> way<00:55:02.960> you<00:55:03.160> do<00:55:03.400> that 00:55:03.670 --> 00:55:03.680 align:start position:0% going to exist and the way you do that 00:55:03.680 --> 00:55:07.309 align:start position:0% going to exist and the way you do that is<00:55:03.839> in<00:55:04.000> the<00:55:04.200> source<00:55:04.760> you<00:55:04.880> can<00:55:05.119> add<00:55:05.359> a<00:55:05.559> new<00:55:06.280> v- 00:55:07.309 --> 00:55:07.319 align:start position:0% is in the source you can add a new v- 00:55:07.319 --> 00:55:11.910 align:start position:0% is in the source you can add a new v- env.<00:55:08.599> D.S<00:55:09.599> file<00:55:10.119> and<00:55:10.400> there<00:55:10.720> you<00:55:10.839> can<00:55:11.119> type 00:55:11.910 --> 00:55:11.920 align:start position:0% env. D.S file and there you can type 00:55:11.920 --> 00:55:16.309 align:start position:0% env. D.S file and there you can type reference<00:55:12.920> types<00:55:13.640> is<00:55:13.839> equal<00:55:14.160> to<00:55:14.559> v/<00:55:15.559> client 00:55:16.309 --> 00:55:16.319 align:start position:0% reference types is equal to v/ client 00:55:16.319 --> 00:55:19.309 align:start position:0% reference types is equal to v/ client and<00:55:16.480> then<00:55:16.680> close<00:55:17.000> it<00:55:17.359> like<00:55:17.559> so<00:55:18.240> and<00:55:18.480> add<00:55:19.040> three 00:55:19.309 --> 00:55:19.319 align:start position:0% and then close it like so and add three 00:55:19.319 --> 00:55:22.549 align:start position:0% and then close it like so and add three dashes<00:55:20.119> at<00:55:20.240> the<00:55:20.440> front<00:55:21.440> once<00:55:21.599> you<00:55:21.760> do<00:55:22.039> that<00:55:22.440> you 00:55:22.549 --> 00:55:22.559 align:start position:0% dashes at the front once you do that you 00:55:22.559 --> 00:55:25.109 align:start position:0% dashes at the front once you do that you can<00:55:22.680> see<00:55:23.000> that<00:55:23.200> it's<00:55:23.400> no<00:55:23.640> longer<00:55:24.000> complaining 00:55:25.109 --> 00:55:25.119 align:start position:0% can see that it's no longer complaining 00:55:25.119 --> 00:55:26.950 align:start position:0% can see that it's no longer complaining but<00:55:25.319> now<00:55:25.640> we<00:55:25.760> can<00:55:25.880> still<00:55:26.079> see<00:55:26.319> some<00:55:26.480> warnings 00:55:26.950 --> 00:55:26.960 align:start position:0% but now we can still see some warnings 00:55:26.960 --> 00:55:29.630 align:start position:0% but now we can still see some warnings that<00:55:27.160> these<00:55:27.400> variables<00:55:27.920> are<00:55:28.160> not<00:55:28.440> utilized<00:55:29.359> so 00:55:29.630 --> 00:55:29.640 align:start position:0% that these variables are not utilized so 00:55:29.640 --> 00:55:31.630 align:start position:0% that these variables are not utilized so how<00:55:29.799> do<00:55:29.960> we<00:55:30.119> utilize<00:55:30.720> all<00:55:30.880> of<00:55:31.079> these<00:55:31.319> great 00:55:31.630 --> 00:55:31.640 align:start position:0% how do we utilize all of these great 00:55:31.640 --> 00:55:32.710 align:start position:0% how do we utilize all of these great appes 00:55:32.710 --> 00:55:32.720 align:start position:0% appes 00:55:32.720 --> 00:55:36.029 align:start position:0% appes functionalities<00:55:33.720> well<00:55:34.039> we<00:55:34.160> can<00:55:34.319> say<00:55:35.039> export 00:55:36.029 --> 00:55:36.039 align:start position:0% functionalities well we can say export 00:55:36.039 --> 00:55:39.589 align:start position:0% functionalities well we can say export const<00:55:36.640> client<00:55:37.119> for<00:55:37.319> example<00:55:38.160> is<00:55:38.359> equal<00:55:38.680> to<00:55:39.160> new 00:55:39.589 --> 00:55:39.599 align:start position:0% const client for example is equal to new 00:55:39.599 --> 00:55:41.470 align:start position:0% const client for example is equal to new client<00:55:40.240> so<00:55:40.400> we<00:55:40.520> just<00:55:40.680> have<00:55:40.799> to<00:55:41.039> create<00:55:41.240> an 00:55:41.470 --> 00:55:41.480 align:start position:0% client so we just have to create an 00:55:41.480 --> 00:55:44.069 align:start position:0% client so we just have to create an instance<00:55:42.240> of<00:55:42.559> this<00:55:42.799> client<00:55:43.640> and<00:55:43.799> we're<00:55:43.920> going 00:55:44.069 --> 00:55:44.079 align:start position:0% instance of this client and we're going 00:55:44.079 --> 00:55:46.109 align:start position:0% instance of this client and we're going to<00:55:44.240> repeat<00:55:44.599> this<00:55:44.799> procedure<00:55:45.280> for<00:55:45.720> everything 00:55:46.109 --> 00:55:46.119 align:start position:0% to repeat this procedure for everything 00:55:46.119 --> 00:55:49.870 align:start position:0% to repeat this procedure for everything else<00:55:46.799> so<00:55:47.119> here<00:55:47.440> we<00:55:47.559> can<00:55:47.760> say<00:55:48.559> account<00:55:49.559> is<00:55:49.720> going 00:55:49.870 --> 00:55:49.880 align:start position:0% else so here we can say account is going 00:55:49.880 --> 00:55:51.390 align:start position:0% else so here we can say account is going to<00:55:50.039> be<00:55:50.200> equal<00:55:50.480> to 00:55:51.390 --> 00:55:51.400 align:start position:0% to be equal to 00:55:51.400 --> 00:55:54.029 align:start position:0% to be equal to account<00:55:52.400> then<00:55:52.799> we<00:55:53.039> have<00:55:53.480> something<00:55:53.799> like 00:55:54.029 --> 00:55:54.039 align:start position:0% account then we have something like 00:55:54.039 --> 00:55:55.990 align:start position:0% account then we have something like databases 00:55:55.990 --> 00:55:56.000 align:start position:0% databases 00:55:56.000 --> 00:55:58.190 align:start position:0% databases is<00:55:56.200> equal<00:55:56.480> to<00:55:56.680> new 00:55:58.190 --> 00:55:58.200 align:start position:0% is equal to new 00:55:58.200 --> 00:56:00.630 align:start position:0% is equal to new databases<00:55:59.200> then<00:55:59.599> we<00:55:59.799> have 00:56:00.630 --> 00:56:00.640 align:start position:0% databases then we have 00:56:00.640 --> 00:56:03.270 align:start position:0% databases then we have storage<00:56:01.640> is<00:56:01.799> equal<00:56:02.039> to<00:56:02.240> new 00:56:03.270 --> 00:56:03.280 align:start position:0% storage is equal to new 00:56:03.280 --> 00:56:06.589 align:start position:0% storage is equal to new storage<00:56:04.280> and<00:56:04.559> we<00:56:04.760> also<00:56:05.079> have<00:56:05.480> avatars<00:56:06.440> is 00:56:06.589 --> 00:56:06.599 align:start position:0% storage and we also have avatars is 00:56:06.599 --> 00:56:09.109 align:start position:0% storage and we also have avatars is equal<00:56:06.920> to<00:56:07.319> new 00:56:09.109 --> 00:56:09.119 align:start position:0% equal to new 00:56:09.119 --> 00:56:10.789 align:start position:0% equal to new avatars<00:56:10.119> you<00:56:10.240> can<00:56:10.359> see<00:56:10.520> that<00:56:10.640> it's 00:56:10.789 --> 00:56:10.799 align:start position:0% avatars you can see that it's 00:56:10.799 --> 00:56:13.109 align:start position:0% avatars you can see that it's complaining<00:56:11.280> for<00:56:11.520> a<00:56:11.599> lot<00:56:11.760> of<00:56:11.960> these<00:56:12.640> saying 00:56:13.109 --> 00:56:13.119 align:start position:0% complaining for a lot of these saying 00:56:13.119 --> 00:56:14.950 align:start position:0% complaining for a lot of these saying that<00:56:13.359> the<00:56:13.520> argument<00:56:14.079> client<00:56:14.520> was<00:56:14.680> not 00:56:14.950 --> 00:56:14.960 align:start position:0% that the argument client was not 00:56:14.960 --> 00:56:17.910 align:start position:0% that the argument client was not provided<00:56:15.960> so<00:56:16.200> for<00:56:16.440> all<00:56:16.599> of<00:56:16.799> these<00:56:17.000> to<00:56:17.240> work<00:56:17.760> we 00:56:17.910 --> 00:56:17.920 align:start position:0% provided so for all of these to work we 00:56:17.920 --> 00:56:20.630 align:start position:0% provided so for all of these to work we have<00:56:18.079> to<00:56:18.440> pass<00:56:18.720> in<00:56:19.000> the<00:56:19.240> client<00:56:19.799> within<00:56:20.160> them 00:56:20.630 --> 00:56:20.640 align:start position:0% have to pass in the client within them 00:56:20.640 --> 00:56:22.430 align:start position:0% have to pass in the client within them right<00:56:20.880> here<00:56:21.359> so<00:56:21.599> they<00:56:21.799> know<00:56:22.079> what<00:56:22.200> they're 00:56:22.430 --> 00:56:22.440 align:start position:0% right here so they know what they're 00:56:22.440 --> 00:56:24.630 align:start position:0% right here so they know what they're referring<00:56:22.880> to<00:56:23.640> and<00:56:23.839> with<00:56:24.000> that<00:56:24.160> said<00:56:24.359> we<00:56:24.520> no 00:56:24.630 --> 00:56:24.640 align:start position:0% referring to and with that said we no 00:56:24.640 --> 00:56:26.069 align:start position:0% referring to and with that said we no longer<00:56:25.119> have<00:56:25.359> any 00:56:26.069 --> 00:56:26.079 align:start position:0% longer have any 00:56:26.079 --> 00:56:28.589 align:start position:0% longer have any warnings<00:56:27.079> but<00:56:27.319> now<00:56:27.720> we<00:56:27.839> have<00:56:27.960> to<00:56:28.160> configure 00:56:28.589 --> 00:56:28.599 align:start position:0% warnings but now we have to configure 00:56:28.599 --> 00:56:31.670 align:start position:0% warnings but now we have to configure our<00:56:28.920> client<00:56:29.720> and<00:56:29.839> we<00:56:29.960> can<00:56:30.119> do<00:56:30.359> that<00:56:30.599> by<00:56:30.799> saying 00:56:31.670 --> 00:56:31.680 align:start position:0% our client and we can do that by saying 00:56:31.680 --> 00:56:35.510 align:start position:0% our client and we can do that by saying client<00:56:32.680> dot<00:56:33.559> set<00:56:34.160> project<00:56:35.079> it's<00:56:35.280> pretty 00:56:35.510 --> 00:56:35.520 align:start position:0% client dot set project it's pretty 00:56:35.520 --> 00:56:39.510 align:start position:0% client dot set project it's pretty simple<00:56:36.000> right<00:56:36.480> it's<00:56:36.799> aight<00:56:37.280> config<00:56:38.079> do<00:56:38.440> pro<00:56:38.839> ID 00:56:39.510 --> 00:56:39.520 align:start position:0% simple right it's aight config do pro ID 00:56:39.520 --> 00:56:41.910 align:start position:0% simple right it's aight config do pro ID we<00:56:39.680> already<00:56:40.079> have<00:56:40.319> that<00:56:41.119> but<00:56:41.359> there's<00:56:41.599> another 00:56:41.910 --> 00:56:41.920 align:start position:0% we already have that but there's another 00:56:41.920 --> 00:56:44.430 align:start position:0% we already have that but there's another thing<00:56:42.079> we<00:56:42.200> have<00:56:42.319> to<00:56:42.480> do<00:56:43.039> and<00:56:43.240> that<00:56:43.400> is<00:56:43.799> set<00:56:44.039> up 00:56:44.430 --> 00:56:44.440 align:start position:0% thing we have to do and that is set up 00:56:44.440 --> 00:56:47.670 align:start position:0% thing we have to do and that is set up the<00:56:44.839> endpoint<00:56:45.599> so<00:56:45.760> we<00:56:45.880> can<00:56:45.960> say<00:56:46.240> client.<00:56:47.160> set 00:56:47.670 --> 00:56:47.680 align:start position:0% the endpoint so we can say client. set 00:56:47.680 --> 00:56:51.029 align:start position:0% the endpoint so we can say client. set endpoint<00:56:48.680> and<00:56:48.920> that's<00:56:49.160> going<00:56:49.319> to<00:56:49.520> be 00:56:51.029 --> 00:56:51.039 align:start position:0% endpoint and that's going to be 00:56:51.039 --> 00:56:55.950 align:start position:0% endpoint and that's going to be aite<00:56:52.079> config<00:56:53.079> do<00:56:53.520> URL<00:56:54.520> but<00:56:55.000> hey<00:56:55.359> how<00:56:55.480> do<00:56:55.640> we<00:56:55.760> get 00:56:55.950 --> 00:56:55.960 align:start position:0% aite config do URL but hey how do we get 00:56:55.960 --> 00:56:58.870 align:start position:0% aite config do URL but hey how do we get this<00:56:56.079> URL<00:56:57.000> it's<00:56:57.280> obvious<00:56:57.680> it<00:56:57.839> has<00:56:57.960> to<00:56:58.119> go<00:56:58.400> here 00:56:58.870 --> 00:56:58.880 align:start position:0% this URL it's obvious it has to go here 00:56:58.880 --> 00:57:01.510 align:start position:0% this URL it's obvious it has to go here right<00:56:59.559> and<00:56:59.760> we<00:56:59.839> can<00:57:00.039> import<00:57:00.359> it<00:57:00.480> from<00:57:00.640> envs<00:57:01.359> by 00:57:01.510 --> 00:57:01.520 align:start position:0% right and we can import it from envs by 00:57:01.520 --> 00:57:04.549 align:start position:0% right and we can import it from envs by saying<00:57:01.880> import.<00:57:02.760> meta 00:57:04.549 --> 00:57:04.559 align:start position:0% saying import. meta 00:57:04.559 --> 00:57:09.470 align:start position:0% saying import. meta env.<00:57:05.760> Vore<00:57:06.839> aprite<00:57:07.839> URL<00:57:08.640> so<00:57:08.880> now<00:57:09.079> we<00:57:09.240> have<00:57:09.319> to 00:57:09.470 --> 00:57:09.480 align:start position:0% env. Vore aprite URL so now we have to 00:57:09.480 --> 00:57:12.470 align:start position:0% env. Vore aprite URL so now we have to go<00:57:09.680> to<00:57:09.839> our<00:57:10.359> env.<00:57:11.079> local<00:57:11.680> and<00:57:11.799> we<00:57:11.920> have<00:57:12.000> to<00:57:12.200> add 00:57:12.470 --> 00:57:12.480 align:start position:0% go to our env. local and we have to add 00:57:12.480 --> 00:57:17.750 align:start position:0% go to our env. local and we have to add the<00:57:13.000> Vore<00:57:14.119> aprite<00:57:15.119> URL<00:57:15.880> is<00:57:16.039> equal<00:57:16.319> to<00:57:16.559> a<00:57:16.839> string 00:57:17.750 --> 00:57:17.760 align:start position:0% the Vore aprite URL is equal to a string 00:57:17.760 --> 00:57:20.309 align:start position:0% the Vore aprite URL is equal to a string but<00:57:18.160> hey<00:57:18.440> where<00:57:18.559> do<00:57:18.720> we<00:57:18.920> get<00:57:19.119> this<00:57:19.319> aight<00:57:19.760> URL 00:57:20.309 --> 00:57:20.319 align:start position:0% but hey where do we get this aight URL 00:57:20.319 --> 00:57:22.789 align:start position:0% but hey where do we get this aight URL we<00:57:20.480> didn't<00:57:20.720> see<00:57:20.880> it<00:57:21.119> here<00:57:21.920> in<00:57:22.079> the<00:57:22.240> quick<00:57:22.599> start 00:57:22.789 --> 00:57:22.799 align:start position:0% we didn't see it here in the quick start 00:57:22.799 --> 00:57:25.150 align:start position:0% we didn't see it here in the quick start docs<00:57:23.400> it's<00:57:23.559> going<00:57:23.720> to<00:57:23.920> say<00:57:24.359> right<00:57:24.520> here<00:57:25.039> that 00:57:25.150 --> 00:57:25.160 align:start position:0% docs it's going to say right here that 00:57:25.160 --> 00:57:28.029 align:start position:0% docs it's going to say right here that we<00:57:25.280> can<00:57:25.400> set<00:57:25.599> up<00:57:25.799> endpoint<00:57:26.559> as<00:57:26.760> the<00:57:27.039> https 00:57:28.029 --> 00:57:28.039 align:start position:0% we can set up endpoint as the https 00:57:28.039 --> 00:57:33.069 align:start position:0% we can set up endpoint as the https cloud.<00:57:29.160> aight.<00:57:30.160> V1<00:57:31.119> so<00:57:31.319> let's<00:57:31.599> copy<00:57:31.960> this<00:57:32.640> and 00:57:33.069 --> 00:57:33.079 align:start position:0% cloud. aight. V1 so let's copy this and 00:57:33.079 --> 00:57:35.390 align:start position:0% cloud. aight. V1 so let's copy this and paste<00:57:33.359> it<00:57:33.720> right<00:57:33.960> here<00:57:34.520> so<00:57:34.720> one<00:57:34.880> more<00:57:35.119> time 00:57:35.390 --> 00:57:35.400 align:start position:0% paste it right here so one more time 00:57:35.400 --> 00:57:37.589 align:start position:0% paste it right here so one more time that's<00:57:35.760> https 00:57:37.589 --> 00:57:37.599 align:start position:0% that's https 00:57:37.599 --> 00:57:40.029 align:start position:0% that's https col<00:57:38.599> cloud. 00:57:40.029 --> 00:57:40.039 align:start position:0% col cloud. 00:57:40.039 --> 00:57:41.630 align:start position:0% col cloud. aight. 00:57:41.630 --> 00:57:41.640 align:start position:0% aight. 00:57:41.640 --> 00:57:44.470 align:start position:0% aight. slv1<00:57:42.640> and<00:57:42.799> now<00:57:43.079> we<00:57:43.200> are<00:57:43.400> properly<00:57:43.839> configuring 00:57:44.470 --> 00:57:44.480 align:start position:0% slv1 and now we are properly configuring 00:57:44.480 --> 00:57:47.549 align:start position:0% slv1 and now we are properly configuring our<00:57:45.160> client<00:57:46.160> and<00:57:46.359> this<00:57:46.480> is<00:57:46.680> all<00:57:46.920> that<00:57:47.079> we<00:57:47.240> need 00:57:47.549 --> 00:57:47.559 align:start position:0% our client and this is all that we need 00:57:47.559 --> 00:57:50.270 align:start position:0% our client and this is all that we need to<00:57:47.799> get<00:57:47.960> started<00:57:48.559> with<00:57:49.000> authentication<00:57:50.000> so 00:57:50.270 --> 00:57:50.280 align:start position:0% to get started with authentication so 00:57:50.280 --> 00:57:53.109 align:start position:0% to get started with authentication so now<00:57:50.720> alongside<00:57:51.400> config<00:57:52.039> within<00:57:52.400> aite<00:57:52.960> we're 00:57:53.109 --> 00:57:53.119 align:start position:0% now alongside config within aite we're 00:57:53.119 --> 00:57:55.109 align:start position:0% now alongside config within aite we're going<00:57:53.280> to<00:57:53.440> create<00:57:53.799> a<00:57:54.000> new<00:57:54.280> file<00:57:54.559> called<00:57:54.799> called 00:57:55.109 --> 00:57:55.119 align:start position:0% going to create a new file called called 00:57:55.119 --> 00:57:59.470 align:start position:0% going to create a new file called called api.<00:57:56.359> TS<00:57:57.359> and<00:57:57.599> within<00:57:57.880> it<00:57:58.280> we<00:57:58.400> can<00:57:58.720> export 00:57:59.470 --> 00:57:59.480 align:start position:0% api. TS and within it we can export 00:57:59.480 --> 00:58:02.470 align:start position:0% api. TS and within it we can export async<00:58:00.839> function 00:58:02.470 --> 00:58:02.480 align:start position:0% async function 00:58:02.480 --> 00:58:06.270 align:start position:0% async function create<00:58:03.559> user<00:58:04.559> account<00:58:05.520> that's<00:58:05.720> going<00:58:05.880> to<00:58:06.119> get 00:58:06.270 --> 00:58:06.280 align:start position:0% create user account that's going to get 00:58:06.280 --> 00:58:08.470 align:start position:0% create user account that's going to get in<00:58:06.520> the<00:58:06.680> user<00:58:07.520> that's<00:58:07.720> going<00:58:07.880> to<00:58:08.079> accept<00:58:08.359> the 00:58:08.470 --> 00:58:08.480 align:start position:0% in the user that's going to accept the 00:58:08.480 --> 00:58:11.069 align:start position:0% in the user that's going to accept the user<00:58:08.760> as<00:58:08.880> a<00:58:09.079> parameter<00:58:10.079> and<00:58:10.280> then<00:58:10.480> it'll<00:58:10.880> try 00:58:11.069 --> 00:58:11.079 align:start position:0% user as a parameter and then it'll try 00:58:11.079 --> 00:58:13.150 align:start position:0% user as a parameter and then it'll try to<00:58:11.240> do<00:58:11.480> something<00:58:12.440> do<00:58:12.559> you<00:58:12.720> get<00:58:12.880> where<00:58:13.000> we're 00:58:13.150 --> 00:58:13.160 align:start position:0% to do something do you get where we're 00:58:13.160 --> 00:58:15.150 align:start position:0% to do something do you get where we're going<00:58:13.440> with<00:58:13.599> this<00:58:14.280> this<00:58:14.400> is<00:58:14.559> the<00:58:14.760> function 00:58:15.150 --> 00:58:15.160 align:start position:0% going with this this is the function 00:58:15.160 --> 00:58:17.470 align:start position:0% going with this this is the function we're<00:58:15.400> about<00:58:15.599> to<00:58:15.760> call<00:58:16.160> from<00:58:16.400> within<00:58:16.640> our<00:58:16.839> form 00:58:17.470 --> 00:58:17.480 align:start position:0% we're about to call from within our form 00:58:17.480 --> 00:58:19.390 align:start position:0% we're about to call from within our form so<00:58:17.720> now<00:58:17.960> we<00:58:18.079> can<00:58:18.240> connect<00:58:18.559> to<00:58:18.839> app<00:58:19.119> right 00:58:19.390 --> 00:58:19.400 align:start position:0% so now we can connect to app right 00:58:19.400 --> 00:58:21.349 align:start position:0% so now we can connect to app right authentication<00:58:20.079> functionalities<00:58:21.079> to 00:58:21.349 --> 00:58:21.359 align:start position:0% authentication functionalities to 00:58:21.359 --> 00:58:24.190 align:start position:0% authentication functionalities to actually<00:58:21.760> create<00:58:22.359> this<00:58:22.520> user<00:58:23.359> so<00:58:23.559> to<00:58:23.720> do<00:58:23.920> that 00:58:24.190 --> 00:58:24.200 align:start position:0% actually create this user so to do that 00:58:24.200 --> 00:58:26.109 align:start position:0% actually create this user so to do that let's<00:58:24.359> first<00:58:24.799> follow<00:58:25.079> the<00:58:25.240> proper<00:58:25.640> tab<00:58:25.880> script 00:58:26.109 --> 00:58:26.119 align:start position:0% let's first follow the proper tab script 00:58:26.119 --> 00:58:28.230 align:start position:0% let's first follow the proper tab script Rules<00:58:26.559> by<00:58:26.720> defining<00:58:27.160> the<00:58:27.359> interface<00:58:27.839> for<00:58:28.079> this 00:58:28.230 --> 00:58:28.240 align:start position:0% Rules by defining the interface for this 00:58:28.240 --> 00:58:30.910 align:start position:0% Rules by defining the interface for this user<00:58:29.160> and<00:58:29.319> we<00:58:29.440> can<00:58:29.599> do<00:58:29.799> that<00:58:30.079> by<00:58:30.240> saying<00:58:30.680> that 00:58:30.910 --> 00:58:30.920 align:start position:0% user and we can do that by saying that 00:58:30.920 --> 00:58:33.670 align:start position:0% user and we can do that by saying that the<00:58:31.079> user<00:58:31.720> is<00:58:31.960> of<00:58:32.160> a<00:58:32.400> type<00:58:32.960> or<00:58:33.160> rather<00:58:33.359> of<00:58:33.520> the 00:58:33.670 --> 00:58:33.680 align:start position:0% the user is of a type or rather of the 00:58:33.680 --> 00:58:38.150 align:start position:0% the user is of a type or rather of the interface<00:58:34.599> I<00:58:35.079> as<00:58:35.200> an<00:58:35.480> interface<00:58:36.480> new<00:58:37.119> user<00:58:38.000> and 00:58:38.150 --> 00:58:38.160 align:start position:0% interface I as an interface new user and 00:58:38.160 --> 00:58:40.990 align:start position:0% interface I as an interface new user and we<00:58:38.280> can<00:58:38.440> Define<00:58:38.880> that<00:58:39.319> within<00:58:39.960> a<00:58:40.160> new<00:58:40.359> folder 00:58:40.990 --> 00:58:41.000 align:start position:0% we can Define that within a new folder 00:58:41.000 --> 00:58:44.470 align:start position:0% we can Define that within a new folder that's<00:58:41.160> in<00:58:41.280> the<00:58:41.480> source<00:58:41.799> folder<00:58:42.480> called<00:58:43.480> types 00:58:44.470 --> 00:58:44.480 align:start position:0% that's in the source folder called types 00:58:44.480 --> 00:58:47.829 align:start position:0% that's in the source folder called types within<00:58:44.880> types<00:58:45.359> we<00:58:45.440> can<00:58:45.640> have<00:58:45.799> a<00:58:46.000> new 00:58:47.829 --> 00:58:47.839 align:start position:0% within types we can have a new 00:58:47.839 --> 00:58:50.510 align:start position:0% within types we can have a new index.ts<00:58:48.839> and<00:58:49.039> in<00:58:49.160> the<00:58:49.280> GitHub<00:58:49.599> J<00:58:49.799> down<00:58:50.000> below 00:58:50.510 --> 00:58:50.520 align:start position:0% index.ts and in the GitHub J down below 00:58:50.520 --> 00:58:53.190 align:start position:0% index.ts and in the GitHub J down below you'll<00:58:50.720> be<00:58:50.880> able<00:58:51.079> to<00:58:51.280> find<00:58:51.960> this<00:58:52.240> entire<00:58:52.720> file 00:58:53.190 --> 00:58:53.200 align:start position:0% you'll be able to find this entire file 00:58:53.200 --> 00:58:54.910 align:start position:0% you'll be able to find this entire file that's<00:58:53.359> going<00:58:53.520> to<00:58:53.720> contain<00:58:54.240> a<00:58:54.359> couple<00:58:54.599> of<00:58:54.799> of 00:58:54.910 --> 00:58:54.920 align:start position:0% that's going to contain a couple of of 00:58:54.920 --> 00:58:56.990 align:start position:0% that's going to contain a couple of of different<00:58:55.319> interfaces<00:58:56.319> we<00:58:56.440> can<00:58:56.599> go<00:58:56.760> through 00:58:56.990 --> 00:58:57.000 align:start position:0% different interfaces we can go through 00:58:57.000 --> 00:58:58.710 align:start position:0% different interfaces we can go through each<00:58:57.200> one<00:58:57.359> of<00:58:57.559> these<00:58:57.839> as<00:58:57.960> we're<00:58:58.240> referencing 00:58:58.710 --> 00:58:58.720 align:start position:0% each one of these as we're referencing 00:58:58.720 --> 00:59:00.990 align:start position:0% each one of these as we're referencing it<00:58:58.880> in<00:58:59.000> the<00:58:59.160> code<00:58:59.760> such<00:58:59.960> as<00:59:00.079> in<00:59:00.280> this<00:59:00.480> case 00:59:00.990 --> 00:59:01.000 align:start position:0% it in the code such as in this case 00:59:01.000 --> 00:59:04.470 align:start position:0% it in the code such as in this case export<00:59:01.520> type<00:59:02.079> I<00:59:02.319> new<00:59:02.559> user<00:59:03.480> which<00:59:03.640> has<00:59:03.760> a<00:59:03.960> name 00:59:04.470 --> 00:59:04.480 align:start position:0% export type I new user which has a name 00:59:04.480 --> 00:59:07.549 align:start position:0% export type I new user which has a name email<00:59:05.000> username<00:59:05.520> and<00:59:05.960> password<00:59:06.960> and<00:59:07.160> now<00:59:07.440> we 00:59:07.549 --> 00:59:07.559 align:start position:0% email username and password and now we 00:59:07.559 --> 00:59:10.950 align:start position:0% email username and password and now we can<00:59:08.039> just<00:59:08.280> import<00:59:08.599> it<00:59:08.839> right<00:59:09.039> here<00:59:09.400> from<00:59:09.960> add/ 00:59:10.950 --> 00:59:10.960 align:start position:0% can just import it right here from add/ 00:59:10.960 --> 00:59:13.670 align:start position:0% can just import it right here from add/ types<00:59:11.920> and<00:59:12.039> now<00:59:12.200> we<00:59:12.319> know<00:59:12.640> exactly<00:59:13.319> what<00:59:13.520> this 00:59:13.670 --> 00:59:13.680 align:start position:0% types and now we know exactly what this 00:59:13.680 --> 00:59:16.390 align:start position:0% types and now we know exactly what this user<00:59:14.160> is<00:59:14.319> all<00:59:14.599> about<00:59:15.319> once<00:59:15.520> we<00:59:15.680> know<00:59:15.960> that<00:59:16.280> we 00:59:16.390 --> 00:59:16.400 align:start position:0% user is all about once we know that we 00:59:16.400 --> 00:59:19.510 align:start position:0% user is all about once we know that we can<00:59:16.599> open<00:59:16.839> up<00:59:17.039> a<00:59:17.240> new<00:59:17.559> try<00:59:17.880> and<00:59:18.160> catch<00:59:18.480> Block<00:59:19.359> in 00:59:19.510 --> 00:59:19.520 align:start position:0% can open up a new try and catch Block in 00:59:19.520 --> 00:59:23.150 align:start position:0% can open up a new try and catch Block in the<00:59:19.680> error<00:59:20.119> we<00:59:20.240> can<00:59:20.440> simply<00:59:20.880> consol<00:59:21.520> log<00:59:22.520> the 00:59:23.150 --> 00:59:23.160 align:start position:0% the error we can simply consol log the 00:59:23.160 --> 00:59:26.349 align:start position:0% the error we can simply consol log the error<00:59:24.160> and<00:59:24.319> we<00:59:24.440> might<00:59:24.839> as<00:59:25.000> well<00:59:25.440> return<00:59:25.640> it<00:59:25.960> so 00:59:26.349 --> 00:59:26.359 align:start position:0% error and we might as well return it so 00:59:26.359 --> 00:59:29.670 align:start position:0% error and we might as well return it so return<00:59:27.240> error<00:59:28.119> but<00:59:28.240> the<00:59:28.400> better<00:59:28.720> question<00:59:29.079> is 00:59:29.670 --> 00:59:29.680 align:start position:0% return error but the better question is 00:59:29.680 --> 00:59:31.870 align:start position:0% return error but the better question is what<00:59:29.839> are<00:59:30.000> we<00:59:30.160> going<00:59:30.319> to<00:59:30.559> do<00:59:31.160> within<00:59:31.400> the<00:59:31.559> tri 00:59:31.870 --> 00:59:31.880 align:start position:0% what are we going to do within the tri 00:59:31.880 --> 00:59:34.430 align:start position:0% what are we going to do within the tri block<00:59:32.880> and<00:59:33.119> here<00:59:33.400> we<00:59:33.520> have<00:59:33.640> to<00:59:33.799> create<00:59:34.039> a<00:59:34.160> new 00:59:34.430 --> 00:59:34.440 align:start position:0% block and here we have to create a new 00:59:34.440 --> 00:59:37.750 align:start position:0% block and here we have to create a new account<00:59:35.119> by<00:59:35.240> saying<00:59:35.599> con<00:59:36.079> new<00:59:36.480> account<00:59:37.480> is 00:59:37.750 --> 00:59:37.760 align:start position:0% account by saying con new account is 00:59:37.760 --> 00:59:42.270 align:start position:0% account by saying con new account is equal<00:59:38.079> to<00:59:39.119> await<00:59:40.119> account.<00:59:41.000> create<00:59:42.000> and<00:59:42.160> we 00:59:42.270 --> 00:59:42.280 align:start position:0% equal to await account. create and we 00:59:42.280 --> 00:59:44.510 align:start position:0% equal to await account. create and we need<00:59:42.400> to<00:59:42.599> pass<00:59:42.839> a<00:59:42.960> couple<00:59:43.160> of<00:59:43.359> attributes<00:59:44.359> the 00:59:44.510 --> 00:59:44.520 align:start position:0% need to pass a couple of attributes the 00:59:44.520 --> 00:59:46.710 align:start position:0% need to pass a couple of attributes the first<00:59:44.760> one<00:59:44.920> is<00:59:45.079> the<00:59:45.280> ID<00:59:46.039> of<00:59:46.200> course<00:59:46.440> we<00:59:46.520> can 00:59:46.710 --> 00:59:46.720 align:start position:0% first one is the ID of course we can 00:59:46.720 --> 00:59:49.430 align:start position:0% first one is the ID of course we can just<00:59:46.920> randomly<00:59:47.440> type<00:59:47.680> it<00:59:48.319> but<00:59:48.920> upright 00:59:49.430 --> 00:59:49.440 align:start position:0% just randomly type it but upright 00:59:49.440 --> 00:59:50.870 align:start position:0% just randomly type it but upright provides<00:59:49.720> us<00:59:49.880> with<00:59:50.000> a<00:59:50.119> great<00:59:50.400> utility 00:59:50.870 --> 00:59:50.880 align:start position:0% provides us with a great utility 00:59:50.880 --> 00:59:53.750 align:start position:0% provides us with a great utility function<00:59:51.480> called<00:59:51.880> ID<00:59:52.799> so<00:59:52.960> we<00:59:53.079> can<00:59:53.280> simply 00:59:53.750 --> 00:59:53.760 align:start position:0% function called ID so we can simply 00:59:53.760 --> 00:59:58.950 align:start position:0% function called ID so we can simply import<00:59:55.000> ID<00:59:56.000> from<00:59:57.039> aight<00:59:58.039> and<00:59:58.240> then<00:59:58.720> what<00:59:58.880> you 00:59:58.950 --> 00:59:58.960 align:start position:0% import ID from aight and then what you 00:59:58.960 --> 01:00:02.349 align:start position:0% import ID from aight and then what you can<00:59:59.160> do<00:59:59.839> is<01:00:00.000> just<01:00:00.200> call<01:00:00.480> it<01:00:01.000> and<01:00:01.160> say<01:00:01.440> id. 01:00:02.349 --> 01:00:02.359 align:start position:0% can do is just call it and say id. 01:00:02.359 --> 01:00:04.670 align:start position:0% can do is just call it and say id. unique<01:00:03.280> and<01:00:03.480> that's<01:00:03.680> it<01:00:04.119> it's<01:00:04.280> always<01:00:04.520> going 01:00:04.670 --> 01:00:04.680 align:start position:0% unique and that's it it's always going 01:00:04.680 --> 01:00:07.029 align:start position:0% unique and that's it it's always going to<01:00:04.880> provide<01:00:05.119> you<01:00:05.240> with<01:00:05.359> the<01:00:05.480> unique<01:00:05.880> ID<01:00:06.880> and 01:00:07.029 --> 01:00:07.039 align:start position:0% to provide you with the unique ID and 01:00:07.039 --> 01:00:10.190 align:start position:0% to provide you with the unique ID and then<01:00:07.240> we<01:00:07.400> provide<01:00:07.680> the<01:00:07.799> user.<01:00:08.440> email<01:00:09.440> user. 01:00:10.190 --> 01:00:10.200 align:start position:0% then we provide the user. email user. 01:00:10.200 --> 01:00:14.430 align:start position:0% then we provide the user. email user. password<01:00:11.200> and<01:00:11.599> user.name<01:00:12.680> and<01:00:13.680> for<01:00:13.920> now<01:00:14.319> we 01:00:14.430 --> 01:00:14.440 align:start position:0% password and user.name and for now we 01:00:14.440 --> 01:00:17.910 align:start position:0% password and user.name and for now we can<01:00:14.799> return<01:00:15.200> the<01:00:15.400> new<01:00:16.319> account<01:00:17.319> so<01:00:17.559> now<01:00:17.839> you 01:00:17.910 --> 01:00:17.920 align:start position:0% can return the new account so now you 01:00:17.920 --> 01:00:19.510 align:start position:0% can return the new account so now you can<01:00:18.119> also<01:00:18.319> notice<01:00:18.839> this<01:00:19.039> account<01:00:19.319> we're 01:00:19.510 --> 01:00:19.520 align:start position:0% can also notice this account we're 01:00:19.520 --> 01:00:21.910 align:start position:0% can also notice this account we're calling<01:00:20.079> is<01:00:20.240> not<01:00:20.520> defined<01:00:21.200> so<01:00:21.400> let's<01:00:21.599> double 01:00:21.910 --> 01:00:21.920 align:start position:0% calling is not defined so let's double 01:00:21.920 --> 01:00:24.069 align:start position:0% calling is not defined so let's double click<01:00:22.119> it<01:00:22.640> and<01:00:22.799> would<01:00:22.960> you<01:00:23.079> look<01:00:23.240> at<01:00:23.480> that<01:00:23.920> we 01:00:24.069 --> 01:00:24.079 align:start position:0% click it and would you look at that we 01:00:24.079 --> 01:00:26.710 align:start position:0% click it and would you look at that we are<01:00:24.200> already<01:00:24.760> exporting<01:00:25.200> it<01:00:25.400> from<01:00:25.559> the<01:00:25.720> config 01:00:26.710 --> 01:00:26.720 align:start position:0% are already exporting it from the config 01:00:26.720 --> 01:00:29.069 align:start position:0% are already exporting it from the config and<01:00:26.839> if<01:00:26.920> you<01:00:27.039> go<01:00:27.200> into<01:00:27.400> the<01:00:27.520> config<01:00:28.359> remember 01:00:29.069 --> 01:00:29.079 align:start position:0% and if you go into the config remember 01:00:29.079 --> 01:00:31.109 align:start position:0% and if you go into the config remember that<01:00:29.400> this<01:00:29.520> is<01:00:29.680> the<01:00:29.839> account<01:00:30.119> utility<01:00:30.839> that<01:00:30.960> we 01:00:31.109 --> 01:00:31.119 align:start position:0% that this is the account utility that we 01:00:31.119 --> 01:00:33.270 align:start position:0% that this is the account utility that we have<01:00:31.319> established<01:00:32.000> before<01:00:32.599> by<01:00:32.799> passing<01:00:33.119> the 01:00:33.270 --> 01:00:33.280 align:start position:0% have established before by passing the 01:00:33.280 --> 01:00:35.470 align:start position:0% have established before by passing the client<01:00:33.720> into<01:00:33.960> it<01:00:34.400> and<01:00:34.559> referencing<01:00:35.200> the 01:00:35.470 --> 01:00:35.480 align:start position:0% client into it and referencing the 01:00:35.480 --> 01:00:37.910 align:start position:0% client into it and referencing the account<01:00:35.920> from<01:00:36.200> aite<01:00:37.160> that's<01:00:37.319> going<01:00:37.480> to<01:00:37.640> allow 01:00:37.910 --> 01:00:37.920 align:start position:0% account from aite that's going to allow 01:00:37.920 --> 01:00:40.670 align:start position:0% account from aite that's going to allow us<01:00:38.079> to<01:00:38.240> deal<01:00:38.559> with<01:00:38.680> the<01:00:38.880> O<01:00:39.440> functionalities<01:00:40.400> of 01:00:40.670 --> 01:00:40.680 align:start position:0% us to deal with the O functionalities of 01:00:40.680 --> 01:00:43.750 align:start position:0% us to deal with the O functionalities of aight<01:00:41.160> Cloud<01:00:42.000> so<01:00:42.240> now<01:00:42.599> we<01:00:42.720> can<01:00:42.880> close<01:00:43.319> all<01:00:43.520> of 01:00:43.750 --> 01:00:43.760 align:start position:0% aight Cloud so now we can close all of 01:00:43.760 --> 01:00:48.069 align:start position:0% aight Cloud so now we can close all of this<01:00:44.440> and<01:00:44.680> go<01:00:45.000> back<01:00:45.280> to<01:00:45.520> our<01:00:45.760> form<01:00:46.680> within<01:00:47.119> o 01:00:48.069 --> 01:00:48.079 align:start position:0% this and go back to our form within o 01:00:48.079 --> 01:00:51.430 align:start position:0% this and go back to our form within o forms<01:00:49.039> sign<01:00:49.319> up<01:00:49.559> form<01:00:50.359> and<01:00:50.680> here<01:00:51.000> we're<01:00:51.240> back 01:00:51.430 --> 01:00:51.440 align:start position:0% forms sign up form and here we're back 01:00:51.440 --> 01:00:53.349 align:start position:0% forms sign up form and here we're back to<01:00:51.599> calling<01:00:51.960> the<01:00:52.160> function<01:00:52.720> that's<01:00:52.920> going<01:00:53.079> to 01:00:53.349 --> 01:00:53.359 align:start position:0% to calling the function that's going to 01:00:53.359 --> 01:00:55.309 align:start position:0% to calling the function that's going to create<01:00:53.799> a<01:00:53.960> new<01:00:54.160> user 01:00:55.309 --> 01:00:55.319 align:start position:0% create a new user 01:00:55.319 --> 01:00:57.390 align:start position:0% create a new user so<01:00:55.880> let's<01:00:56.119> go<01:00:56.280> ahead<01:00:56.599> and 01:00:57.390 --> 01:00:57.400 align:start position:0% so let's go ahead and 01:00:57.400 --> 01:00:59.630 align:start position:0% so let's go ahead and uncommented<01:00:58.400> double<01:00:58.760> click<01:00:59.039> and<01:00:59.160> then<01:00:59.400> press 01:00:59.630 --> 01:00:59.640 align:start position:0% uncommented double click and then press 01:00:59.640 --> 01:01:02.470 align:start position:0% uncommented double click and then press control<01:01:00.079> space<01:01:00.680> and<01:01:00.920> import<01:01:01.280> it<01:01:01.520> from<01:01:01.760> lib 01:01:02.470 --> 01:01:02.480 align:start position:0% control space and import it from lib 01:01:02.480 --> 01:01:05.910 align:start position:0% control space and import it from lib upright<01:01:03.520> API<01:01:04.520> and<01:01:04.720> we're<01:01:04.920> now<01:01:05.200> hoping<01:01:05.799> that 01:01:05.910 --> 01:01:05.920 align:start position:0% upright API and we're now hoping that 01:01:05.920 --> 01:01:08.349 align:start position:0% upright API and we're now hoping that we're<01:01:06.039> going<01:01:06.160> to<01:01:06.359> get<01:01:06.640> a<01:01:06.839> new<01:01:07.119> user<01:01:07.839> right<01:01:08.079> here 01:01:08.349 --> 01:01:08.359 align:start position:0% we're going to get a new user right here 01:01:08.359 --> 01:01:11.150 align:start position:0% we're going to get a new user right here or<01:01:08.520> at<01:01:08.640> least<01:01:08.799> a<01:01:08.960> new<01:01:09.200> account<01:01:10.000> back<01:01:10.680> after<01:01:10.960> the 01:01:11.150 --> 01:01:11.160 align:start position:0% or at least a new account back after the 01:01:11.160 --> 01:01:13.870 align:start position:0% or at least a new account back after the creation<01:01:11.760> is<01:01:12.000> done<01:01:12.839> so<01:01:13.079> let's<01:01:13.280> go<01:01:13.400> ahead<01:01:13.680> and 01:01:13.870 --> 01:01:13.880 align:start position:0% creation is done so let's go ahead and 01:01:13.880 --> 01:01:17.109 align:start position:0% creation is done so let's go ahead and conso<01:01:14.359> log<01:01:14.640> that<01:01:14.839> user<01:01:15.599> right<01:01:15.839> here<01:01:16.599> by<01:01:16.760> saying 01:01:17.109 --> 01:01:17.119 align:start position:0% conso log that user right here by saying 01:01:17.119 --> 01:01:21.630 align:start position:0% conso log that user right here by saying consol<01:01:17.559> log<01:01:17.960> new<01:01:18.319> user<01:01:19.319> now<01:01:19.760> if<01:01:19.880> we<01:01:20.079> save<01:01:20.640> this 01:01:21.630 --> 01:01:21.640 align:start position:0% consol log new user now if we save this 01:01:21.640 --> 01:01:24.990 align:start position:0% consol log new user now if we save this we<01:01:21.799> are<01:01:22.000> ready<01:01:22.319> to<01:01:22.880> submit<01:01:23.680> our<01:01:23.880> form<01:01:24.760> by 01:01:24.990 --> 01:01:25.000 align:start position:0% we are ready to submit our form by 01:01:25.000 --> 01:01:28.150 align:start position:0% we are ready to submit our form by entering<01:01:25.480> a<01:01:25.720> name<01:01:26.400> let's<01:01:26.559> do<01:01:26.880> Adrien<01:01:27.880> we<01:01:28.000> can 01:01:28.150 --> 01:01:28.160 align:start position:0% entering a name let's do Adrien we can 01:01:28.160 --> 01:01:30.430 align:start position:0% entering a name let's do Adrien we can do<01:01:28.520> JavaScript 01:01:30.430 --> 01:01:30.440 align:start position:0% do JavaScript 01:01:30.440 --> 01:01:34.069 align:start position:0% do JavaScript Mastery<01:01:31.440> and<01:01:31.640> an<01:01:31.880> email<01:01:32.520> off<01:01:32.880> contact<01:01:33.680> JS 01:01:34.069 --> 01:01:34.079 align:start position:0% Mastery and an email off contact JS 01:01:34.079 --> 01:01:37.829 align:start position:0% Mastery and an email off contact JS mastery.<01:01:34.880> proo<01:01:35.520> and<01:01:35.720> finally<01:01:36.319> a<01:01:36.599> password<01:01:37.559> so 01:01:37.829 --> 01:01:37.839 align:start position:0% mastery. proo and finally a password so 01:01:37.839 --> 01:01:40.309 align:start position:0% mastery. proo and finally a password so let's<01:01:38.039> go<01:01:38.200> ahead<01:01:38.480> and<01:01:38.720> click<01:01:39.160> sign 01:01:40.309 --> 01:01:40.319 align:start position:0% let's go ahead and click sign 01:01:40.319 --> 01:01:43.109 align:start position:0% let's go ahead and click sign up<01:01:41.319> and<01:01:41.640> we<01:01:41.799> have<01:01:42.079> really<01:01:42.319> good<01:01:42.520> validation 01:01:43.109 --> 01:01:43.119 align:start position:0% up and we have really good validation 01:01:43.119 --> 01:01:45.829 align:start position:0% up and we have really good validation here<01:01:43.400> I'm<01:01:43.559> glad<01:01:43.839> we<01:01:44.000> were<01:01:44.200> able<01:01:44.400> to<01:01:44.559> see<01:01:44.799> it<01:01:45.720> we 01:01:45.829 --> 01:01:45.839 align:start position:0% here I'm glad we were able to see it we 01:01:45.839 --> 01:01:47.750 align:start position:0% here I'm glad we were able to see it we need<01:01:46.079> eight<01:01:46.440> characters<01:01:47.200> so<01:01:47.400> I'm<01:01:47.520> going<01:01:47.599> to 01:01:47.750 --> 01:01:47.760 align:start position:0% need eight characters so I'm going to 01:01:47.760 --> 01:01:50.510 align:start position:0% need eight characters so I'm going to enter<01:01:48.079> them<01:01:48.520> and<01:01:48.720> then<01:01:48.920> click<01:01:49.319> sign 01:01:50.510 --> 01:01:50.520 align:start position:0% enter them and then click sign 01:01:50.520 --> 01:01:53.150 align:start position:0% enter them and then click sign up<01:01:51.520> now<01:01:51.799> it<01:01:51.960> seems<01:01:52.279> like<01:01:52.599> nothing<01:01:52.920> has 01:01:53.150 --> 01:01:53.160 align:start position:0% up now it seems like nothing has 01:01:53.160 --> 01:01:56.150 align:start position:0% up now it seems like nothing has happened<01:01:53.839> but<01:01:54.039> let's<01:01:54.200> go<01:01:54.559> ahead<01:01:54.920> and<01:01:55.160> go<01:01:55.359> to 01:01:56.150 --> 01:01:56.160 align:start position:0% happened but let's go ahead and go to 01:01:56.160 --> 01:01:58.390 align:start position:0% happened but let's go ahead and go to inspect<01:01:57.160> and<01:01:57.279> then<01:01:57.520> right<01:01:57.720> here<01:01:57.920> we<01:01:58.039> can<01:01:58.160> check 01:01:58.390 --> 01:01:58.400 align:start position:0% inspect and then right here we can check 01:01:58.400 --> 01:02:01.309 align:start position:0% inspect and then right here we can check the<01:01:58.559> console<01:01:59.359> we<01:01:59.599> indeed<01:02:00.240> did<01:02:00.520> get<01:02:00.799> back<01:02:01.000> an 01:02:01.309 --> 01:02:01.319 align:start position:0% the console we indeed did get back an 01:02:01.319 --> 01:02:04.829 align:start position:0% the console we indeed did get back an object<01:02:02.000> that<01:02:02.160> says<01:02:02.559> created<01:02:03.079> ad<01:02:03.640> updated<01:02:04.160> ad 01:02:04.829 --> 01:02:04.839 align:start position:0% object that says created ad updated ad 01:02:04.839 --> 01:02:08.390 align:start position:0% object that says created ad updated ad email<01:02:05.720> name<01:02:06.440> password<01:02:06.960> update<01:02:07.520> and<01:02:07.760> all<01:02:08.119> this 01:02:08.390 --> 01:02:08.400 align:start position:0% email name password update and all this 01:02:08.400 --> 01:02:10.190 align:start position:0% email name password update and all this good<01:02:08.680> stuff<01:02:09.359> which<01:02:09.520> means<01:02:09.799> that<01:02:09.960> this<01:02:10.079> is 01:02:10.190 --> 01:02:10.200 align:start position:0% good stuff which means that this is 01:02:10.200 --> 01:02:12.910 align:start position:0% good stuff which means that this is coming<01:02:10.640> back<01:02:10.880> from<01:02:11.200> aite<01:02:12.160> which<01:02:12.359> then<01:02:12.559> means 01:02:12.910 --> 01:02:12.920 align:start position:0% coming back from aite which then means 01:02:12.920 --> 01:02:15.710 align:start position:0% coming back from aite which then means that<01:02:13.079> our<01:02:13.279> user<01:02:13.920> was<01:02:14.160> indeed<01:02:14.599> created<01:02:15.520> it's 01:02:15.710 --> 01:02:15.720 align:start position:0% that our user was indeed created it's 01:02:15.720 --> 01:02:17.710 align:start position:0% that our user was indeed created it's that<01:02:16.000> we<01:02:16.160> just<01:02:16.279> didn't<01:02:16.520> do<01:02:16.760> anything<01:02:17.119> with<01:02:17.319> it 01:02:17.710 --> 01:02:17.720 align:start position:0% that we just didn't do anything with it 01:02:17.720 --> 01:02:19.630 align:start position:0% that we just didn't do anything with it which<01:02:17.839> is<01:02:17.960> going<01:02:18.039> to<01:02:18.160> be<01:02:18.279> our<01:02:18.520> next<01:02:18.799> goal<01:02:19.400> so 01:02:19.630 --> 01:02:19.640 align:start position:0% which is going to be our next goal so 01:02:19.640 --> 01:02:22.109 align:start position:0% which is going to be our next goal so now<01:02:19.960> if<01:02:20.079> we<01:02:20.240> go<01:02:20.440> back<01:02:20.599> to<01:02:20.760> our<01:02:20.920> ight<01:02:21.520> project 01:02:22.109 --> 01:02:22.119 align:start position:0% now if we go back to our ight project 01:02:22.119 --> 01:02:24.190 align:start position:0% now if we go back to our ight project and<01:02:22.359> reload<01:02:22.760> the<01:02:22.960> page<01:02:23.559> you<01:02:23.720> should<01:02:23.920> be<01:02:24.039> able 01:02:24.190 --> 01:02:24.200 align:start position:0% and reload the page you should be able 01:02:24.200 --> 01:02:27.549 align:start position:0% and reload the page you should be able to<01:02:24.559> see<01:02:24.960> that<01:02:25.200> a<01:02:25.359> new<01:02:25.599> user<01:02:26.119> has<01:02:26.279> been 01:02:27.549 --> 01:02:27.559 align:start position:0% to see that a new user has been 01:02:27.559 --> 01:02:30.230 align:start position:0% to see that a new user has been created<01:02:28.559> and<01:02:28.760> you<01:02:28.839> can<01:02:29.039> even<01:02:29.319> dive<01:02:29.599> into<01:02:29.880> it 01:02:30.230 --> 01:02:30.240 align:start position:0% created and you can even dive into it 01:02:30.240 --> 01:02:33.029 align:start position:0% created and you can even dive into it see<01:02:30.520> more<01:02:30.760> information<01:02:31.279> about<01:02:31.559> it<01:02:32.079> verify<01:02:32.720> it 01:02:33.029 --> 01:02:33.039 align:start position:0% see more information about it verify it 01:02:33.039 --> 01:02:35.829 align:start position:0% see more information about it verify it check<01:02:33.279> the<01:02:33.400> membership<01:02:34.119> or<01:02:34.359> do<01:02:34.920> a<01:02:35.119> lot<01:02:35.480> more 01:02:35.829 --> 01:02:35.839 align:start position:0% check the membership or do a lot more 01:02:35.839 --> 01:02:37.710 align:start position:0% check the membership or do a lot more stuff<01:02:36.200> which<01:02:36.319> is<01:02:36.480> pretty<01:02:36.760> amazing<01:02:37.359> that<01:02:37.520> we're 01:02:37.710 --> 01:02:37.720 align:start position:0% stuff which is pretty amazing that we're 01:02:37.720 --> 01:02:40.150 align:start position:0% stuff which is pretty amazing that we're able<01:02:37.920> to<01:02:38.119> set<01:02:38.319> up<01:02:38.599> authentication<01:02:39.599> this<01:02:39.799> early 01:02:40.150 --> 01:02:40.160 align:start position:0% able to set up authentication this early 01:02:40.160 --> 01:02:43.069 align:start position:0% able to set up authentication this early in<01:02:40.279> the<01:02:40.920> project<01:02:41.920> but<01:02:42.200> it's<01:02:42.359> not<01:02:42.559> going<01:02:42.760> to<01:02:42.880> be 01:02:43.069 --> 01:02:43.079 align:start position:0% in the project but it's not going to be 01:02:43.079 --> 01:02:45.269 align:start position:0% in the project but it's not going to be enough<01:02:43.480> just<01:02:43.599> to<01:02:43.760> create<01:02:44.039> our<01:02:44.200> users<01:02:44.920> we'll 01:02:45.269 --> 01:02:45.279 align:start position:0% enough just to create our users we'll 01:02:45.279 --> 01:02:47.950 align:start position:0% enough just to create our users we'll also<01:02:45.680> have<01:02:45.839> to<01:02:46.000> set<01:02:46.200> up<01:02:46.400> our<01:02:46.720> databases<01:02:47.720> and 01:02:47.950 --> 01:02:47.960 align:start position:0% also have to set up our databases and 01:02:47.960 --> 01:02:50.190 align:start position:0% also have to set up our databases and our<01:02:48.200> storage<01:02:48.720> buckets<01:02:49.279> for<01:02:49.520> all<01:02:49.680> of<01:02:49.839> this<01:02:49.960> to 01:02:50.190 --> 01:02:50.200 align:start position:0% our storage buckets for all of this to 01:02:50.200 --> 01:02:52.950 align:start position:0% our storage buckets for all of this to work<01:02:50.839> because<01:02:51.119> our<01:02:51.359> users<01:02:51.799> will<01:02:52.079> create<01:02:52.480> posts 01:02:52.950 --> 01:02:52.960 align:start position:0% work because our users will create posts 01:02:52.960 --> 01:02:54.390 align:start position:0% work because our users will create posts and<01:02:53.119> we<01:02:53.240> need<01:02:53.359> to<01:02:53.480> be<01:02:53.599> able<01:02:53.799> to<01:02:53.960> create 01:02:54.390 --> 01:02:54.400 align:start position:0% and we need to be able to create 01:02:54.400 --> 01:02:58.470 align:start position:0% and we need to be able to create relations<01:02:55.160> between<01:02:55.520> users<01:02:56.440> posts<01:02:57.119> and<01:02:57.480> more 01:02:58.470 --> 01:02:58.480 align:start position:0% relations between users posts and more 01:02:58.480 --> 01:03:00.710 align:start position:0% relations between users posts and more first<01:02:58.880> we're<01:02:59.039> going<01:02:59.200> to<01:02:59.359> create<01:02:59.720> a<01:02:59.880> new<01:03:00.160> bucket 01:03:00.710 --> 01:03:00.720 align:start position:0% first we're going to create a new bucket 01:03:00.720 --> 01:03:02.829 align:start position:0% first we're going to create a new bucket for<01:03:01.039> our<01:03:01.319> media<01:03:02.160> this<01:03:02.359> is<01:03:02.480> where<01:03:02.599> we're<01:03:02.760> going 01:03:02.829 --> 01:03:02.839 align:start position:0% for our media this is where we're going 01:03:02.839 --> 01:03:05.069 align:start position:0% for our media this is where we're going to<01:03:03.000> upload<01:03:03.359> our<01:03:03.559> images<01:03:04.359> so<01:03:04.520> let's<01:03:04.720> create<01:03:04.960> a 01:03:05.069 --> 01:03:05.079 align:start position:0% to upload our images so let's create a 01:03:05.079 --> 01:03:08.029 align:start position:0% to upload our images so let's create a new<01:03:05.279> bucket<01:03:05.960> and<01:03:06.200> call<01:03:06.480> it 01:03:08.029 --> 01:03:08.039 align:start position:0% new bucket and call it 01:03:08.039 --> 01:03:11.309 align:start position:0% new bucket and call it media<01:03:09.039> there<01:03:09.160> we<01:03:09.359> go<01:03:09.839> as<01:03:10.000> simple<01:03:10.319> as<01:03:10.440> it<01:03:10.599> gets 01:03:11.309 --> 01:03:11.319 align:start position:0% media there we go as simple as it gets 01:03:11.319 --> 01:03:13.589 align:start position:0% media there we go as simple as it gets immediately<01:03:11.960> we're<01:03:12.160> given<01:03:12.400> the<01:03:12.520> media<01:03:12.880> ID<01:03:13.440> so 01:03:13.589 --> 01:03:13.599 align:start position:0% immediately we're given the media ID so 01:03:13.599 --> 01:03:15.829 align:start position:0% immediately we're given the media ID so let's<01:03:13.799> go<01:03:13.920> ahead<01:03:14.119> and<01:03:14.319> copy<01:03:14.599> it<01:03:15.279> and<01:03:15.640> back 01:03:15.829 --> 01:03:15.839 align:start position:0% let's go ahead and copy it and back 01:03:15.839 --> 01:03:19.230 align:start position:0% let's go ahead and copy it and back within<01:03:16.079> our<01:03:16.359> app<01:03:16.720> we<01:03:16.839> can<01:03:17.000> go<01:03:17.160> to<01:03:17.319> our<01:03:17.799> EnV<01:03:18.319> file 01:03:19.230 --> 01:03:19.240 align:start position:0% within our app we can go to our EnV file 01:03:19.240 --> 01:03:21.309 align:start position:0% within our app we can go to our EnV file and<01:03:19.400> then<01:03:19.559> we<01:03:19.640> can<01:03:19.880> paste<01:03:20.119> it<01:03:20.359> right<01:03:20.599> here<01:03:21.079> but 01:03:21.309 --> 01:03:21.319 align:start position:0% and then we can paste it right here but 01:03:21.319 --> 01:03:24.950 align:start position:0% and then we can paste it right here but before<01:03:21.799> say<01:03:22.760> Vore<01:03:23.760> upright 01:03:24.950 --> 01:03:24.960 align:start position:0% before say Vore upright 01:03:24.960 --> 01:03:28.309 align:start position:0% before say Vore upright underscore<01:03:25.839> storage<01:03:26.640> uncore<01:03:27.240> ID<01:03:28.039> and<01:03:28.160> then 01:03:28.309 --> 01:03:28.319 align:start position:0% underscore storage uncore ID and then 01:03:28.319 --> 01:03:30.109 align:start position:0% underscore storage uncore ID and then set<01:03:28.599> this<01:03:28.760> equal<01:03:29.039> to<01:03:29.200> this<01:03:29.400> string<01:03:29.839> that<01:03:30.000> we 01:03:30.109 --> 01:03:30.119 align:start position:0% set this equal to this string that we 01:03:30.119 --> 01:03:33.390 align:start position:0% set this equal to this string that we got<01:03:30.359> from<01:03:30.599> here<01:03:31.319> this<01:03:31.559> is<01:03:31.720> our<01:03:31.920> storage<01:03:32.400> bucket 01:03:33.390 --> 01:03:33.400 align:start position:0% got from here this is our storage bucket 01:03:33.400 --> 01:03:35.150 align:start position:0% got from here this is our storage bucket now<01:03:33.640> while<01:03:33.799> we're<01:03:34.079> here<01:03:34.480> let's<01:03:34.680> go<01:03:34.799> ahead<01:03:35.000> and 01:03:35.150 --> 01:03:35.160 align:start position:0% now while we're here let's go ahead and 01:03:35.160 --> 01:03:37.870 align:start position:0% now while we're here let's go ahead and set<01:03:35.319> up<01:03:35.440> our<01:03:35.640> databases<01:03:36.319> as<01:03:36.480> well<01:03:37.240> so<01:03:37.559> click 01:03:37.870 --> 01:03:37.880 align:start position:0% set up our databases as well so click 01:03:37.880 --> 01:03:40.470 align:start position:0% set up our databases as well so click create<01:03:38.559> database<01:03:39.559> and<01:03:39.839> enter<01:03:40.119> the<01:03:40.240> new 01:03:40.470 --> 01:03:40.480 align:start position:0% create database and enter the new 01:03:40.480 --> 01:03:43.630 align:start position:0% create database and enter the new database<01:03:40.960> name<01:03:41.440> called<01:03:42.279> snapcam<01:03:43.279> you<01:03:43.440> don't 01:03:43.630 --> 01:03:43.640 align:start position:0% database name called snapcam you don't 01:03:43.640 --> 01:03:45.750 align:start position:0% database name called snapcam you don't have<01:03:43.760> to<01:03:43.920> enter<01:03:44.319> database<01:03:44.799> ID<01:03:45.359> because<01:03:45.640> it 01:03:45.750 --> 01:03:45.760 align:start position:0% have to enter database ID because it 01:03:45.760 --> 01:03:47.910 align:start position:0% have to enter database ID because it will<01:03:45.920> be<01:03:46.079> generated<01:03:46.640> automatically<01:03:47.520> so<01:03:47.720> just 01:03:47.910 --> 01:03:47.920 align:start position:0% will be generated automatically so just 01:03:47.920 --> 01:03:50.309 align:start position:0% will be generated automatically so just click<01:03:48.520> create<01:03:49.520> now<01:03:49.720> that<01:03:49.880> we<01:03:50.000> have<01:03:50.119> our 01:03:50.309 --> 01:03:50.319 align:start position:0% click create now that we have our 01:03:50.319 --> 01:03:53.190 align:start position:0% click create now that we have our database<01:03:50.920> we<01:03:51.000> can<01:03:51.160> go<01:03:51.240> ahead<01:03:51.440> and<01:03:51.640> copy<01:03:51.920> its<01:03:52.200> ID 01:03:53.190 --> 01:03:53.200 align:start position:0% database we can go ahead and copy its ID 01:03:53.200 --> 01:03:56.750 align:start position:0% database we can go ahead and copy its ID so<01:03:53.480> go<01:03:53.760> back<01:03:54.119> and<01:03:54.279> and<01:03:54.480> this<01:03:54.680> time<01:03:54.960> say<01:03:55.760> Vore 01:03:56.750 --> 01:03:56.760 align:start position:0% so go back and and this time say Vore 01:03:56.760 --> 01:04:01.230 align:start position:0% so go back and and this time say Vore aite<01:03:57.559> _<01:03:58.119> database<01:03:58.960> _<01:03:59.480> ID<01:04:00.160> and<01:04:00.279> we<01:04:00.359> can<01:04:00.599> paste<01:04:00.880> it 01:04:01.230 --> 01:04:01.240 align:start position:0% aite _ database _ ID and we can paste it 01:04:01.240 --> 01:04:04.109 align:start position:0% aite _ database _ ID and we can paste it right<01:04:01.480> here<01:04:02.039> so<01:04:02.319> now<01:04:02.480> we<01:04:02.640> have<01:04:02.799> the<01:04:02.920> aight<01:04:03.400> URL 01:04:04.109 --> 01:04:04.119 align:start position:0% right here so now we have the aight URL 01:04:04.119 --> 01:04:06.349 align:start position:0% right here so now we have the aight URL and<01:04:04.279> then<01:04:04.480> three<01:04:04.760> different<01:04:05.119> IDs<01:04:05.880> from<01:04:06.119> three 01:04:06.349 --> 01:04:06.359 align:start position:0% and then three different IDs from three 01:04:06.359 --> 01:04:08.549 align:start position:0% and then three different IDs from three different<01:04:06.680> services<01:04:07.440> that<01:04:07.640> aight<01:04:08.119> Cloud 01:04:08.549 --> 01:04:08.559 align:start position:0% different services that aight Cloud 01:04:08.559 --> 01:04:11.150 align:start position:0% different services that aight Cloud offers<01:04:09.520> now<01:04:09.799> while<01:04:09.960> we're<01:04:10.160> here<01:04:10.599> we<01:04:10.760> also<01:04:11.000> need 01:04:11.150 --> 01:04:11.160 align:start position:0% offers now while we're here we also need 01:04:11.160 --> 01:04:13.630 align:start position:0% offers now while we're here we also need to<01:04:11.440> Define<01:04:12.240> how<01:04:12.440> our<01:04:12.720> database<01:04:13.160> is<01:04:13.279> going<01:04:13.440> to 01:04:13.630 --> 01:04:13.640 align:start position:0% to Define how our database is going to 01:04:13.640 --> 01:04:15.990 align:start position:0% to Define how our database is going to look<01:04:13.920> like<01:04:14.400> so<01:04:14.720> the<01:04:14.960> entire<01:04:15.480> database 01:04:15.990 --> 01:04:16.000 align:start position:0% look like so the entire database 01:04:16.000 --> 01:04:19.430 align:start position:0% look like so the entire database structure<01:04:16.880> so<01:04:17.160> bear<01:04:17.480> with<01:04:17.680> me<01:04:18.359> let's<01:04:18.640> define 01:04:19.430 --> 01:04:19.440 align:start position:0% structure so bear with me let's define 01:04:19.440 --> 01:04:21.789 align:start position:0% structure so bear with me let's define all<01:04:19.680> of<01:04:19.799> the<01:04:20.000> collections<01:04:20.880> and<01:04:21.240> relations 01:04:21.789 --> 01:04:21.799 align:start position:0% all of the collections and relations 01:04:21.799 --> 01:04:23.309 align:start position:0% all of the collections and relations between<01:04:22.160> them<01:04:22.520> that<01:04:22.599> we're<01:04:22.760> going<01:04:22.839> to<01:04:23.039> have<01:04:23.200> in 01:04:23.309 --> 01:04:23.319 align:start position:0% between them that we're going to have in 01:04:23.319 --> 01:04:25.430 align:start position:0% between them that we're going to have in our<01:04:23.599> app<01:04:24.279> it's<01:04:24.440> going<01:04:24.599> to<01:04:24.760> take<01:04:24.920> some<01:04:25.119> time<01:04:25.240> to 01:04:25.430 --> 01:04:25.440 align:start position:0% our app it's going to take some time to 01:04:25.440 --> 01:04:27.990 align:start position:0% our app it's going to take some time to Define<01:04:25.920> them<01:04:26.359> but<01:04:26.640> after<01:04:27.039> that<01:04:27.359> we'll<01:04:27.599> be<01:04:27.839> good 01:04:27.990 --> 01:04:28.000 align:start position:0% Define them but after that we'll be good 01:04:28.000 --> 01:04:30.349 align:start position:0% Define them but after that we'll be good to<01:04:28.200> go<01:04:28.720> for<01:04:29.000> the<01:04:29.240> entirety<01:04:29.960> of<01:04:30.119> this 01:04:30.349 --> 01:04:30.359 align:start position:0% to go for the entirety of this 01:04:30.359 --> 01:04:32.789 align:start position:0% to go for the entirety of this phenomenal<01:04:30.920> build<01:04:31.720> so<01:04:32.000> let's<01:04:32.279> just<01:04:32.480> click 01:04:32.789 --> 01:04:32.799 align:start position:0% phenomenal build so let's just click 01:04:32.799 --> 01:04:35.349 align:start position:0% phenomenal build so let's just click create<01:04:33.200> collection<01:04:34.039> let's<01:04:34.279> enter<01:04:34.599> our<01:04:34.880> first 01:04:35.349 --> 01:04:35.359 align:start position:0% create collection let's enter our first 01:04:35.359 --> 01:04:38.349 align:start position:0% create collection let's enter our first collection<01:04:35.799> name<01:04:36.319> which<01:04:36.440> is<01:04:36.559> going<01:04:36.760> to<01:04:36.920> be 01:04:38.349 --> 01:04:38.359 align:start position:0% collection name which is going to be 01:04:38.359 --> 01:04:41.910 align:start position:0% collection name which is going to be posts<01:04:39.359> and<01:04:39.680> click<01:04:40.240> create<01:04:41.240> then<01:04:41.480> you<01:04:41.599> need<01:04:41.760> to 01:04:41.910 --> 01:04:41.920 align:start position:0% posts and click create then you need to 01:04:41.920 --> 01:04:45.349 align:start position:0% posts and click create then you need to go<01:04:42.079> to<01:04:42.359> settings<01:04:43.359> you<01:04:43.480> need<01:04:43.640> to<01:04:43.880> head<01:04:44.119> down<01:04:44.400> to 01:04:45.349 --> 01:04:45.359 align:start position:0% go to settings you need to head down to 01:04:45.359 --> 01:04:47.789 align:start position:0% go to settings you need to head down to permissions<01:04:46.359> and<01:04:46.599> you<01:04:46.680> can<01:04:46.920> allow<01:04:47.400> access 01:04:47.789 --> 01:04:47.799 align:start position:0% permissions and you can allow access 01:04:47.799 --> 01:04:51.230 align:start position:0% permissions and you can allow access from<01:04:48.200> anywhere<01:04:48.799> by<01:04:48.960> clicking<01:04:49.640> any<01:04:50.640> then<01:04:50.960> check 01:04:51.230 --> 01:04:51.240 align:start position:0% from anywhere by clicking any then check 01:04:51.240 --> 01:04:55.309 align:start position:0% from anywhere by clicking any then check all<01:04:51.480> the<01:04:52.000> texts<01:04:53.000> and<01:04:53.319> click<01:04:53.680> update 01:04:55.309 --> 01:04:55.319 align:start position:0% all the texts and click update 01:04:55.319 --> 01:04:58.029 align:start position:0% all the texts and click update so<01:04:55.680> it's<01:04:55.920> pretty<01:04:56.200> cool<01:04:56.559> how<01:04:56.720> we<01:04:56.880> have<01:04:57.079> a<01:04:57.319> robust 01:04:58.029 --> 01:04:58.039 align:start position:0% so it's pretty cool how we have a robust 01:04:58.039 --> 01:05:01.190 align:start position:0% so it's pretty cool how we have a robust permissions<01:04:58.799> SL<01:04:59.359> roll<01:04:59.799> system<01:05:00.480> built<01:05:00.839> into 01:05:01.190 --> 01:05:01.200 align:start position:0% permissions SL roll system built into 01:05:01.200 --> 01:05:04.109 align:start position:0% permissions SL roll system built into aight<01:05:01.720> Cloud<01:05:02.720> next<01:05:03.039> we<01:05:03.119> can<01:05:03.319> repeat<01:05:03.599> the<01:05:03.760> same 01:05:04.109 --> 01:05:04.119 align:start position:0% aight Cloud next we can repeat the same 01:05:04.119 --> 01:05:06.549 align:start position:0% aight Cloud next we can repeat the same process<01:05:04.680> for<01:05:04.960> our<01:05:05.200> users<01:05:05.680> collection<01:05:06.359> so 01:05:06.549 --> 01:05:06.559 align:start position:0% process for our users collection so 01:05:06.559 --> 01:05:09.269 align:start position:0% process for our users collection so let's<01:05:06.799> create<01:05:07.039> a<01:05:07.160> new<01:05:07.359> collection<01:05:08.079> called 01:05:09.269 --> 01:05:09.279 align:start position:0% let's create a new collection called 01:05:09.279 --> 01:05:11.109 align:start position:0% let's create a new collection called users<01:05:10.279> click 01:05:11.109 --> 01:05:11.119 align:start position:0% users click 01:05:11.119 --> 01:05:13.309 align:start position:0% users click create<01:05:12.119> go<01:05:12.279> to 01:05:13.309 --> 01:05:13.319 align:start position:0% create go to 01:05:13.319 --> 01:05:16.390 align:start position:0% create go to settings<01:05:14.319> same<01:05:14.599> thing<01:05:14.880> here<01:05:15.160> we<01:05:15.279> need<01:05:15.440> to<01:05:15.599> add 01:05:16.390 --> 01:05:16.400 align:start position:0% settings same thing here we need to add 01:05:16.400 --> 01:05:19.549 align:start position:0% settings same thing here we need to add permissions<01:05:17.400> click<01:05:17.720> any<01:05:18.640> and<01:05:18.799> then<01:05:18.960> take<01:05:19.279> all 01:05:19.549 --> 01:05:19.559 align:start position:0% permissions click any and then take all 01:05:19.559 --> 01:05:23.109 align:start position:0% permissions click any and then take all the<01:05:19.920> boxes<01:05:20.920> and<01:05:21.119> click<01:05:21.640> update<01:05:22.640> and<01:05:22.880> now 01:05:23.109 --> 01:05:23.119 align:start position:0% the boxes and click update and now 01:05:23.119 --> 01:05:24.910 align:start position:0% the boxes and click update and now there's<01:05:23.319> going<01:05:23.480> to<01:05:23.559> be<01:05:23.680> a<01:05:23.760> third<01:05:24.200> one<01:05:24.640> which<01:05:24.760> is 01:05:24.910 --> 01:05:24.920 align:start position:0% there's going to be a third one which is 01:05:24.920 --> 01:05:27.589 align:start position:0% there's going to be a third one which is going<01:05:25.039> to<01:05:25.200> be<01:05:25.359> called<01:05:26.079> saves<01:05:27.079> and<01:05:27.319> this<01:05:27.440> is 01:05:27.589 --> 01:05:27.599 align:start position:0% going to be called saves and this is 01:05:27.599 --> 01:05:30.269 align:start position:0% going to be called saves and this is going<01:05:27.760> to<01:05:27.880> be<01:05:28.039> for<01:05:28.359> all<01:05:28.640> the<01:05:28.880> saved 01:05:30.269 --> 01:05:30.279 align:start position:0% going to be for all the saved 01:05:30.279 --> 01:05:33.470 align:start position:0% going to be for all the saved posts<01:05:31.279> within<01:05:31.720> here<01:05:32.119> we<01:05:32.240> can<01:05:32.400> also<01:05:32.640> go<01:05:32.799> to 01:05:33.470 --> 01:05:33.480 align:start position:0% posts within here we can also go to 01:05:33.480 --> 01:05:35.510 align:start position:0% posts within here we can also go to settings<01:05:34.480> go<01:05:34.640> to 01:05:35.510 --> 01:05:35.520 align:start position:0% settings go to 01:05:35.520 --> 01:05:38.710 align:start position:0% settings go to permissions<01:05:36.520> add<01:05:36.920> any<01:05:37.680> and<01:05:37.839> then<01:05:38.079> select<01:05:38.480> all 01:05:38.710 --> 01:05:38.720 align:start position:0% permissions add any and then select all 01:05:38.720 --> 01:05:41.990 align:start position:0% permissions add any and then select all the<01:05:38.960> boxes<01:05:39.960> and<01:05:40.200> click<01:05:40.520> update<01:05:41.400> and<01:05:41.599> now<01:05:41.880> we 01:05:41.990 --> 01:05:42.000 align:start position:0% the boxes and click update and now we 01:05:42.000 --> 01:05:44.390 align:start position:0% the boxes and click update and now we have<01:05:42.119> to<01:05:42.279> start<01:05:42.559> creating<01:05:43.119> relations<01:05:44.119> so 01:05:44.390 --> 01:05:44.400 align:start position:0% have to start creating relations so 01:05:44.400 --> 01:05:47.029 align:start position:0% have to start creating relations so let's<01:05:44.640> go<01:05:44.799> to<01:05:44.960> the<01:05:45.200> posts<01:05:45.839> collection<01:05:46.799> and 01:05:47.029 --> 01:05:47.039 align:start position:0% let's go to the posts collection and 01:05:47.039 --> 01:05:49.750 align:start position:0% let's go to the posts collection and again<01:05:47.400> make<01:05:47.599> sure<01:05:47.839> to<01:05:48.119> follow<01:05:48.839> exactly<01:05:49.480> what<01:05:49.599> I 01:05:49.750 --> 01:05:49.760 align:start position:0% again make sure to follow exactly what I 01:05:49.760 --> 01:05:51.829 align:start position:0% again make sure to follow exactly what I do<01:05:50.039> here<01:05:50.440> because<01:05:50.640> our<01:05:50.920> app<01:05:51.160> is<01:05:51.279> not<01:05:51.480> going<01:05:51.640> to 01:05:51.829 --> 01:05:51.839 align:start position:0% do here because our app is not going to 01:05:51.839 --> 01:05:53.510 align:start position:0% do here because our app is not going to work<01:05:52.200> if<01:05:52.319> we<01:05:52.440> don't<01:05:52.720> properly<01:05:53.079> set<01:05:53.240> up<01:05:53.359> our 01:05:53.510 --> 01:05:53.520 align:start position:0% work if we don't properly set up our 01:05:53.520 --> 01:05:54.870 align:start position:0% work if we don't properly set up our relations 01:05:54.870 --> 01:05:54.880 align:start position:0% relations 01:05:54.880 --> 01:05:56.630 align:start position:0% relations it's<01:05:55.119> important<01:05:55.520> that<01:05:55.680> we<01:05:55.799> create<01:05:56.079> relations 01:05:56.630 --> 01:05:56.640 align:start position:0% it's important that we create relations 01:05:56.640 --> 01:05:59.910 align:start position:0% it's important that we create relations immediately<01:05:57.440> so<01:05:57.799> everything<01:05:58.200> works<01:05:58.599> later<01:05:58.920> on 01:05:59.910 --> 01:05:59.920 align:start position:0% immediately so everything works later on 01:05:59.920 --> 01:06:01.510 align:start position:0% immediately so everything works later on so<01:06:00.319> go<01:06:00.520> to 01:06:01.510 --> 01:06:01.520 align:start position:0% so go to 01:06:01.520 --> 01:06:04.390 align:start position:0% so go to attributes<01:06:02.520> and<01:06:02.640> then<01:06:02.880> click<01:06:03.240> create 01:06:04.390 --> 01:06:04.400 align:start position:0% attributes and then click create 01:06:04.400 --> 01:06:06.750 align:start position:0% attributes and then click create attribute<01:06:05.400> in<01:06:05.599> this<01:06:05.839> case<01:06:06.039> we're<01:06:06.240> immediately 01:06:06.750 --> 01:06:06.760 align:start position:0% attribute in this case we're immediately 01:06:06.760 --> 01:06:09.670 align:start position:0% attribute in this case we're immediately diving<01:06:07.119> to<01:06:07.359> a<01:06:07.559> complex<01:06:08.039> attribute<01:06:08.839> of<01:06:09.000> a<01:06:09.200> type 01:06:09.670 --> 01:06:09.680 align:start position:0% diving to a complex attribute of a type 01:06:09.680 --> 01:06:11.789 align:start position:0% diving to a complex attribute of a type relationship<01:06:10.680> in<01:06:10.880> this<01:06:11.119> case<01:06:11.359> we<01:06:11.480> want<01:06:11.599> to 01:06:11.789 --> 01:06:11.799 align:start position:0% relationship in this case we want to 01:06:11.799 --> 01:06:14.990 align:start position:0% relationship in this case we want to create<01:06:12.279> a<01:06:12.559> two-way<01:06:13.559> relationship<01:06:14.559> and<01:06:14.839> this 01:06:14.990 --> 01:06:15.000 align:start position:0% create a two-way relationship and this 01:06:15.000 --> 01:06:17.029 align:start position:0% create a two-way relationship and this is<01:06:15.119> going<01:06:15.279> to<01:06:15.400> be<01:06:15.520> a<01:06:15.680> relationship<01:06:16.400> between<01:06:16.799> a 01:06:17.029 --> 01:06:17.039 align:start position:0% is going to be a relationship between a 01:06:17.039 --> 01:06:20.750 align:start position:0% is going to be a relationship between a post<01:06:17.720> and<01:06:17.920> a<01:06:18.400> user<01:06:19.400> so<01:06:19.599> we<01:06:19.680> can<01:06:19.799> say<01:06:20.039> users 01:06:20.750 --> 01:06:20.760 align:start position:0% post and a user so we can say users 01:06:20.760 --> 01:06:24.230 align:start position:0% post and a user so we can say users attribute<01:06:21.279> key<01:06:21.799> is<01:06:21.960> going<01:06:22.119> to<01:06:22.319> be<01:06:23.000> creator<01:06:24.079> and 01:06:24.230 --> 01:06:24.240 align:start position:0% attribute key is going to be creator and 01:06:24.240 --> 01:06:26.150 align:start position:0% attribute key is going to be creator and then<01:06:24.359> the<01:06:24.559> attribute<01:06:25.039> key<01:06:25.279> in<01:06:25.400> the<01:06:25.599> related 01:06:26.150 --> 01:06:26.160 align:start position:0% then the attribute key in the related 01:06:26.160 --> 01:06:28.109 align:start position:0% then the attribute key in the related collection<01:06:26.680> is<01:06:26.799> going<01:06:27.000> to<01:06:27.119> be 01:06:28.109 --> 01:06:28.119 align:start position:0% collection is going to be 01:06:28.119 --> 01:06:31.430 align:start position:0% collection is going to be posts<01:06:29.119> and<01:06:29.319> a<01:06:29.559> relation<01:06:30.079> is<01:06:30.240> going<01:06:30.400> to<01:06:30.559> be<01:06:31.000> many 01:06:31.430 --> 01:06:31.440 align:start position:0% posts and a relation is going to be many 01:06:31.440 --> 01:06:32.309 align:start position:0% posts and a relation is going to be many to 01:06:32.309 --> 01:06:32.319 align:start position:0% to 01:06:32.319 --> 01:06:35.430 align:start position:0% to one<01:06:33.319> so<01:06:33.599> this<01:06:33.720> is<01:06:33.880> how<01:06:34.039> it's<01:06:34.160> going<01:06:34.319> to<01:06:34.520> look 01:06:35.430 --> 01:06:35.440 align:start position:0% one so this is how it's going to look 01:06:35.440 --> 01:06:39.309 align:start position:0% one so this is how it's going to look like<01:06:36.440> one<01:06:36.760> Creator<01:06:37.480> can<01:06:37.680> have<01:06:37.920> multiple<01:06:38.440> posts 01:06:39.309 --> 01:06:39.319 align:start position:0% like one Creator can have multiple posts 01:06:39.319 --> 01:06:41.269 align:start position:0% like one Creator can have multiple posts and<01:06:39.559> while<01:06:39.720> we're<01:06:40.039> here<01:06:40.480> it<01:06:40.640> wouldn't<01:06:40.920> be<01:06:41.119> such 01:06:41.269 --> 01:06:41.279 align:start position:0% and while we're here it wouldn't be such 01:06:41.279 --> 01:06:44.190 align:start position:0% and while we're here it wouldn't be such a<01:06:41.520> bad<01:06:41.760> idea<01:06:42.279> to<01:06:42.520> start<01:06:42.839> sketching<01:06:43.319> things<01:06:43.559> out 01:06:44.190 --> 01:06:44.200 align:start position:0% a bad idea to start sketching things out 01:06:44.200 --> 01:06:47.470 align:start position:0% a bad idea to start sketching things out right<01:06:44.839> in<01:06:45.000> our<01:06:45.240> ultimate<01:06:45.680> nextjs<01:06:46.319> 13<01:06:46.839> course 01:06:47.470 --> 01:06:47.480 align:start position:0% right in our ultimate nextjs 13 course 01:06:47.480 --> 01:06:49.670 align:start position:0% right in our ultimate nextjs 13 course we<01:06:47.599> were<01:06:47.760> doing<01:06:48.200> a<01:06:48.400> lot<01:06:48.599> of<01:06:48.799> sketching<01:06:49.480> because 01:06:49.670 --> 01:06:49.680 align:start position:0% we were doing a lot of sketching because 01:06:49.680 --> 01:06:51.589 align:start position:0% we were doing a lot of sketching because we<01:06:49.839> covered<01:06:50.160> a<01:06:50.400> tough<01:06:50.760> project<01:06:51.200> where<01:06:51.319> we<01:06:51.480> have 01:06:51.589 --> 01:06:51.599 align:start position:0% we covered a tough project where we have 01:06:51.599 --> 01:06:54.190 align:start position:0% we covered a tough project where we have to<01:06:51.839> deeply<01:06:52.359> explain<01:06:53.119> all<01:06:53.319> of<01:06:53.440> the<01:06:53.599> concept 01:06:54.190 --> 01:06:54.200 align:start position:0% to deeply explain all of the concept 01:06:54.200 --> 01:06:57.069 align:start position:0% to deeply explain all of the concept covered<01:06:55.079> and<01:06:55.440> this<01:06:55.720> often<01:06:56.039> includes<01:06:56.640> a<01:06:56.760> lot<01:06:56.920> of 01:06:57.069 --> 01:06:57.079 align:start position:0% covered and this often includes a lot of 01:06:57.079 --> 01:07:00.029 align:start position:0% covered and this often includes a lot of sketching<01:06:58.000> so<01:06:58.440> in<01:06:58.680> this<01:06:58.920> video<01:06:59.559> I<01:06:59.640> want<01:06:59.760> to 01:07:00.029 --> 01:07:00.039 align:start position:0% sketching so in this video I want to 01:07:00.039 --> 01:07:02.309 align:start position:0% sketching so in this video I want to also<01:07:00.359> do<01:07:00.640> the<01:07:00.839> same<01:07:01.480> I<01:07:01.559> want<01:07:01.680> to<01:07:01.839> give<01:07:02.039> you<01:07:02.200> a 01:07:02.309 --> 01:07:02.319 align:start position:0% also do the same I want to give you a 01:07:02.319 --> 01:07:04.710 align:start position:0% also do the same I want to give you a bit<01:07:02.480> of<01:07:02.680> behind<01:07:03.039> the<01:07:03.200> scenes<01:07:03.880> of<01:07:04.039> the<01:07:04.240> level<01:07:04.520> of 01:07:04.710 --> 01:07:04.720 align:start position:0% bit of behind the scenes of the level of 01:07:04.720 --> 01:07:08.230 align:start position:0% bit of behind the scenes of the level of complexity<01:07:05.480> we<01:07:05.680> go<01:07:06.160> in<01:07:06.359> our<01:07:06.640> Pro<01:07:07.000> courses<01:07:07.920> so 01:07:08.230 --> 01:07:08.240 align:start position:0% complexity we go in our Pro courses so 01:07:08.240 --> 01:07:09.710 align:start position:0% complexity we go in our Pro courses so if<01:07:08.359> you<01:07:08.480> haven't<01:07:08.720> checked<01:07:09.000> them<01:07:09.119> out<01:07:09.359> yet 01:07:09.710 --> 01:07:09.720 align:start position:0% if you haven't checked them out yet 01:07:09.720 --> 01:07:12.750 align:start position:0% if you haven't checked them out yet that's<01:07:10.039> great<01:07:10.680> this<01:07:10.880> video<01:07:11.160> is<01:07:11.359> about<01:07:11.760> react 01:07:12.750 --> 01:07:12.760 align:start position:0% that's great this video is about react 01:07:12.760 --> 01:07:14.789 align:start position:0% that's great this video is about react but<01:07:13.240> after<01:07:13.520> you<01:07:13.720> watch<01:07:13.960> this<01:07:14.079> free<01:07:14.359> video<01:07:14.599> on 01:07:14.789 --> 01:07:14.799 align:start position:0% but after you watch this free video on 01:07:14.799 --> 01:07:17.510 align:start position:0% but after you watch this free video on YouTube<01:07:15.480> you<01:07:15.760> might<01:07:16.000> want<01:07:16.119> to<01:07:16.279> learn<01:07:16.559> nextjs 01:07:17.510 --> 01:07:17.520 align:start position:0% YouTube you might want to learn nextjs 01:07:17.520 --> 01:07:19.750 align:start position:0% YouTube you might want to learn nextjs server<01:07:18.079> actions<01:07:18.720> and<01:07:18.960> all<01:07:19.160> of<01:07:19.319> the<01:07:19.480> great 01:07:19.750 --> 01:07:19.760 align:start position:0% server actions and all of the great 01:07:19.760 --> 01:07:23.150 align:start position:0% server actions and all of the great stuff<01:07:20.200> that<01:07:20.319> it<01:07:20.680> offers<01:07:21.680> so<01:07:22.440> add<01:07:22.680> yourself<01:07:23.000> a 01:07:23.150 --> 01:07:23.160 align:start position:0% stuff that it offers so add yourself a 01:07:23.160 --> 01:07:25.589 align:start position:0% stuff that it offers so add yourself a to-do<01:07:24.000> after<01:07:24.200> you're<01:07:24.359> done<01:07:24.559> with<01:07:24.720> this<01:07:24.920> video 01:07:25.589 --> 01:07:25.599 align:start position:0% to-do after you're done with this video 01:07:25.599 --> 01:07:28.789 align:start position:0% to-do after you're done with this video check<01:07:25.839> out<01:07:26.079> JS<01:07:26.440> Mastery<01:07:27.000> Pro<01:07:28.000> but<01:07:28.400> with<01:07:28.559> that 01:07:28.789 --> 01:07:28.799 align:start position:0% check out JS Mastery Pro but with that 01:07:28.799 --> 01:07:31.230 align:start position:0% check out JS Mastery Pro but with that said<01:07:29.400> let's<01:07:29.599> start<01:07:29.839> sketching<01:07:30.520> the<01:07:30.760> complex 01:07:31.230 --> 01:07:31.240 align:start position:0% said let's start sketching the complex 01:07:31.240 --> 01:07:34.150 align:start position:0% said let's start sketching the complex architecture<01:07:32.079> of<01:07:32.240> our<01:07:32.440> snapgram<01:07:33.160> application 01:07:34.150 --> 01:07:34.160 align:start position:0% architecture of our snapgram application 01:07:34.160 --> 01:07:38.029 align:start position:0% architecture of our snapgram application we<01:07:34.440> obviously<01:07:35.000> have<01:07:35.359> posts<01:07:36.119> saves<01:07:36.799> and<01:07:37.039> users 01:07:38.029 --> 01:07:38.039 align:start position:0% we obviously have posts saves and users 01:07:38.039 --> 01:07:40.549 align:start position:0% we obviously have posts saves and users so<01:07:38.440> let's<01:07:38.640> go<01:07:38.760> ahead<01:07:39.039> and<01:07:39.319> create<01:07:39.640> all<01:07:39.880> of<01:07:40.119> that 01:07:40.549 --> 01:07:40.559 align:start position:0% so let's go ahead and create all of that 01:07:40.559 --> 01:07:43.150 align:start position:0% so let's go ahead and create all of that as<01:07:40.799> simple<01:07:41.520> rectangles<01:07:42.520> here<01:07:42.760> we're<01:07:42.920> going<01:07:43.039> to 01:07:43.150 --> 01:07:43.160 align:start position:0% as simple rectangles here we're going to 01:07:43.160 --> 01:07:46.150 align:start position:0% as simple rectangles here we're going to have<01:07:43.319> our<01:07:43.960> users<01:07:44.960> we're<01:07:45.240> also<01:07:45.520> going<01:07:45.640> to<01:07:45.880> have 01:07:46.150 --> 01:07:46.160 align:start position:0% have our users we're also going to have 01:07:46.160 --> 01:07:48.910 align:start position:0% have our users we're also going to have our<01:07:46.799> posts<01:07:47.799> and<01:07:48.119> finally<01:07:48.480> we're<01:07:48.640> going<01:07:48.720> to 01:07:48.910 --> 01:07:48.920 align:start position:0% our posts and finally we're going to 01:07:48.920 --> 01:07:51.470 align:start position:0% our posts and finally we're going to have<01:07:49.160> our<01:07:49.440> saves<01:07:50.200> which<01:07:50.319> are<01:07:50.559> three<01:07:50.799> different 01:07:51.470 --> 01:07:51.480 align:start position:0% have our saves which are three different 01:07:51.480 --> 01:07:53.549 align:start position:0% have our saves which are three different collections<01:07:52.480> now<01:07:52.720> it's<01:07:52.960> obvious<01:07:53.279> that<01:07:53.400> we're 01:07:53.549 --> 01:07:53.559 align:start position:0% collections now it's obvious that we're 01:07:53.559 --> 01:07:55.910 align:start position:0% collections now it's obvious that we're creating<01:07:54.079> a<01:07:54.240> many<01:07:54.559> toone<01:07:55.039> relationship 01:07:55.910 --> 01:07:55.920 align:start position:0% creating a many toone relationship 01:07:55.920 --> 01:07:59.190 align:start position:0% creating a many toone relationship between<01:07:56.279> our<01:07:56.559> user<01:07:57.520> called<01:07:57.880> a<01:07:58.119> Creator<01:07:59.000> and 01:07:59.190 --> 01:07:59.200 align:start position:0% between our user called a Creator and 01:07:59.200 --> 01:08:02.190 align:start position:0% between our user called a Creator and our<01:07:59.480> posts<01:08:00.359> so<01:08:00.680> this<01:08:00.839> means<01:08:01.200> that<01:08:01.400> one<01:08:01.599> user 01:08:02.190 --> 01:08:02.200 align:start position:0% our posts so this means that one user 01:08:02.200 --> 01:08:04.390 align:start position:0% our posts so this means that one user can<01:08:02.440> have<01:08:02.640> multiple<01:08:03.160> posts<01:08:03.799> so<01:08:04.000> let's<01:08:04.240> just 01:08:04.390 --> 01:08:04.400 align:start position:0% can have multiple posts so let's just 01:08:04.400 --> 01:08:06.750 align:start position:0% can have multiple posts so let's just create<01:08:04.799> this<01:08:05.240> relationship<01:08:06.240> that's<01:08:06.480> from 01:08:06.750 --> 01:08:06.760 align:start position:0% create this relationship that's from 01:08:06.760 --> 01:08:08.109 align:start position:0% create this relationship that's from both 01:08:08.109 --> 01:08:08.119 align:start position:0% both 01:08:08.119 --> 01:08:11.029 align:start position:0% both sides<01:08:09.119> and<01:08:09.400> we<01:08:09.520> can<01:08:09.680> do<01:08:10.160> something<01:08:10.520> like<01:08:10.760> this 01:08:11.029 --> 01:08:11.039 align:start position:0% sides and we can do something like this 01:08:11.039 --> 01:08:12.510 align:start position:0% sides and we can do something like this where<01:08:11.160> we're<01:08:11.279> going<01:08:11.400> to<01:08:11.559> Simply<01:08:11.960> duplicate 01:08:12.510 --> 01:08:12.520 align:start position:0% where we're going to Simply duplicate 01:08:12.520 --> 01:08:15.789 align:start position:0% where we're going to Simply duplicate this<01:08:12.799> right<01:08:13.000> here<01:08:13.640> indicating<01:08:14.400> that<01:08:14.599> one<01:08:14.839> user 01:08:15.789 --> 01:08:15.799 align:start position:0% this right here indicating that one user 01:08:15.799 --> 01:08:19.149 align:start position:0% this right here indicating that one user can<01:08:16.120> have<01:08:16.560> or<01:08:16.799> can<01:08:17.040> create<01:08:17.920> two<01:08:18.520> different 01:08:19.149 --> 01:08:19.159 align:start position:0% can have or can create two different 01:08:19.159 --> 01:08:22.149 align:start position:0% can have or can create two different posts<01:08:19.880> so<01:08:20.120> that's<01:08:20.319> going<01:08:20.480> to<01:08:20.679> work<01:08:21.239> like<01:08:21.480> this 01:08:22.149 --> 01:08:22.159 align:start position:0% posts so that's going to work like this 01:08:22.159 --> 01:08:24.030 align:start position:0% posts so that's going to work like this and<01:08:22.279> then<01:08:22.400> an<01:08:22.600> important<01:08:23.040> thing<01:08:23.319> here<01:08:23.640> is<01:08:23.880> is 01:08:24.030 --> 01:08:24.040 align:start position:0% and then an important thing here is is 01:08:24.040 --> 01:08:27.789 align:start position:0% and then an important thing here is is on<01:08:24.239> deleting<01:08:24.719> a<01:08:24.960> document<01:08:25.920> we<01:08:26.199> must<01:08:26.799> set<01:08:27.120> null 01:08:27.789 --> 01:08:27.799 align:start position:0% on deleting a document we must set null 01:08:27.799 --> 01:08:30.229 align:start position:0% on deleting a document we must set null as<01:08:28.000> this<01:08:28.120> is<01:08:28.279> going<01:08:28.520> to<01:08:28.880> set<01:08:29.120> the<01:08:29.359> document<01:08:29.759> ID 01:08:30.229 --> 01:08:30.239 align:start position:0% as this is going to set the document ID 01:08:30.239 --> 01:08:33.030 align:start position:0% as this is going to set the document ID as<01:08:30.480> null<01:08:30.880> in<01:08:31.040> all<01:08:31.359> related<01:08:31.839> documents<01:08:32.520> meaning 01:08:33.030 --> 01:08:33.040 align:start position:0% as null in all related documents meaning 01:08:33.040 --> 01:08:35.749 align:start position:0% as null in all related documents meaning it<01:08:33.159> doesn't<01:08:33.600> exist<01:08:34.279> so<01:08:34.520> let's<01:08:34.719> click 01:08:35.749 --> 01:08:35.759 align:start position:0% it doesn't exist so let's click 01:08:35.759 --> 01:08:38.189 align:start position:0% it doesn't exist so let's click create<01:08:36.759> and<01:08:37.040> it's<01:08:37.359> possible<01:08:37.759> that<01:08:37.920> something 01:08:38.189 --> 01:08:38.199 align:start position:0% create and it's possible that something 01:08:38.199 --> 01:08:40.229 align:start position:0% create and it's possible that something like<01:08:38.400> this<01:08:38.600> happens<01:08:39.279> but<01:08:39.400> don't<01:08:39.600> worry<01:08:40.080> just 01:08:40.229 --> 01:08:40.239 align:start position:0% like this happens but don't worry just 01:08:40.239 --> 01:08:41.110 align:start position:0% like this happens but don't worry just go<01:08:40.400> to 01:08:41.110 --> 01:08:41.120 align:start position:0% go to 01:08:41.120 --> 01:08:44.470 align:start position:0% go to databases<01:08:42.120> select<01:08:42.600> your<01:08:43.239> database<01:08:44.239> and<01:08:44.359> then 01:08:44.470 --> 01:08:44.480 align:start position:0% databases select your database and then 01:08:44.480 --> 01:08:46.189 align:start position:0% databases select your database and then you<01:08:44.560> can<01:08:44.679> see<01:08:44.920> your<01:08:45.159> collections<01:08:45.759> here 01:08:46.189 --> 01:08:46.199 align:start position:0% you can see your collections here 01:08:46.199 --> 01:08:49.269 align:start position:0% you can see your collections here specifically<01:08:47.000> we're<01:08:47.239> working<01:08:47.640> with<01:08:48.279> users 01:08:49.269 --> 01:08:49.279 align:start position:0% specifically we're working with users 01:08:49.279 --> 01:08:51.390 align:start position:0% specifically we're working with users and<01:08:49.440> then<01:08:49.719> attributes<01:08:50.480> and<01:08:50.600> you<01:08:50.679> can<01:08:50.839> see<01:08:51.080> here 01:08:51.390 --> 01:08:51.400 align:start position:0% and then attributes and you can see here 01:08:51.400 --> 01:08:53.149 align:start position:0% and then attributes and you can see here that<01:08:51.600> now<01:08:51.759> we<01:08:51.880> have<01:08:52.000> a<01:08:52.159> relationship<01:08:52.920> with 01:08:53.149 --> 01:08:53.159 align:start position:0% that now we have a relationship with 01:08:53.159 --> 01:08:55.149 align:start position:0% that now we have a relationship with posts 01:08:55.149 --> 01:08:55.159 align:start position:0% posts 01:08:55.159 --> 01:08:58.390 align:start position:0% posts and<01:08:55.400> also<01:08:56.040> that<01:08:56.279> same<01:08:57.040> attribute<01:08:57.679> should<01:08:57.960> be 01:08:58.390 --> 01:08:58.400 align:start position:0% and also that same attribute should be 01:08:58.400 --> 01:09:00.789 align:start position:0% and also that same attribute should be within<01:08:58.799> post<01:08:59.279> as<01:08:59.440> well<01:08:59.880> because<01:09:00.159> that's<01:09:00.400> the 01:09:00.789 --> 01:09:00.799 align:start position:0% within post as well because that's the 01:09:00.799 --> 01:09:02.829 align:start position:0% within post as well because that's the relationship<01:09:01.799> so<01:09:02.000> now<01:09:02.199> let's<01:09:02.400> create<01:09:02.640> a 01:09:02.829 --> 01:09:02.839 align:start position:0% relationship so now let's create a 01:09:02.839 --> 01:09:05.229 align:start position:0% relationship so now let's create a second<01:09:03.199> attribute<01:09:03.799> under<01:09:04.239> posts<01:09:04.920> which<01:09:05.080> is 01:09:05.229 --> 01:09:05.239 align:start position:0% second attribute under posts which is 01:09:05.239 --> 01:09:07.630 align:start position:0% second attribute under posts which is also<01:09:05.520> going<01:09:05.679> to<01:09:05.839> be<01:09:06.040> a<01:09:06.199> relationship 01:09:07.630 --> 01:09:07.640 align:start position:0% also going to be a relationship 01:09:07.640 --> 01:09:09.789 align:start position:0% also going to be a relationship attribute<01:09:08.640> it's<01:09:08.799> going<01:09:08.920> to<01:09:09.040> be<01:09:09.159> a<01:09:09.319> two-way 01:09:09.789 --> 01:09:09.799 align:start position:0% attribute it's going to be a two-way 01:09:09.799 --> 01:09:12.749 align:start position:0% attribute it's going to be a two-way relationship<01:09:10.719> related<01:09:11.319> to<01:09:11.600> users<01:09:12.279> one<01:09:12.440> more 01:09:12.749 --> 01:09:12.759 align:start position:0% relationship related to users one more 01:09:12.759 --> 01:09:15.630 align:start position:0% relationship related to users one more time<01:09:13.400> but<01:09:13.640> this<01:09:13.839> time<01:09:14.159> not<01:09:14.400> who<01:09:14.640> created<01:09:15.040> it 01:09:15.630 --> 01:09:15.640 align:start position:0% time but this time not who created it 01:09:15.640 --> 01:09:17.430 align:start position:0% time but this time not who created it rather<01:09:16.000> who<01:09:16.239> liked<01:09:16.560> it<01:09:16.960> so<01:09:17.080> we're<01:09:17.199> going<01:09:17.279> to 01:09:17.430 --> 01:09:17.440 align:start position:0% rather who liked it so we're going to 01:09:17.440 --> 01:09:20.510 align:start position:0% rather who liked it so we're going to say<01:09:17.759> likes<01:09:18.560> so<01:09:18.719> it's<01:09:18.839> going<01:09:19.000> to<01:09:19.120> be<01:09:19.359> likes<01:09:20.319> here 01:09:20.510 --> 01:09:20.520 align:start position:0% say likes so it's going to be likes here 01:09:20.520 --> 01:09:23.229 align:start position:0% say likes so it's going to be likes here we're<01:09:20.679> going<01:09:20.759> to<01:09:20.920> say<01:09:21.199> liked<01:09:21.799> so<01:09:22.000> who<01:09:22.199> liked<01:09:22.520> it 01:09:23.229 --> 01:09:23.239 align:start position:0% we're going to say liked so who liked it 01:09:23.239 --> 01:09:25.390 align:start position:0% we're going to say liked so who liked it and<01:09:23.359> then<01:09:23.839> relation<01:09:24.319> is<01:09:24.440> going<01:09:24.600> to<01:09:24.719> be<01:09:24.920> many<01:09:25.159> to 01:09:25.390 --> 01:09:25.400 align:start position:0% and then relation is going to be many to 01:09:25.400 --> 01:09:27.990 align:start position:0% and then relation is going to be many to many<01:09:25.920> because<01:09:26.239> many<01:09:26.480> users<01:09:27.120> can<01:09:27.319> like<01:09:27.719> many 01:09:27.990 --> 01:09:28.000 align:start position:0% many because many users can like many 01:09:28.000 --> 01:09:30.749 align:start position:0% many because many users can like many different<01:09:28.319> posts<01:09:29.239> and<01:09:29.400> then<01:09:29.560> on<01:09:29.799> deletion<01:09:30.560> we 01:09:30.749 --> 01:09:30.759 align:start position:0% different posts and then on deletion we 01:09:30.759 --> 01:09:33.269 align:start position:0% different posts and then on deletion we also<01:09:31.000> want<01:09:31.120> to<01:09:31.279> set<01:09:31.480> the<01:09:31.600> same<01:09:32.159> set<01:09:32.480> n<01:09:33.080> and 01:09:33.269 --> 01:09:33.279 align:start position:0% also want to set the same set n and 01:09:33.279 --> 01:09:37.189 align:start position:0% also want to set the same set n and click<01:09:34.120> create<01:09:35.120> there<01:09:35.279> we<01:09:35.520> go<01:09:36.520> and<01:09:36.719> now<01:09:36.960> we<01:09:37.040> can 01:09:37.189 --> 01:09:37.199 align:start position:0% click create there we go and now we can 01:09:37.199 --> 01:09:38.990 align:start position:0% click create there we go and now we can slowly<01:09:37.560> start<01:09:37.920> thinking<01:09:38.400> about<01:09:38.719> which 01:09:38.990 --> 01:09:39.000 align:start position:0% slowly start thinking about which 01:09:39.000 --> 01:09:41.309 align:start position:0% slowly start thinking about which attributes<01:09:39.560> are<01:09:39.839> posts<01:09:40.120> are<01:09:40.279> going<01:09:40.480> to<01:09:40.719> have 01:09:41.309 --> 01:09:41.319 align:start position:0% attributes are posts are going to have 01:09:41.319 --> 01:09:43.189 align:start position:0% attributes are posts are going to have so<01:09:41.600> right<01:09:41.839> here<01:09:42.159> we<01:09:42.239> can<01:09:42.440> make<01:09:42.600> this<01:09:42.759> a<01:09:42.880> bit 01:09:43.189 --> 01:09:43.199 align:start position:0% so right here we can make this a bit 01:09:43.199 --> 01:09:45.470 align:start position:0% so right here we can make this a bit smaller<01:09:44.199> and<01:09:44.440> make<01:09:44.600> it<01:09:44.719> a<01:09:44.839> bit<01:09:44.960> simpler<01:09:45.319> to 01:09:45.470 --> 01:09:45.480 align:start position:0% smaller and make it a bit simpler to 01:09:45.480 --> 01:09:48.229 align:start position:0% smaller and make it a bit simpler to read<01:09:46.239> let's<01:09:46.480> do<01:09:46.880> something<01:09:47.440> like<01:09:47.759> an 01:09:48.229 --> 01:09:48.239 align:start position:0% read let's do something like an 01:09:48.239 --> 01:09:51.229 align:start position:0% read let's do something like an attribute<01:09:49.239> which<01:09:49.400> is<01:09:49.520> going<01:09:49.679> to<01:09:49.839> be<01:09:50.239> Creator 01:09:51.229 --> 01:09:51.239 align:start position:0% attribute which is going to be Creator 01:09:51.239 --> 01:09:54.070 align:start position:0% attribute which is going to be Creator we<01:09:51.400> know<01:09:51.759> that<01:09:52.359> each<01:09:52.759> Post<01:09:53.159> in<01:09:53.319> this<01:09:53.520> case<01:09:53.960> has 01:09:54.070 --> 01:09:54.080 align:start position:0% we know that each Post in this case has 01:09:54.080 --> 01:09:56.470 align:start position:0% we know that each Post in this case has to<01:09:54.239> have<01:09:54.360> a<01:09:54.520> Creator<01:09:55.480> and<01:09:55.679> we<01:09:55.840> know<01:09:56.199> that<01:09:56.320> a 01:09:56.470 --> 01:09:56.480 align:start position:0% to have a Creator and we know that a 01:09:56.480 --> 01:10:00.189 align:start position:0% to have a Creator and we know that a user<01:09:56.960> is<01:09:57.120> going<01:09:57.280> to<01:09:57.560> have<01:09:57.840> a<01:09:58.280> post<01:09:59.280> attribute 01:10:00.189 --> 01:10:00.199 align:start position:0% user is going to have a post attribute 01:10:00.199 --> 01:10:02.910 align:start position:0% user is going to have a post attribute so<01:10:00.400> let's<01:10:00.600> do<01:10:00.840> something<01:10:01.159> like<01:10:01.400> this 01:10:02.910 --> 01:10:02.920 align:start position:0% so let's do something like this 01:10:02.920 --> 01:10:04.990 align:start position:0% so let's do something like this attributes<01:10:03.920> this<01:10:04.040> is<01:10:04.199> going<01:10:04.320> to<01:10:04.480> help<01:10:04.679> us<01:10:04.800> when 01:10:04.990 --> 01:10:05.000 align:start position:0% attributes this is going to help us when 01:10:05.000 --> 01:10:07.229 align:start position:0% attributes this is going to help us when creating<01:10:05.280> a<01:10:05.480> database<01:10:06.040> or<01:10:06.280> rather<01:10:06.640> not 01:10:07.229 --> 01:10:07.239 align:start position:0% creating a database or rather not 01:10:07.239 --> 01:10:09.350 align:start position:0% creating a database or rather not because<01:10:07.920> this<01:10:08.040> is<01:10:08.199> going<01:10:08.320> to<01:10:08.520> help<01:10:08.719> us 01:10:09.350 --> 01:10:09.360 align:start position:0% because this is going to help us 01:10:09.360 --> 01:10:10.950 align:start position:0% because this is going to help us understand<01:10:09.719> our<01:10:09.960> database 01:10:10.950 --> 01:10:10.960 align:start position:0% understand our database 01:10:10.960 --> 01:10:13.030 align:start position:0% understand our database structure<01:10:11.960> usually<01:10:12.440> you<01:10:12.560> would<01:10:12.760> have<01:10:12.880> to 01:10:13.030 --> 01:10:13.040 align:start position:0% structure usually you would have to 01:10:13.040 --> 01:10:14.350 align:start position:0% structure usually you would have to create<01:10:13.400> all<01:10:13.600> of<01:10:13.760> this<01:10:13.960> within<01:10:14.159> your 01:10:14.350 --> 01:10:14.360 align:start position:0% create all of this within your 01:10:14.360 --> 01:10:16.910 align:start position:0% create all of this within your application<01:10:15.199> but<01:10:15.400> now<01:10:15.719> aight<01:10:16.600> actually 01:10:16.910 --> 01:10:16.920 align:start position:0% application but now aight actually 01:10:16.920 --> 01:10:19.070 align:start position:0% application but now aight actually creates<01:10:17.239> the<01:10:17.360> relationships<01:10:18.239> for<01:10:18.520> us<01:10:18.920> which 01:10:19.070 --> 01:10:19.080 align:start position:0% creates the relationships for us which 01:10:19.080 --> 01:10:21.430 align:start position:0% creates the relationships for us which is<01:10:19.239> super<01:10:19.600> handy<01:10:20.360> and<01:10:20.520> the<01:10:20.719> second<01:10:21.000> attribute 01:10:21.430 --> 01:10:21.440 align:start position:0% is super handy and the second attribute 01:10:21.440 --> 01:10:24.189 align:start position:0% is super handy and the second attribute we<01:10:21.560> have<01:10:21.719> added<01:10:22.440> is<01:10:22.600> going<01:10:22.760> to<01:10:22.920> be<01:10:23.199> likes<01:10:24.000> so 01:10:24.189 --> 01:10:24.199 align:start position:0% we have added is going to be likes so 01:10:24.199 --> 01:10:26.910 align:start position:0% we have added is going to be likes so the<01:10:24.360> post<01:10:24.679> is<01:10:24.840> going<01:10:25.000> to<01:10:25.159> have<01:10:25.400> likes<01:10:26.159> and<01:10:26.360> then 01:10:26.910 --> 01:10:26.920 align:start position:0% the post is going to have likes and then 01:10:26.920 --> 01:10:29.590 align:start position:0% the post is going to have likes and then users<01:10:27.480> are<01:10:27.640> going<01:10:27.760> to<01:10:28.000> have<01:10:28.480> liked<01:10:29.080> so<01:10:29.360> which 01:10:29.590 --> 01:10:29.600 align:start position:0% users are going to have liked so which 01:10:29.600 --> 01:10:32.390 align:start position:0% users are going to have liked so which posts<01:10:30.199> have<01:10:30.400> they<01:10:30.560> liked<01:10:31.280> let's<01:10:31.480> move<01:10:31.800> forward 01:10:32.390 --> 01:10:32.400 align:start position:0% posts have they liked let's move forward 01:10:32.400 --> 01:10:34.590 align:start position:0% posts have they liked let's move forward let's<01:10:32.640> create<01:10:32.960> a<01:10:33.159> next<01:10:33.520> attribute<01:10:34.040> for<01:10:34.280> our 01:10:34.590 --> 01:10:34.600 align:start position:0% let's create a next attribute for our 01:10:34.600 --> 01:10:36.510 align:start position:0% let's create a next attribute for our post<01:10:35.199> and<01:10:35.360> that's<01:10:35.520> going<01:10:35.679> to<01:10:35.800> be<01:10:35.920> a<01:10:36.040> string 01:10:36.510 --> 01:10:36.520 align:start position:0% post and that's going to be a string 01:10:36.520 --> 01:10:38.990 align:start position:0% post and that's going to be a string this<01:10:36.760> time<01:10:37.560> the<01:10:37.760> attribute<01:10:38.239> key<01:10:38.560> is<01:10:38.719> going<01:10:38.880> to 01:10:38.990 --> 01:10:39.000 align:start position:0% this time the attribute key is going to 01:10:39.000 --> 01:10:42.470 align:start position:0% this time the attribute key is going to be<01:10:39.159> a<01:10:39.520> caption<01:10:40.520> the<01:10:40.760> size<01:10:41.040> is<01:10:41.199> going<01:10:41.360> to<01:10:41.560> be 01:10:42.470 --> 01:10:42.480 align:start position:0% be a caption the size is going to be 01:10:42.480 --> 01:10:45.310 align:start position:0% be a caption the size is going to be 2200<01:10:43.480> this<01:10:43.679> was<01:10:43.920> a<01:10:44.159> default<01:10:44.640> size<01:10:44.920> for<01:10:45.120> an 01:10:45.310 --> 01:10:45.320 align:start position:0% 2200 this was a default size for an 01:10:45.320 --> 01:10:47.310 align:start position:0% 2200 this was a default size for an Instagram<01:10:45.880> post<01:10:46.400> so<01:10:46.640> that's<01:10:46.800> where<01:10:47.000> we<01:10:47.120> took 01:10:47.310 --> 01:10:47.320 align:start position:0% Instagram post so that's where we took 01:10:47.320 --> 01:10:50.990 align:start position:0% Instagram post so that's where we took it<01:10:47.840> 2,200<01:10:49.080> characters<01:10:50.080> default<01:10:50.520> is<01:10:50.640> not<01:10:50.840> going 01:10:50.990 --> 01:10:51.000 align:start position:0% it 2,200 characters default is not going 01:10:51.000 --> 01:10:55.550 align:start position:0% it 2,200 characters default is not going to<01:10:51.120> be<01:10:51.480> anything<01:10:52.480> and<01:10:52.679> you<01:10:52.800> can<01:10:52.960> click<01:10:53.239> create 01:10:55.550 --> 01:10:55.560 align:start position:0% to be anything and you can click create 01:10:55.560 --> 01:10:57.910 align:start position:0% to be anything and you can click create we're<01:10:55.679> going<01:10:55.800> to<01:10:56.000> also<01:10:56.239> need<01:10:56.679> tags<01:10:57.199> attribute 01:10:57.910 --> 01:10:57.920 align:start position:0% we're going to also need tags attribute 01:10:57.920 --> 01:10:59.870 align:start position:0% we're going to also need tags attribute so<01:10:58.080> let's<01:10:58.280> go<01:10:58.400> ahead<01:10:58.600> and<01:10:58.760> create<01:10:59.000> a<01:10:59.159> new<01:10:59.360> one 01:10:59.870 --> 01:10:59.880 align:start position:0% so let's go ahead and create a new one 01:10:59.880 --> 01:11:01.870 align:start position:0% so let's go ahead and create a new one of<01:11:00.000> a<01:11:00.199> type<01:11:00.480> string<01:11:01.239> that's<01:11:01.440> going<01:11:01.600> to<01:11:01.719> be 01:11:01.870 --> 01:11:01.880 align:start position:0% of a type string that's going to be 01:11:01.880 --> 01:11:05.030 align:start position:0% of a type string that's going to be called<01:11:02.239> Tags<01:11:03.239> it's<01:11:03.400> going<01:11:03.560> to<01:11:03.640> be<01:11:03.840> 2200<01:11:04.840> as 01:11:05.030 --> 01:11:05.040 align:start position:0% called Tags it's going to be 2200 as 01:11:05.040 --> 01:11:07.830 align:start position:0% called Tags it's going to be 2200 as well<01:11:05.880> and<01:11:06.040> it's<01:11:06.199> going<01:11:06.360> to<01:11:06.480> be<01:11:06.679> an<01:11:06.880> array<01:11:07.600> of 01:11:07.830 --> 01:11:07.840 align:start position:0% well and it's going to be an array of 01:11:07.840 --> 01:11:09.510 align:start position:0% well and it's going to be an array of tags<01:11:08.480> pretty 01:11:09.510 --> 01:11:09.520 align:start position:0% tags pretty 01:11:09.520 --> 01:11:11.630 align:start position:0% tags pretty interesting<01:11:10.520> then<01:11:10.760> we're<01:11:10.920> going<01:11:11.000> to<01:11:11.159> need<01:11:11.440> an 01:11:11.630 --> 01:11:11.640 align:start position:0% interesting then we're going to need an 01:11:11.640 --> 01:11:15.350 align:start position:0% interesting then we're going to need an image<01:11:11.960> URL<01:11:12.600> so<01:11:12.760> let's<01:11:13.000> create<01:11:13.360> a<01:11:13.560> new<01:11:14.080> URL<01:11:14.679> type 01:11:15.350 --> 01:11:15.360 align:start position:0% image URL so let's create a new URL type 01:11:15.360 --> 01:11:18.030 align:start position:0% image URL so let's create a new URL type yeah<01:11:15.560> there's<01:11:15.760> a<01:11:15.960> special<01:11:16.400> type<01:11:16.679> for<01:11:16.880> the<01:11:17.040> URL 01:11:18.030 --> 01:11:18.040 align:start position:0% yeah there's a special type for the URL 01:11:18.040 --> 01:11:21.510 align:start position:0% yeah there's a special type for the URL which<01:11:18.199> is<01:11:18.320> going<01:11:18.480> to<01:11:18.600> be<01:11:18.800> called<01:11:19.199> image<01:11:20.520> URL 01:11:21.510 --> 01:11:21.520 align:start position:0% which is going to be called image URL 01:11:21.520 --> 01:11:23.790 align:start position:0% which is going to be called image URL and<01:11:21.640> then<01:11:21.800> it's<01:11:21.960> going<01:11:22.080> to<01:11:22.239> be<01:11:22.560> required<01:11:23.640> and 01:11:23.790 --> 01:11:23.800 align:start position:0% and then it's going to be required and 01:11:23.800 --> 01:11:26.550 align:start position:0% and then it's going to be required and click<01:11:24.360> create<01:11:25.360> we're<01:11:25.520> going<01:11:25.600> to<01:11:25.800> also<01:11:26.080> need<01:11:26.320> an 01:11:26.550 --> 01:11:26.560 align:start position:0% click create we're going to also need an 01:11:26.560 --> 01:11:28.990 align:start position:0% click create we're going to also need an image<01:11:26.960> ID<01:11:27.480> attribute<01:11:28.280> which<01:11:28.400> is<01:11:28.520> going<01:11:28.679> to<01:11:28.840> be 01:11:28.990 --> 01:11:29.000 align:start position:0% image ID attribute which is going to be 01:11:29.000 --> 01:11:31.430 align:start position:0% image ID attribute which is going to be of<01:11:29.120> a<01:11:29.320> type<01:11:29.679> string<01:11:30.679> this<01:11:30.800> is<01:11:30.960> needed<01:11:31.320> if 01:11:31.430 --> 01:11:31.440 align:start position:0% of a type string this is needed if 01:11:31.440 --> 01:11:33.790 align:start position:0% of a type string this is needed if somebody<01:11:31.840> wants<01:11:32.040> to<01:11:32.239> delete<01:11:32.760> a<01:11:33.000> post<01:11:33.560> so<01:11:33.719> we 01:11:33.790 --> 01:11:33.800 align:start position:0% somebody wants to delete a post so we 01:11:33.800 --> 01:11:35.590 align:start position:0% somebody wants to delete a post so we can<01:11:33.960> say<01:11:34.239> image 01:11:35.590 --> 01:11:35.600 align:start position:0% can say image 01:11:35.600 --> 01:11:39.189 align:start position:0% can say image ID<01:11:36.600> of<01:11:36.800> a<01:11:37.000> size<01:11:37.480> 2200<01:11:38.480> again<01:11:38.679> feel<01:11:38.880> free<01:11:39.120> to 01:11:39.189 --> 01:11:39.199 align:start position:0% ID of a size 2200 again feel free to 01:11:39.199 --> 01:11:41.229 align:start position:0% ID of a size 2200 again feel free to choose<01:11:39.440> whatever<01:11:39.800> you<01:11:39.920> want<01:11:40.239> here<01:11:40.920> and<01:11:41.080> it's 01:11:41.229 --> 01:11:41.239 align:start position:0% choose whatever you want here and it's 01:11:41.239 --> 01:11:43.350 align:start position:0% choose whatever you want here and it's going<01:11:41.400> to<01:11:41.560> be 01:11:43.350 --> 01:11:43.360 align:start position:0% going to be 01:11:43.360 --> 01:11:46.590 align:start position:0% going to be required<01:11:44.360> we<01:11:44.480> need<01:11:44.800> a<01:11:45.040> location<01:11:45.760> attribute<01:11:46.360> as 01:11:46.590 --> 01:11:46.600 align:start position:0% required we need a location attribute as 01:11:46.600 --> 01:11:49.229 align:start position:0% required we need a location attribute as well<01:11:47.000> of<01:11:47.120> a<01:11:47.320> type<01:11:47.639> string<01:11:48.199> so<01:11:48.400> let's<01:11:48.600> say 01:11:49.229 --> 01:11:49.239 align:start position:0% well of a type string so let's say 01:11:49.239 --> 01:11:52.550 align:start position:0% well of a type string so let's say location<01:11:50.239> size<01:11:50.639> is<01:11:50.800> going<01:11:50.960> to<01:11:51.080> be 01:11:52.550 --> 01:11:52.560 align:start position:0% location size is going to be 01:11:52.560 --> 01:11:55.430 align:start position:0% location size is going to be 2200 01:11:55.430 --> 01:11:55.440 align:start position:0% 2200 01:11:55.440 --> 01:11:57.550 align:start position:0% 2200 and<01:11:55.679> this<01:11:55.800> is<01:11:55.920> more<01:11:56.080> or<01:11:56.239> less<01:11:56.480> it<01:11:57.040> these<01:11:57.199> are 01:11:57.550 --> 01:11:57.560 align:start position:0% and this is more or less it these are 01:11:57.560 --> 01:12:00.350 align:start position:0% and this is more or less it these are all<01:11:58.120> the<01:11:58.320> attributes<01:11:59.080> that<01:11:59.239> we<01:11:59.400> need<01:11:59.800> for<01:12:00.080> our 01:12:00.350 --> 01:12:00.360 align:start position:0% all the attributes that we need for our 01:12:00.360 --> 01:12:03.270 align:start position:0% all the attributes that we need for our post<01:12:01.280> so<01:12:01.679> what<01:12:01.800> we<01:12:01.880> can<01:12:02.080> do<01:12:02.639> is<01:12:02.880> instead<01:12:03.159> of 01:12:03.270 --> 01:12:03.280 align:start position:0% post so what we can do is instead of 01:12:03.280 --> 01:12:05.229 align:start position:0% post so what we can do is instead of just<01:12:03.440> typing<01:12:03.760> them<01:12:03.920> out<01:12:04.440> we<01:12:04.520> can<01:12:04.679> go<01:12:04.800> ahead<01:12:05.040> and 01:12:05.229 --> 01:12:05.239 align:start position:0% just typing them out we can go ahead and 01:12:05.239 --> 01:12:08.390 align:start position:0% just typing them out we can go ahead and screenshot<01:12:06.040> what<01:12:06.199> we<01:12:06.360> have<01:12:06.639> here<01:12:07.560> on<01:12:07.880> Windows 01:12:08.390 --> 01:12:08.400 align:start position:0% screenshot what we have here on Windows 01:12:08.400 --> 01:12:11.189 align:start position:0% screenshot what we have here on Windows I<01:12:08.560> usually<01:12:08.920> use<01:12:09.199> command<01:12:09.679> shift<01:12:10.080> s<01:12:10.960> and<01:12:11.080> then 01:12:11.189 --> 01:12:11.199 align:start position:0% I usually use command shift s and then 01:12:11.199 --> 01:12:13.629 align:start position:0% I usually use command shift s and then you<01:12:11.320> can<01:12:11.520> simply<01:12:12.440> select<01:12:12.760> it<01:12:13.000> like<01:12:13.199> this 01:12:13.629 --> 01:12:13.639 align:start position:0% you can simply select it like this 01:12:13.639 --> 01:12:15.950 align:start position:0% you can simply select it like this there's<01:12:13.840> a<01:12:14.000> similar<01:12:14.360> shortcut<01:12:15.000> on<01:12:15.159> Mac<01:12:15.440> OS<01:12:15.840> as 01:12:15.950 --> 01:12:15.960 align:start position:0% there's a similar shortcut on Mac OS as 01:12:15.960 --> 01:12:18.470 align:start position:0% there's a similar shortcut on Mac OS as well<01:12:16.520> so<01:12:16.679> let's<01:12:16.920> take<01:12:17.159> it<01:12:17.719> and<01:12:17.840> let's<01:12:18.080> put<01:12:18.199> it 01:12:18.470 --> 01:12:18.480 align:start position:0% well so let's take it and let's put it 01:12:18.480 --> 01:12:20.990 align:start position:0% well so let's take it and let's put it right<01:12:18.719> here<01:12:19.239> within<01:12:19.480> our<01:12:19.639> fig<01:12:19.920> Jam<01:12:20.560> so<01:12:20.760> it's 01:12:20.990 --> 01:12:21.000 align:start position:0% right here within our fig Jam so it's 01:12:21.000 --> 01:12:22.910 align:start position:0% right here within our fig Jam so it's really<01:12:21.280> easy<01:12:21.560> to<01:12:22.080> understand<01:12:22.679> what 01:12:22.910 --> 01:12:22.920 align:start position:0% really easy to understand what 01:12:22.920 --> 01:12:26.270 align:start position:0% really easy to understand what properties<01:12:23.760> each<01:12:23.960> one<01:12:24.120> of<01:12:24.239> our<01:12:24.400> posts<01:12:25.280> has 01:12:26.270 --> 01:12:26.280 align:start position:0% properties each one of our posts has 01:12:26.280 --> 01:12:28.870 align:start position:0% properties each one of our posts has there<01:12:26.440> we<01:12:26.600> go<01:12:27.040> now<01:12:27.239> we<01:12:27.360> even<01:12:27.520> know<01:12:27.760> the<01:12:27.960> type 01:12:28.870 --> 01:12:28.880 align:start position:0% there we go now we even know the type 01:12:28.880 --> 01:12:30.990 align:start position:0% there we go now we even know the type this<01:12:29.120> is<01:12:29.280> going<01:12:29.440> to<01:12:29.560> be<01:12:29.719> helpful<01:12:30.120> later<01:12:30.400> on 01:12:30.990 --> 01:12:31.000 align:start position:0% this is going to be helpful later on 01:12:31.000 --> 01:12:32.470 align:start position:0% this is going to be helpful later on once<01:12:31.239> we<01:12:31.480> dive<01:12:31.760> into<01:12:31.960> the<01:12:32.080> further 01:12:32.470 --> 01:12:32.480 align:start position:0% once we dive into the further 01:12:32.480 --> 01:12:35.350 align:start position:0% once we dive into the further architecture<01:12:33.239> of<01:12:33.360> our<01:12:34.000> application<01:12:35.000> now<01:12:35.199> that 01:12:35.350 --> 01:12:35.360 align:start position:0% architecture of our application now that 01:12:35.360 --> 01:12:37.350 align:start position:0% architecture of our application now that we<01:12:35.520> have<01:12:35.679> all<01:12:35.840> the<01:12:36.000> attributes<01:12:36.840> we<01:12:36.920> can<01:12:37.080> go<01:12:37.239> to 01:12:37.350 --> 01:12:37.360 align:start position:0% we have all the attributes we can go to 01:12:37.360 --> 01:12:40.669 align:start position:0% we have all the attributes we can go to the<01:12:37.520> indexes<01:12:38.120> tab<01:12:38.440> of<01:12:38.560> our<01:12:38.800> posts<01:12:39.800> and<01:12:40.120> this<01:12:40.520> is 01:12:40.669 --> 01:12:40.679 align:start position:0% the indexes tab of our posts and this is 01:12:40.679 --> 01:12:42.990 align:start position:0% the indexes tab of our posts and this is where<01:12:40.920> aite<01:12:41.560> allows<01:12:41.880> you<01:12:42.000> to<01:12:42.120> do<01:12:42.360> automatic 01:12:42.990 --> 01:12:43.000 align:start position:0% where aite allows you to do automatic 01:12:43.000 --> 01:12:46.030 align:start position:0% where aite allows you to do automatic searching<01:12:43.880> of<01:12:44.239> your<01:12:44.520> collections<01:12:45.480> so<01:12:45.679> click 01:12:46.030 --> 01:12:46.040 align:start position:0% searching of your collections so click 01:12:46.040 --> 01:12:49.189 align:start position:0% searching of your collections so click create<01:12:46.440> index<01:12:47.239> you<01:12:47.360> can<01:12:47.600> call<01:12:47.760> it<01:12:48.040> caption<01:12:49.040> the 01:12:49.189 --> 01:12:49.199 align:start position:0% create index you can call it caption the 01:12:49.199 --> 01:12:52.149 align:start position:0% create index you can call it caption the index<01:12:49.639> type<01:12:50.000> is<01:12:50.159> going<01:12:50.280> to<01:12:50.400> be<01:12:50.560> full<01:12:50.960> text<01:12:51.920> the 01:12:52.149 --> 01:12:52.159 align:start position:0% index type is going to be full text the 01:12:52.159 --> 01:12:54.590 align:start position:0% index type is going to be full text the attribute<01:12:52.719> is<01:12:52.880> going<01:12:53.000> to<01:12:53.120> be<01:12:53.480> caption<01:12:54.320> and<01:12:54.480> the 01:12:54.590 --> 01:12:54.600 align:start position:0% attribute is going to be caption and the 01:12:54.600 --> 01:12:57.709 align:start position:0% attribute is going to be caption and the order<01:12:54.960> is<01:12:55.080> going<01:12:55.239> to<01:12:55.360> be<01:12:55.920> descending<01:12:56.920> this<01:12:57.199> is 01:12:57.709 --> 01:12:57.719 align:start position:0% order is going to be descending this is 01:12:57.719 --> 01:13:00.229 align:start position:0% order is going to be descending this is phenomenal<01:12:58.719> essentially<01:12:59.320> you<01:12:59.480> have<01:12:59.760> built-in 01:13:00.229 --> 01:13:00.239 align:start position:0% phenomenal essentially you have built-in 01:13:00.239 --> 01:13:02.629 align:start position:0% phenomenal essentially you have built-in search<01:13:00.520> and<01:13:00.880> filtering<01:13:01.880> this<01:13:02.120> is<01:13:02.239> going<01:13:02.440> to 01:13:02.629 --> 01:13:02.639 align:start position:0% search and filtering this is going to 01:13:02.639 --> 01:13:04.430 align:start position:0% search and filtering this is going to allow<01:13:03.000> us<01:13:03.159> to<01:13:03.360> automatically<01:13:03.920> search<01:13:04.239> for 01:13:04.430 --> 01:13:04.440 align:start position:0% allow us to automatically search for 01:13:04.440 --> 01:13:07.470 align:start position:0% allow us to automatically search for different<01:13:04.800> posts<01:13:05.600> based<01:13:06.080> off<01:13:06.280> of<01:13:06.520> caption<01:13:07.280> so 01:13:07.470 --> 01:13:07.480 align:start position:0% different posts based off of caption so 01:13:07.480 --> 01:13:08.590 align:start position:0% different posts based off of caption so let's<01:13:07.679> click 01:13:08.590 --> 01:13:08.600 align:start position:0% let's click 01:13:08.600 --> 01:13:11.070 align:start position:0% let's click create<01:13:09.600> now<01:13:09.840> we<01:13:09.960> want<01:13:10.080> to<01:13:10.280> go<01:13:10.400> to<01:13:10.560> the<01:13:10.679> users 01:13:11.070 --> 01:13:11.080 align:start position:0% create now we want to go to the users 01:13:11.080 --> 01:13:13.709 align:start position:0% create now we want to go to the users collection<01:13:11.800> and<01:13:12.000> also<01:13:12.320> start<01:13:12.679> creating<01:13:13.360> new 01:13:13.709 --> 01:13:13.719 align:start position:0% collection and also start creating new 01:13:13.719 --> 01:13:16.750 align:start position:0% collection and also start creating new attributes<01:13:14.560> so<01:13:14.800> go<01:13:14.960> to<01:13:15.520> attributes<01:13:16.520> you<01:13:16.639> can 01:13:16.750 --> 01:13:16.760 align:start position:0% attributes so go to attributes you can 01:13:16.760 --> 01:13:19.229 align:start position:0% attributes so go to attributes you can see<01:13:16.960> that<01:13:17.080> we<01:13:17.199> already<01:13:17.520> have<01:13:17.719> liked<01:13:18.080> and<01:13:18.320> posts 01:13:19.229 --> 01:13:19.239 align:start position:0% see that we already have liked and posts 01:13:19.239 --> 01:13:21.790 align:start position:0% see that we already have liked and posts let's<01:13:19.480> create<01:13:19.719> a<01:13:19.880> new<01:13:20.080> one<01:13:20.440> of<01:13:20.600> a<01:13:20.800> type<01:13:21.080> string 01:13:21.790 --> 01:13:21.800 align:start position:0% let's create a new one of a type string 01:13:21.800 --> 01:13:24.550 align:start position:0% let's create a new one of a type string that's<01:13:22.040> going<01:13:22.199> to<01:13:22.360> be<01:13:22.840> name 01:13:24.550 --> 01:13:24.560 align:start position:0% that's going to be name 01:13:24.560 --> 01:13:28.189 align:start position:0% that's going to be name we<01:13:24.679> can<01:13:24.840> enter<01:13:25.199> the<01:13:25.360> same<01:13:25.679> size<01:13:26.120> as<01:13:26.760> before<01:13:27.760> and 01:13:28.189 --> 01:13:28.199 align:start position:0% we can enter the same size as before and 01:13:28.199 --> 01:13:29.310 align:start position:0% we can enter the same size as before and click 01:13:29.310 --> 01:13:29.320 align:start position:0% click 01:13:29.320 --> 01:13:31.470 align:start position:0% click create<01:13:30.320> we're<01:13:30.480> going<01:13:30.560> to<01:13:30.760> also<01:13:30.960> need<01:13:31.199> a 01:13:31.470 --> 01:13:31.480 align:start position:0% create we're going to also need a 01:13:31.480 --> 01:13:34.189 align:start position:0% create we're going to also need a username<01:13:32.080> for<01:13:32.280> our<01:13:32.480> user<01:13:33.120> so<01:13:33.360> let's<01:13:33.600> say 01:13:34.189 --> 01:13:34.199 align:start position:0% username for our user so let's say 01:13:34.199 --> 01:13:36.550 align:start position:0% username for our user so let's say attribute<01:13:34.679> is<01:13:34.840> going<01:13:34.960> to<01:13:35.080> be<01:13:35.400> username<01:13:36.400> it's 01:13:36.550 --> 01:13:36.560 align:start position:0% attribute is going to be username it's 01:13:36.560 --> 01:13:39.950 align:start position:0% attribute is going to be username it's going<01:13:36.719> to<01:13:36.840> be<01:13:37.560> 2200<01:13:38.560> and<01:13:38.760> we<01:13:38.880> can<01:13:39.040> click 01:13:39.950 --> 01:13:39.960 align:start position:0% going to be 2200 and we can click 01:13:39.960 --> 01:13:42.910 align:start position:0% going to be 2200 and we can click create<01:13:40.960> we<01:13:41.159> also<01:13:41.400> need<01:13:41.639> an<01:13:41.840> account<01:13:42.199> ID<01:13:42.760> so 01:13:42.910 --> 01:13:42.920 align:start position:0% create we also need an account ID so 01:13:42.920 --> 01:13:47.189 align:start position:0% create we also need an account ID so let's<01:13:43.120> create<01:13:43.320> a<01:13:43.480> new<01:13:43.679> string<01:13:44.440> of<01:13:44.880> account<01:13:46.199> ID 01:13:47.189 --> 01:13:47.199 align:start position:0% let's create a new string of account ID 01:13:47.199 --> 01:13:48.070 align:start position:0% let's create a new string of account ID of 01:13:48.070 --> 01:13:48.080 align:start position:0% of 01:13:48.080 --> 01:13:50.750 align:start position:0% of 2200<01:13:49.080> let's<01:13:49.280> make<01:13:49.400> it<01:13:49.600> required<01:13:50.360> and<01:13:50.520> let's 01:13:50.750 --> 01:13:50.760 align:start position:0% 2200 let's make it required and let's 01:13:50.760 --> 01:13:51.550 align:start position:0% 2200 let's make it required and let's click 01:13:51.550 --> 01:13:51.560 align:start position:0% click 01:13:51.560 --> 01:13:54.149 align:start position:0% click create<01:13:52.560> our<01:13:52.800> user<01:13:53.199> is<01:13:53.360> is<01:13:53.480> also<01:13:53.719> going<01:13:53.840> to<01:13:54.000> have 01:13:54.149 --> 01:13:54.159 align:start position:0% create our user is is also going to have 01:13:54.159 --> 01:13:57.189 align:start position:0% create our user is is also going to have an<01:13:54.320> email<01:13:54.880> so<01:13:55.080> let's<01:13:55.280> select<01:13:55.600> an<01:13:55.840> email<01:13:56.239> type 01:13:57.189 --> 01:13:57.199 align:start position:0% an email so let's select an email type 01:13:57.199 --> 01:13:58.430 align:start position:0% an email so let's select an email type call<01:13:57.440> it<01:13:57.679> an 01:13:58.430 --> 01:13:58.440 align:start position:0% call it an 01:13:58.440 --> 01:14:02.189 align:start position:0% call it an email<01:13:59.440> make<01:13:59.639> it<01:13:59.840> required<01:14:00.560> and<01:14:00.800> click<01:14:01.199> create 01:14:02.189 --> 01:14:02.199 align:start position:0% email make it required and click create 01:14:02.199 --> 01:14:04.310 align:start position:0% email make it required and click create our<01:14:02.400> user<01:14:02.840> can<01:14:03.040> also<01:14:03.360> add<01:14:03.560> a<01:14:03.679> bit<01:14:03.840> of<01:14:04.000> info 01:14:04.310 --> 01:14:04.320 align:start position:0% our user can also add a bit of info 01:14:04.320 --> 01:14:06.149 align:start position:0% our user can also add a bit of info about<01:14:04.760> themselves<01:14:05.280> so<01:14:05.480> let's<01:14:05.679> create<01:14:05.880> a<01:14:06.000> new 01:14:06.149 --> 01:14:06.159 align:start position:0% about themselves so let's create a new 01:14:06.159 --> 01:14:09.550 align:start position:0% about themselves so let's create a new string<01:14:06.520> property<01:14:07.199> called<01:14:07.679> bio<01:14:08.679> and<01:14:08.920> here<01:14:09.440> they 01:14:09.550 --> 01:14:09.560 align:start position:0% string property called bio and here they 01:14:09.560 --> 01:14:12.669 align:start position:0% string property called bio and here they can<01:14:09.760> add<01:14:10.400> their<01:14:10.760> biography<01:14:11.760> let's<01:14:12.000> click 01:14:12.669 --> 01:14:12.679 align:start position:0% can add their biography let's click 01:14:12.679 --> 01:14:15.070 align:start position:0% can add their biography let's click create<01:14:13.679> finally<01:14:14.120> we<01:14:14.239> need<01:14:14.400> to<01:14:14.520> create<01:14:14.800> an 01:14:15.070 --> 01:14:15.080 align:start position:0% create finally we need to create an 01:14:15.080 --> 01:14:18.430 align:start position:0% create finally we need to create an image<01:14:15.560> ID<01:14:16.360> attribute<01:14:17.040> of<01:14:17.440> type<01:14:17.639> string<01:14:18.280> so 01:14:18.430 --> 01:14:18.440 align:start position:0% image ID attribute of type string so 01:14:18.440 --> 01:14:21.830 align:start position:0% image ID attribute of type string so that's<01:14:18.639> going<01:14:18.800> to<01:14:18.960> be<01:14:19.239> image<01:14:20.120> ID<01:14:21.120> of<01:14:21.320> the<01:14:21.480> same 01:14:21.830 --> 01:14:21.840 align:start position:0% that's going to be image ID of the same 01:14:21.840 --> 01:14:24.470 align:start position:0% that's going to be image ID of the same size<01:14:22.840> and<01:14:23.000> this<01:14:23.080> is<01:14:23.400> needed<01:14:23.679> for<01:14:23.880> deleting<01:14:24.320> the 01:14:24.470 --> 01:14:24.480 align:start position:0% size and this is needed for deleting the 01:14:24.480 --> 01:14:26.910 align:start position:0% size and this is needed for deleting the profile<01:14:24.880> images<01:14:25.639> when<01:14:25.840> changing<01:14:26.360> the<01:14:26.560> profile 01:14:26.910 --> 01:14:26.920 align:start position:0% profile images when changing the profile 01:14:26.920 --> 01:14:29.310 align:start position:0% profile images when changing the profile image<01:14:27.719> let's<01:14:27.960> click 01:14:29.310 --> 01:14:29.320 align:start position:0% image let's click 01:14:29.320 --> 01:14:32.030 align:start position:0% image let's click create<01:14:30.320> we<01:14:30.520> also<01:14:30.760> need<01:14:30.960> the<01:14:31.199> image<01:14:31.520> URL 01:14:32.030 --> 01:14:32.040 align:start position:0% create we also need the image URL 01:14:32.040 --> 01:14:34.470 align:start position:0% create we also need the image URL attribute<01:14:32.880> this<01:14:33.000> is<01:14:33.120> going<01:14:33.280> to<01:14:33.440> be<01:14:33.639> of<01:14:33.800> a<01:14:33.960> type 01:14:34.470 --> 01:14:34.480 align:start position:0% attribute this is going to be of a type 01:14:34.480 --> 01:14:39.149 align:start position:0% attribute this is going to be of a type URL<01:14:35.480> so<01:14:35.719> let's<01:14:35.920> say<01:14:36.320> image<01:14:37.320> URL 01:14:39.149 --> 01:14:39.159 align:start position:0% URL so let's say image URL 01:14:39.159 --> 01:14:41.350 align:start position:0% URL so let's say image URL required<01:14:40.159> and 01:14:41.350 --> 01:14:41.360 align:start position:0% required and 01:14:41.360 --> 01:14:44.390 align:start position:0% required and create<01:14:42.360> and<01:14:42.560> this<01:14:42.679> is<01:14:42.840> it<01:14:43.560> we<01:14:43.760> immediately 01:14:44.390 --> 01:14:44.400 align:start position:0% create and this is it we immediately 01:14:44.400 --> 01:14:46.350 align:start position:0% create and this is it we immediately have<01:14:44.639> all<01:14:44.800> of<01:14:44.960> the<01:14:45.159> attributes<01:14:45.880> that<01:14:46.040> belong 01:14:46.350 --> 01:14:46.360 align:start position:0% have all of the attributes that belong 01:14:46.360 --> 01:14:49.030 align:start position:0% have all of the attributes that belong to<01:14:46.520> our<01:14:46.679> user<01:14:47.560> what<01:14:47.719> we<01:14:47.840> can<01:14:48.000> do<01:14:48.520> is<01:14:48.719> also 01:14:49.030 --> 01:14:49.040 align:start position:0% to our user what we can do is also 01:14:49.040 --> 01:14:51.149 align:start position:0% to our user what we can do is also screenshot 01:14:51.149 --> 01:14:51.159 align:start position:0% screenshot 01:14:51.159 --> 01:14:55.149 align:start position:0% screenshot it<01:14:52.159> and<01:14:52.520> add<01:14:52.719> it<01:14:52.840> to<01:14:53.000> our<01:14:53.320> fig<01:14:53.520> Jam<01:14:54.520> there<01:14:54.679> we<01:14:54.880> go 01:14:55.149 --> 01:14:55.159 align:start position:0% it and add it to our fig Jam there we go 01:14:55.159 --> 01:14:58.750 align:start position:0% it and add it to our fig Jam there we go I'm<01:14:55.320> just<01:14:55.440> going<01:14:55.600> to<01:14:55.800> make<01:14:55.920> it<01:14:56.120> the<01:14:56.280> same 01:14:58.750 --> 01:14:58.760 align:start position:0% 01:14:58.760 --> 01:15:02.350 align:start position:0% size<01:14:59.760> and<01:14:59.920> we<01:15:00.040> can<01:15:00.239> put<01:15:00.400> it<01:15:00.679> right<01:15:00.920> here<01:15:01.760> below 01:15:02.350 --> 01:15:02.360 align:start position:0% size and we can put it right here below 01:15:02.360 --> 01:15:03.950 align:start position:0% size and we can put it right here below users 01:15:03.950 --> 01:15:03.960 align:start position:0% users 01:15:03.960 --> 01:15:06.510 align:start position:0% users collection<01:15:04.960> there<01:15:05.080> we<01:15:05.280> go<01:15:05.760> it's<01:15:05.960> pretty<01:15:06.239> handy 01:15:06.510 --> 01:15:06.520 align:start position:0% collection there we go it's pretty handy 01:15:06.520 --> 01:15:08.750 align:start position:0% collection there we go it's pretty handy to<01:15:06.679> know<01:15:07.040> the<01:15:07.159> full<01:15:07.480> structure<01:15:08.199> especially<01:15:08.639> as 01:15:08.750 --> 01:15:08.760 align:start position:0% to know the full structure especially as 01:15:08.760 --> 01:15:11.629 align:start position:0% to know the full structure especially as the<01:15:08.920> app<01:15:09.239> grows<01:15:10.239> and<01:15:10.480> finally<01:15:11.040> the<01:15:11.239> saves 01:15:11.629 --> 01:15:11.639 align:start position:0% the app grows and finally the saves 01:15:11.639 --> 01:15:14.030 align:start position:0% the app grows and finally the saves collection<01:15:12.000> is<01:15:12.320> remaining<01:15:12.960> so<01:15:13.159> let's<01:15:13.440> go<01:15:13.840> back 01:15:14.030 --> 01:15:14.040 align:start position:0% collection is remaining so let's go back 01:15:14.040 --> 01:15:17.430 align:start position:0% collection is remaining so let's go back to<01:15:14.159> our<01:15:14.360> upright<01:15:15.280> go<01:15:15.480> to<01:15:15.880> saves 01:15:17.430 --> 01:15:17.440 align:start position:0% to our upright go to saves 01:15:17.440 --> 01:15:20.149 align:start position:0% to our upright go to saves attributes<01:15:18.440> and<01:15:18.639> we<01:15:18.719> need<01:15:18.880> to<01:15:19.040> create<01:15:19.400> a<01:15:19.639> user 01:15:20.149 --> 01:15:20.159 align:start position:0% attributes and we need to create a user 01:15:20.159 --> 01:15:22.390 align:start position:0% attributes and we need to create a user attribute<01:15:20.920> which<01:15:21.040> is<01:15:21.159> going<01:15:21.320> to<01:15:21.480> be<01:15:21.639> of<01:15:21.800> a<01:15:22.000> type 01:15:22.390 --> 01:15:22.400 align:start position:0% attribute which is going to be of a type 01:15:22.400 --> 01:15:24.390 align:start position:0% attribute which is going to be of a type relationship 01:15:24.390 --> 01:15:24.400 align:start position:0% relationship 01:15:24.400 --> 01:15:25.910 align:start position:0% relationship so<01:15:24.800> it's<01:15:24.960> going<01:15:25.120> to<01:15:25.239> be<01:15:25.360> a<01:15:25.480> two-way 01:15:25.910 --> 01:15:25.920 align:start position:0% so it's going to be a two-way 01:15:25.920 --> 01:15:29.149 align:start position:0% so it's going to be a two-way relationship<01:15:26.800> between<01:15:27.760> users<01:15:28.760> where<01:15:29.000> it's 01:15:29.149 --> 01:15:29.159 align:start position:0% relationship between users where it's 01:15:29.159 --> 01:15:32.510 align:start position:0% relationship between users where it's going<01:15:29.280> to<01:15:29.440> say<01:15:30.000> user<01:15:31.000> and<01:15:31.400> it's<01:15:31.560> going<01:15:31.719> to<01:15:31.920> say 01:15:32.510 --> 01:15:32.520 align:start position:0% going to say user and it's going to say 01:15:32.520 --> 01:15:35.430 align:start position:0% going to say user and it's going to say save<01:15:33.239> so<01:15:33.400> we<01:15:33.480> need<01:15:33.600> to<01:15:33.719> know<01:15:34.040> which<01:15:34.199> user<01:15:34.760> saved 01:15:35.430 --> 01:15:35.440 align:start position:0% save so we need to know which user saved 01:15:35.440 --> 01:15:38.310 align:start position:0% save so we need to know which user saved which<01:15:35.679> post<01:15:36.639> it's<01:15:36.840> going<01:15:37.000> to<01:15:37.120> be<01:15:37.320> a<01:15:37.520> many<01:15:37.880> toone 01:15:38.310 --> 01:15:38.320 align:start position:0% which post it's going to be a many toone 01:15:38.320 --> 01:15:40.669 align:start position:0% which post it's going to be a many toone relationship<01:15:39.239> because<01:15:39.600> one<01:15:39.800> user<01:15:40.159> can<01:15:40.320> save 01:15:40.669 --> 01:15:40.679 align:start position:0% relationship because one user can save 01:15:40.679 --> 01:15:41.750 align:start position:0% relationship because one user can save many 01:15:41.750 --> 01:15:41.760 align:start position:0% many 01:15:41.760 --> 01:15:45.270 align:start position:0% many posts<01:15:42.760> and<01:15:43.040> on<01:15:43.320> delete<01:15:43.920> we<01:15:44.040> have<01:15:44.159> to<01:15:44.360> select 01:15:45.270 --> 01:15:45.280 align:start position:0% posts and on delete we have to select 01:15:45.280 --> 01:15:48.830 align:start position:0% posts and on delete we have to select set<01:15:45.639> now<01:15:46.400> and<01:15:46.520> let's<01:15:46.760> click 01:15:48.830 --> 01:15:48.840 align:start position:0% set now and let's click 01:15:48.840 --> 01:15:52.189 align:start position:0% set now and let's click create<01:15:49.840> and<01:15:50.120> also<01:15:50.440> we<01:15:50.560> need<01:15:50.679> to<01:15:50.880> create<01:15:51.239> a<01:15:51.520> post 01:15:52.189 --> 01:15:52.199 align:start position:0% create and also we need to create a post 01:15:52.199 --> 01:15:54.669 align:start position:0% create and also we need to create a post attribute<01:15:53.199> so<01:15:53.360> we<01:15:53.480> know<01:15:53.719> which<01:15:53.920> post<01:15:54.199> was 01:15:54.669 --> 01:15:54.679 align:start position:0% attribute so we know which post was 01:15:54.679 --> 01:15:58.229 align:start position:0% attribute so we know which post was saved<01:15:55.679> so<01:15:56.000> we<01:15:56.080> can<01:15:56.280> create<01:15:56.560> a<01:15:56.679> new 01:15:58.229 --> 01:15:58.239 align:start position:0% saved so we can create a new 01:15:58.239 --> 01:16:00.709 align:start position:0% saved so we can create a new relationship<01:15:59.239> and<01:15:59.440> we<01:15:59.560> can<01:15:59.719> create<01:16:00.080> a<01:16:00.280> two-way 01:16:00.709 --> 01:16:00.719 align:start position:0% relationship and we can create a two-way 01:16:00.719 --> 01:16:02.750 align:start position:0% relationship and we can create a two-way relationship<01:16:01.639> between 01:16:02.750 --> 01:16:02.760 align:start position:0% relationship between 01:16:02.760 --> 01:16:06.950 align:start position:0% relationship between posts<01:16:03.760> we<01:16:03.880> can<01:16:04.040> call<01:16:04.239> it<01:16:04.520> post<01:16:05.159> and<01:16:05.800> save<01:16:06.800> make 01:16:06.950 --> 01:16:06.960 align:start position:0% posts we can call it post and save make 01:16:06.960 --> 01:16:09.270 align:start position:0% posts we can call it post and save make sure<01:16:07.159> you<01:16:07.320> call<01:16:07.679> these<01:16:07.880> attributes<01:16:08.600> exactly 01:16:09.270 --> 01:16:09.280 align:start position:0% sure you call these attributes exactly 01:16:09.280 --> 01:16:11.590 align:start position:0% sure you call these attributes exactly the<01:16:09.440> same<01:16:09.800> as<01:16:10.000> I'm<01:16:10.199> calling<01:16:10.520> them<01:16:10.800> here<01:16:11.280> that's 01:16:11.590 --> 01:16:11.600 align:start position:0% the same as I'm calling them here that's 01:16:11.600 --> 01:16:13.830 align:start position:0% the same as I'm calling them here that's necessary<01:16:12.000> for<01:16:12.199> the<01:16:12.360> application<01:16:12.840> to<01:16:13.040> work 01:16:13.830 --> 01:16:13.840 align:start position:0% necessary for the application to work 01:16:13.840 --> 01:16:16.550 align:start position:0% necessary for the application to work and<01:16:14.000> then<01:16:14.120> we<01:16:14.239> can<01:16:14.400> do<01:16:14.639> a<01:16:14.880> many<01:16:15.239> to 01:16:16.550 --> 01:16:16.560 align:start position:0% and then we can do a many to 01:16:16.560 --> 01:16:21.390 align:start position:0% and then we can do a many to one<01:16:17.560> and<01:16:17.880> set<01:16:18.239> now<01:16:19.040> and<01:16:19.199> click 01:16:21.390 --> 01:16:21.400 align:start position:0% one and set now and click 01:16:21.400 --> 01:16:24.990 align:start position:0% one and set now and click create<01:16:22.400> so<01:16:22.679> now<01:16:23.199> we<01:16:23.320> can<01:16:23.520> copy<01:16:23.880> these<01:16:24.159> one<01:16:24.360> more 01:16:24.990 --> 01:16:25.000 align:start position:0% create so now we can copy these one more 01:16:25.000 --> 01:16:27.629 align:start position:0% create so now we can copy these one more time<01:16:26.000> and<01:16:26.199> we<01:16:26.280> can<01:16:26.520> add<01:16:26.719> them<01:16:27.000> right<01:16:27.239> here 01:16:27.629 --> 01:16:27.639 align:start position:0% time and we can add them right here 01:16:27.639 --> 01:16:29.790 align:start position:0% time and we can add them right here below<01:16:28.000> the 01:16:29.790 --> 01:16:29.800 align:start position:0% below the 01:16:29.800 --> 01:16:32.669 align:start position:0% below the saves<01:16:30.800> and<01:16:30.960> there<01:16:31.120> we<01:16:31.280> go<01:16:31.400> so<01:16:31.639> now<01:16:31.800> we<01:16:31.920> can<01:16:32.120> see 01:16:32.669 --> 01:16:32.679 align:start position:0% saves and there we go so now we can see 01:16:32.679 --> 01:16:35.030 align:start position:0% saves and there we go so now we can see that<01:16:32.880> saves<01:16:33.760> actually<01:16:34.120> kind<01:16:34.239> of<01:16:34.400> comes<01:16:34.840> in 01:16:35.030 --> 01:16:35.040 align:start position:0% that saves actually kind of comes in 01:16:35.040 --> 01:16:38.510 align:start position:0% that saves actually kind of comes in between<01:16:36.040> of<01:16:36.400> some<01:16:36.639> of<01:16:36.800> the<01:16:36.960> posts<01:16:37.840> so<01:16:38.199> here<01:16:38.440> we 01:16:38.510 --> 01:16:38.520 align:start position:0% between of some of the posts so here we 01:16:38.520 --> 01:16:40.350 align:start position:0% between of some of the posts so here we can<01:16:38.639> make<01:16:38.840> this<01:16:38.960> a<01:16:39.120> bit 01:16:40.350 --> 01:16:40.360 align:start position:0% can make this a bit 01:16:40.360 --> 01:16:43.629 align:start position:0% can make this a bit smaller<01:16:41.360> and<01:16:41.800> we<01:16:41.920> can<01:16:42.159> Define<01:16:42.719> that<01:16:42.880> a<01:16:43.080> user 01:16:43.629 --> 01:16:43.639 align:start position:0% smaller and we can Define that a user 01:16:43.639 --> 01:16:46.070 align:start position:0% smaller and we can Define that a user can<01:16:43.880> save<01:16:44.360> a<01:16:44.560> specific<01:16:45.040> post<01:16:45.639> so<01:16:45.800> it's<01:16:45.920> going 01:16:46.070 --> 01:16:46.080 align:start position:0% can save a specific post so it's going 01:16:46.080 --> 01:16:49.590 align:start position:0% can save a specific post so it's going to<01:16:46.239> go<01:16:46.440> something<01:16:46.760> like<01:16:46.960> this<01:16:48.120> saves<01:16:49.120> and<01:16:49.320> then 01:16:49.590 --> 01:16:49.600 align:start position:0% to go something like this saves and then 01:16:49.600 --> 01:16:52.070 align:start position:0% to go something like this saves and then we<01:16:49.719> can<01:16:49.920> go<01:16:50.199> to<01:16:50.360> a<01:16:50.560> specific 01:16:52.070 --> 01:16:52.080 align:start position:0% we can go to a specific 01:16:52.080 --> 01:16:55.430 align:start position:0% we can go to a specific post<01:16:53.120> users<01:16:53.520> can<01:16:53.800> create<01:16:54.320> posts<01:16:54.960> but<01:16:55.120> users 01:16:55.430 --> 01:16:55.440 align:start position:0% post users can create posts but users 01:16:55.440 --> 01:16:58.189 align:start position:0% post users can create posts but users can<01:16:55.639> also<01:16:55.960> save<01:16:56.520> the<01:16:56.679> posts<01:16:57.080> that<01:16:57.239> they<01:16:57.400> like 01:16:58.189 --> 01:16:58.199 align:start position:0% can also save the posts that they like 01:16:58.199 --> 01:17:00.229 align:start position:0% can also save the posts that they like pretty<01:16:58.480> cool<01:16:58.840> right<01:16:59.480> and<01:16:59.639> then<01:16:59.800> these<01:16:59.920> are<01:17:00.080> the 01:17:00.229 --> 01:17:00.239 align:start position:0% pretty cool right and then these are the 01:17:00.239 --> 01:17:03.430 align:start position:0% pretty cool right and then these are the attribute<01:17:00.719> of<01:17:00.840> the<01:17:01.400> save<01:17:02.400> so<01:17:02.920> this<01:17:03.120> is<01:17:03.239> our 01:17:03.430 --> 01:17:03.440 align:start position:0% attribute of the save so this is our 01:17:03.440 --> 01:17:05.229 align:start position:0% attribute of the save so this is our current<01:17:03.760> structure<01:17:04.360> we'll<01:17:04.560> be<01:17:04.719> returning 01:17:05.229 --> 01:17:05.239 align:start position:0% current structure we'll be returning 01:17:05.239 --> 01:17:07.149 align:start position:0% current structure we'll be returning back<01:17:05.360> to<01:17:05.520> this<01:17:05.679> fig<01:17:05.960> jam<01:17:06.600> and<01:17:06.760> whenever<01:17:07.080> we 01:17:07.149 --> 01:17:07.159 align:start position:0% back to this fig jam and whenever we 01:17:07.159 --> 01:17:09.350 align:start position:0% back to this fig jam and whenever we need<01:17:07.320> to<01:17:07.520> explain<01:17:07.960> something<01:17:08.239> in<01:17:08.400> more<01:17:08.639> detail 01:17:09.350 --> 01:17:09.360 align:start position:0% need to explain something in more detail 01:17:09.360 --> 01:17:11.390 align:start position:0% need to explain something in more detail that's<01:17:09.639> exactly<01:17:10.120> what<01:17:10.239> I'm<01:17:10.360> going<01:17:10.440> to<01:17:10.600> do<01:17:11.080> in<01:17:11.199> a 01:17:11.390 --> 01:17:11.400 align:start position:0% that's exactly what I'm going to do in a 01:17:11.400 --> 01:17:13.590 align:start position:0% that's exactly what I'm going to do in a visual<01:17:11.840> manner<01:17:12.639> if<01:17:12.760> you'd<01:17:12.920> like<01:17:13.080> me<01:17:13.159> to<01:17:13.320> add 01:17:13.590 --> 01:17:13.600 align:start position:0% visual manner if you'd like me to add 01:17:13.600 --> 01:17:15.750 align:start position:0% visual manner if you'd like me to add more<01:17:13.880> visuals<01:17:14.320> to<01:17:14.480> our<01:17:14.679> videos<01:17:15.239> just<01:17:15.440> let<01:17:15.600> me 01:17:15.750 --> 01:17:15.760 align:start position:0% more visuals to our videos just let me 01:17:15.760 --> 01:17:18.189 align:start position:0% more visuals to our videos just let me know<01:17:16.520> for<01:17:16.760> now<01:17:17.199> I've<01:17:17.360> been<01:17:17.520> only<01:17:17.760> doing<01:17:18.080> this 01:17:18.189 --> 01:17:18.199 align:start position:0% know for now I've been only doing this 01:17:18.199 --> 01:17:20.310 align:start position:0% know for now I've been only doing this in<01:17:18.320> our<01:17:18.520> Pro<01:17:18.800> courses<01:17:19.400> because<01:17:19.679> we<01:17:19.840> have<01:17:20.080> so 01:17:20.310 --> 01:17:20.320 align:start position:0% in our Pro courses because we have so 01:17:20.320 --> 01:17:22.669 align:start position:0% in our Pro courses because we have so much<01:17:20.480> more<01:17:20.800> time<01:17:21.040> to<01:17:21.280> cover<01:17:21.600> things<01:17:21.840> in<01:17:22.040> depth 01:17:22.669 --> 01:17:22.679 align:start position:0% much more time to cover things in depth 01:17:22.679 --> 01:17:25.590 align:start position:0% much more time to cover things in depth in<01:17:23.120> videos<01:17:23.639> the<01:17:23.800> time<01:17:24.000> is<01:17:24.199> limited<01:17:25.000> but<01:17:25.239> still 01:17:25.590 --> 01:17:25.600 align:start position:0% in videos the time is limited but still 01:17:25.600 --> 01:17:28.350 align:start position:0% in videos the time is limited but still I'll<01:17:25.840> try<01:17:26.120> to<01:17:26.320> make<01:17:26.560> them<01:17:26.880> as<01:17:27.080> detailed<01:17:27.840> as 01:17:28.350 --> 01:17:28.360 align:start position:0% I'll try to make them as detailed as 01:17:28.360 --> 01:17:30.830 align:start position:0% I'll try to make them as detailed as possible<01:17:29.360> finally<01:17:30.000> now<01:17:30.199> that<01:17:30.320> we've<01:17:30.520> created 01:17:30.830 --> 01:17:30.840 align:start position:0% possible finally now that we've created 01:17:30.840 --> 01:17:34.310 align:start position:0% possible finally now that we've created our<01:17:31.080> collections<01:17:31.800> our<01:17:32.040> database<01:17:32.719> is<01:17:33.320> ready 01:17:34.310 --> 01:17:34.320 align:start position:0% our collections our database is ready 01:17:34.320 --> 01:17:36.830 align:start position:0% our collections our database is ready this<01:17:34.560> took<01:17:34.800> some<01:17:35.080> time<01:17:35.679> but<01:17:36.080> I<01:17:36.159> mean<01:17:36.600> it's 01:17:36.830 --> 01:17:36.840 align:start position:0% this took some time but I mean it's 01:17:36.840 --> 01:17:40.229 align:start position:0% this took some time but I mean it's pretty<01:17:37.320> crazy<01:17:38.320> really<01:17:38.639> soon<01:17:39.400> we<01:17:39.560> now<01:17:39.840> have<01:17:40.000> a 01:17:40.229 --> 01:17:40.239 align:start position:0% pretty crazy really soon we now have a 01:17:40.239 --> 01:17:42.270 align:start position:0% pretty crazy really soon we now have a complete<01:17:40.679> authentication<01:17:41.520> system<01:17:42.040> where<01:17:42.159> we 01:17:42.270 --> 01:17:42.280 align:start position:0% complete authentication system where we 01:17:42.280 --> 01:17:45.470 align:start position:0% complete authentication system where we can<01:17:42.480> add<01:17:42.719> users<01:17:43.719> not<01:17:43.960> only<01:17:44.520> that<01:17:44.960> but<01:17:45.159> now<01:17:45.360> we 01:17:45.470 --> 01:17:45.480 align:start position:0% can add users not only that but now we 01:17:45.480 --> 01:17:48.350 align:start position:0% can add users not only that but now we can<01:17:45.679> add<01:17:45.880> them<01:17:46.040> to<01:17:46.159> our<01:17:46.400> database<01:17:47.239> as<01:17:47.440> well<01:17:48.199> in 01:17:48.350 --> 01:17:48.360 align:start position:0% can add them to our database as well in 01:17:48.360 --> 01:17:50.830 align:start position:0% can add them to our database as well in the<01:17:48.560> database<01:17:49.280> we<01:17:49.480> have<01:17:49.639> our<01:17:49.880> collections 01:17:50.830 --> 01:17:50.840 align:start position:0% the database we have our collections 01:17:50.840 --> 01:17:53.310 align:start position:0% the database we have our collections with<01:17:51.080> complete<01:17:51.600> attributes<01:17:52.440> so<01:17:52.639> we<01:17:52.760> know<01:17:53.159> the 01:17:53.310 --> 01:17:53.320 align:start position:0% with complete attributes so we know the 01:17:53.320 --> 01:17:55.430 align:start position:0% with complete attributes so we know the structure<01:17:53.960> of<01:17:54.159> each<01:17:54.360> one<01:17:54.480> of<01:17:54.600> our<01:17:54.800> Elements 01:17:55.430 --> 01:17:55.440 align:start position:0% structure of each one of our Elements 01:17:55.440 --> 01:17:59.030 align:start position:0% structure of each one of our Elements which<01:17:55.600> we<01:17:55.679> can<01:17:55.840> see<01:17:56.199> right<01:17:56.760> here<01:17:57.760> and<01:17:58.000> then<01:17:58.800> we 01:17:59.030 --> 01:17:59.040 align:start position:0% which we can see right here and then we 01:17:59.040 --> 01:18:01.709 align:start position:0% which we can see right here and then we also<01:17:59.360> have<01:17:59.639> relationships<01:18:00.560> between<01:18:01.000> them<01:18:01.600> and 01:18:01.709 --> 01:18:01.719 align:start position:0% also have relationships between them and 01:18:01.719 --> 01:18:04.070 align:start position:0% also have relationships between them and we<01:18:01.880> also<01:18:02.120> have<01:18:02.400> storage<01:18:03.159> so<01:18:03.320> we<01:18:03.440> can<01:18:03.639> upload 01:18:04.070 --> 01:18:04.080 align:start position:0% we also have storage so we can upload 01:18:04.080 --> 01:18:07.070 align:start position:0% we also have storage so we can upload images<01:18:04.639> to<01:18:04.800> our<01:18:05.000> application<01:18:06.000> I<01:18:06.080> mean<01:18:06.560> ight 01:18:07.070 --> 01:18:07.080 align:start position:0% images to our application I mean ight 01:18:07.080 --> 01:18:09.510 align:start position:0% images to our application I mean ight Cloud<01:18:07.840> really<01:18:08.120> does<01:18:08.639> everything<01:18:09.120> you<01:18:09.239> wanted 01:18:09.510 --> 01:18:09.520 align:start position:0% Cloud really does everything you wanted 01:18:09.520 --> 01:18:12.110 align:start position:0% Cloud really does everything you wanted to<01:18:09.639> do<01:18:09.840> in<01:18:10.000> this<01:18:10.320> case<01:18:11.320> now<01:18:11.520> the<01:18:11.719> last<01:18:11.880> thing<01:18:12.040> we 01:18:12.110 --> 01:18:12.120 align:start position:0% to do in this case now the last thing we 01:18:12.120 --> 01:18:14.669 align:start position:0% to do in this case now the last thing we need<01:18:12.280> to<01:18:12.400> do<01:18:12.719> is<01:18:12.880> go<01:18:13.040> to<01:18:13.280> database<01:18:14.280> and<01:18:14.440> then 01:18:14.669 --> 01:18:14.679 align:start position:0% need to do is go to database and then 01:18:14.679 --> 01:18:16.870 align:start position:0% need to do is go to database and then copy<01:18:15.000> the<01:18:15.159> IDS<01:18:15.719> right<01:18:15.920> here<01:18:16.400> of<01:18:16.600> these 01:18:16.870 --> 01:18:16.880 align:start position:0% copy the IDS right here of these 01:18:16.880 --> 01:18:19.950 align:start position:0% copy the IDS right here of these collections<01:18:17.880> so<01:18:18.040> let's<01:18:18.280> copy<01:18:18.520> the 01:18:19.950 --> 01:18:19.960 align:start position:0% collections so let's copy the 01:18:19.960 --> 01:18:23.030 align:start position:0% collections so let's copy the saves<01:18:20.960> go<01:18:21.239> back<01:18:21.520> here<01:18:22.159> and<01:18:22.280> we<01:18:22.400> can<01:18:22.520> say 01:18:23.030 --> 01:18:23.040 align:start position:0% saves go back here and we can say 01:18:23.040 --> 01:18:26.790 align:start position:0% saves go back here and we can say something<01:18:23.400> like<01:18:24.199> vorea<01:18:25.199> right 01:18:26.790 --> 01:18:26.800 align:start position:0% something like vorea right 01:18:26.800 --> 01:18:32.750 align:start position:0% something like vorea right uncore<01:18:28.239> saves<01:18:29.239> uncore<01:18:29.840> collection<01:18:30.800> uncore<01:18:31.800> ID 01:18:32.750 --> 01:18:32.760 align:start position:0% uncore saves uncore collection uncore ID 01:18:32.760 --> 01:18:34.750 align:start position:0% uncore saves uncore collection uncore ID it's<01:18:32.880> a<01:18:33.040> long<01:18:33.320> name<01:18:33.639> I<01:18:33.760> know<01:18:34.199> but<01:18:34.360> it's<01:18:34.520> better 01:18:34.750 --> 01:18:34.760 align:start position:0% it's a long name I know but it's better 01:18:34.760 --> 01:18:37.830 align:start position:0% it's a long name I know but it's better to<01:18:34.880> be<01:18:35.040> safe<01:18:35.360> than<01:18:35.880> sorry<01:18:36.880> and<01:18:37.120> finally<01:18:37.560> we<01:18:37.679> can 01:18:37.830 --> 01:18:37.840 align:start position:0% to be safe than sorry and finally we can 01:18:37.840 --> 01:18:39.669 align:start position:0% to be safe than sorry and finally we can duplicate<01:18:38.320> this<01:18:38.480> two<01:18:38.639> more<01:18:38.960> times<01:18:39.520> we're 01:18:39.669 --> 01:18:39.679 align:start position:0% duplicate this two more times we're 01:18:39.679 --> 01:18:41.750 align:start position:0% duplicate this two more times we're going<01:18:39.800> to<01:18:39.920> save<01:18:40.199> saves<01:18:40.679> collection<01:18:41.080> ID<01:18:41.639> we're 01:18:41.750 --> 01:18:41.760 align:start position:0% going to save saves collection ID we're 01:18:41.760 --> 01:18:44.629 align:start position:0% going to save saves collection ID we're going<01:18:41.880> to<01:18:42.040> have<01:18:42.480> post<01:18:43.239> collection<01:18:43.679> ID<01:18:44.520> and 01:18:44.629 --> 01:18:44.639 align:start position:0% going to have post collection ID and 01:18:44.639 --> 01:18:47.189 align:start position:0% going to have post collection ID and we're<01:18:44.760> going<01:18:44.840> to<01:18:45.080> have<01:18:45.400> a<01:18:45.639> user<01:18:46.360> collection<01:18:46.800> ID 01:18:47.189 --> 01:18:47.199 align:start position:0% we're going to have a user collection ID 01:18:47.199 --> 01:18:50.430 align:start position:0% we're going to have a user collection ID as 01:18:50.430 --> 01:18:50.440 align:start position:0% 01:18:50.440 --> 01:18:53.750 align:start position:0% well<01:18:51.440> so<01:18:51.679> for<01:18:51.880> the<01:18:52.080> Post<01:18:52.520> we<01:18:52.639> can<01:18:52.960> copy<01:18:53.239> it 01:18:53.750 --> 01:18:53.760 align:start position:0% well so for the Post we can copy it 01:18:53.760 --> 01:18:57.110 align:start position:0% well so for the Post we can copy it right<01:18:54.080> here<01:18:54.679> don't<01:18:55.239> mistakenly<01:18:55.800> do<01:18:56.000> the<01:18:56.159> wrong 01:18:57.110 --> 01:18:57.120 align:start position:0% right here don't mistakenly do the wrong 01:18:57.120 --> 01:19:00.709 align:start position:0% right here don't mistakenly do the wrong one<01:18:58.120> and<01:18:58.360> finally<01:18:58.880> we<01:18:59.000> can<01:18:59.120> do<01:18:59.280> the 01:19:00.709 --> 01:19:00.719 align:start position:0% one and finally we can do the 01:19:00.719 --> 01:19:03.870 align:start position:0% one and finally we can do the users<01:19:01.719> there<01:19:01.880> we<01:19:02.120> go<01:19:02.960> so<01:19:03.280> now<01:19:03.480> we<01:19:03.600> have<01:19:03.760> the 01:19:03.870 --> 01:19:03.880 align:start position:0% users there we go so now we have the 01:19:03.880 --> 01:19:08.270 align:start position:0% users there we go so now we have the ight<01:19:04.320> URL<01:19:05.000> the<01:19:05.199> project<01:19:05.560> ID<01:19:06.320> the<01:19:06.520> database<01:19:07.440> ID 01:19:08.270 --> 01:19:08.280 align:start position:0% ight URL the project ID the database ID 01:19:08.280 --> 01:19:12.149 align:start position:0% ight URL the project ID the database ID storage<01:19:08.800> ID<01:19:09.719> user<01:19:10.120> collection<01:19:10.760> ID<01:19:11.760> post 01:19:12.149 --> 01:19:12.159 align:start position:0% storage ID user collection ID post 01:19:12.159 --> 01:19:15.149 align:start position:0% storage ID user collection ID post collection<01:19:12.560> ID<01:19:13.320> and<01:19:13.480> the<01:19:13.639> saves<01:19:14.000> ID<01:19:14.840> in<01:19:15.000> case 01:19:15.149 --> 01:19:15.159 align:start position:0% collection ID and the saves ID in case 01:19:15.159 --> 01:19:17.350 align:start position:0% collection ID and the saves ID in case you<01:19:15.280> didn't<01:19:15.560> copy<01:19:15.840> the<01:19:16.000> project<01:19:16.320> ID<01:19:16.600> before 01:19:17.350 --> 01:19:17.360 align:start position:0% you didn't copy the project ID before 01:19:17.360 --> 01:19:19.750 align:start position:0% you didn't copy the project ID before it's<01:19:17.679> right<01:19:17.920> here<01:19:18.239> within<01:19:18.480> the<01:19:18.760> overview 01:19:19.750 --> 01:19:19.760 align:start position:0% it's right here within the overview 01:19:19.760 --> 01:19:22.709 align:start position:0% it's right here within the overview database<01:19:20.480> is<01:19:20.800> right<01:19:21.080> here<01:19:21.679> storage<01:19:22.360> is<01:19:22.560> right 01:19:22.709 --> 01:19:22.719 align:start position:0% database is right here storage is right 01:19:22.719 --> 01:19:25.470 align:start position:0% database is right here storage is right here<01:19:22.960> here<01:19:23.440> everything<01:19:23.800> is<01:19:24.000> so<01:19:24.320> easy<01:19:24.639> to 01:19:25.470 --> 01:19:25.480 align:start position:0% here here everything is so easy to 01:19:25.480 --> 01:19:28.270 align:start position:0% here here everything is so easy to find<01:19:26.480> now<01:19:26.880> we<01:19:27.000> can<01:19:27.199> make<01:19:27.480> use<01:19:27.719> of<01:19:28.000> these 01:19:28.270 --> 01:19:28.280 align:start position:0% find now we can make use of these 01:19:28.280 --> 01:19:30.510 align:start position:0% find now we can make use of these variables<01:19:29.159> by<01:19:29.320> going<01:19:29.719> back<01:19:30.000> not<01:19:30.199> to<01:19:30.360> our 01:19:30.510 --> 01:19:30.520 align:start position:0% variables by going back not to our 01:19:30.520 --> 01:19:33.270 align:start position:0% variables by going back not to our signup<01:19:30.960> form<01:19:31.520> but<01:19:31.800> rather<01:19:32.040> to<01:19:32.199> our<01:19:32.440> config 01:19:33.270 --> 01:19:33.280 align:start position:0% signup form but rather to our config 01:19:33.280 --> 01:19:35.470 align:start position:0% signup form but rather to our config right<01:19:33.520> here<01:19:34.159> we're<01:19:34.520> initializing<01:19:35.199> all<01:19:35.360> of 01:19:35.470 --> 01:19:35.480 align:start position:0% right here we're initializing all of 01:19:35.480 --> 01:19:37.709 align:start position:0% right here we're initializing all of these<01:19:35.639> Services<01:19:36.199> here<01:19:36.840> but<01:19:37.040> we're<01:19:37.280> not<01:19:37.520> yet 01:19:37.709 --> 01:19:37.719 align:start position:0% these Services here but we're not yet 01:19:37.719 --> 01:19:39.990 align:start position:0% these Services here but we're not yet properly<01:19:38.080> setting<01:19:38.400> them<01:19:38.600> up<01:19:39.360> and<01:19:39.520> we<01:19:39.639> can<01:19:39.760> do 01:19:39.990 --> 01:19:40.000 align:start position:0% properly setting them up and we can do 01:19:40.000 --> 01:19:43.790 align:start position:0% properly setting them up and we can do that<01:19:40.520> by<01:19:40.760> having<01:19:41.040> the<01:19:41.239> URL<01:19:42.239> the<01:19:42.440> project<01:19:42.800> ID<01:19:43.639> we 01:19:43.790 --> 01:19:43.800 align:start position:0% that by having the URL the project ID we 01:19:43.800 --> 01:19:47.110 align:start position:0% that by having the URL the project ID we also<01:19:44.080> need<01:19:44.360> a<01:19:44.600> database<01:19:45.600> ID<01:19:46.600> which<01:19:46.719> is<01:19:46.960> going 01:19:47.110 --> 01:19:47.120 align:start position:0% also need a database ID which is going 01:19:47.120 --> 01:19:48.310 align:start position:0% also need a database ID which is going to<01:19:47.280> be 01:19:48.310 --> 01:19:48.320 align:start position:0% to be 01:19:48.320 --> 01:19:56.149 align:start position:0% to be import.<01:19:49.320> meta<01:19:50.400> env.<01:19:51.840> vorea<01:19:52.920> _<01:19:53.920> database<01:19:55.000> ID<01:19:56.000> we 01:19:56.149 --> 01:19:56.159 align:start position:0% import. meta env. vorea _ database ID we 01:19:56.159 --> 01:19:58.830 align:start position:0% import. meta env. vorea _ database ID we also<01:19:56.400> need<01:19:56.560> to<01:19:56.719> get<01:19:56.960> a<01:19:57.199> storage<01:19:57.880> ID<01:19:58.600> which<01:19:58.719> is 01:19:58.830 --> 01:19:58.840 align:start position:0% also need to get a storage ID which is 01:19:58.840 --> 01:20:03.030 align:start position:0% also need to get a storage ID which is going<01:19:59.000> to<01:19:59.159> be<01:19:59.400> import.<01:20:00.400> meta<01:20:01.480> env. 01:20:03.030 --> 01:20:03.040 align:start position:0% going to be import. meta env. 01:20:03.040 --> 01:20:05.590 align:start position:0% going to be import. meta env. vorea<01:20:04.080> rightor 01:20:05.590 --> 01:20:05.600 align:start position:0% vorea rightor 01:20:05.600 --> 01:20:07.470 align:start position:0% vorea rightor storage 01:20:07.470 --> 01:20:07.480 align:start position:0% storage 01:20:07.480 --> 01:20:09.870 align:start position:0% storage ID<01:20:08.480> we<01:20:08.639> also<01:20:09.080> have<01:20:09.199> to<01:20:09.360> have<01:20:09.520> all<01:20:09.719> the 01:20:09.870 --> 01:20:09.880 align:start position:0% ID we also have to have all the 01:20:09.880 --> 01:20:12.149 align:start position:0% ID we also have to have all the collections<01:20:10.600> so<01:20:10.760> we<01:20:10.840> can<01:20:10.960> say<01:20:11.239> user 01:20:12.149 --> 01:20:12.159 align:start position:0% collections so we can say user 01:20:12.159 --> 01:20:16.830 align:start position:0% collections so we can say user collection<01:20:13.120> ID<01:20:14.000> is<01:20:14.280> import.<01:20:15.280> meta 01:20:16.830 --> 01:20:16.840 align:start position:0% collection ID is import. meta 01:20:16.840 --> 01:20:23.830 align:start position:0% collection ID is import. meta do.<01:20:18.320> vorea<01:20:19.360> rightor<01:20:20.480> user<01:20:21.760> collection<01:20:23.080> ID 01:20:23.830 --> 01:20:23.840 align:start position:0% do. vorea rightor user collection ID 01:20:23.840 --> 01:20:27.470 align:start position:0% do. vorea rightor user collection ID post<01:20:24.719> collection<01:20:25.600> ID<01:20:26.400> is<01:20:26.560> going<01:20:26.719> to<01:20:26.920> be 01:20:27.470 --> 01:20:27.480 align:start position:0% post collection ID is going to be 01:20:27.480 --> 01:20:34.070 align:start position:0% post collection ID is going to be import.<01:20:28.560> meta<01:20:29.880> env.<01:20:30.880> Vore<01:20:31.800> aight<01:20:32.440> _<01:20:33.080> postore 01:20:34.070 --> 01:20:34.080 align:start position:0% import. meta env. Vore aight _ postore 01:20:34.080 --> 01:20:38.910 align:start position:0% import. meta env. Vore aight _ postore collection<01:20:35.000> _<01:20:35.639> ID<01:20:36.639> and<01:20:36.960> finally<01:20:37.880> saves 01:20:38.910 --> 01:20:38.920 align:start position:0% collection _ ID and finally saves 01:20:38.920 --> 01:20:43.149 align:start position:0% collection _ ID and finally saves collection<01:20:40.280> ID<01:20:41.280> which<01:20:41.400> is<01:20:41.520> going<01:20:41.679> to<01:20:41.840> be 01:20:43.149 --> 01:20:43.159 align:start position:0% collection ID which is going to be 01:20:43.159 --> 01:20:48.070 align:start position:0% collection ID which is going to be importa<01:20:44.400> env.<01:20:45.400> Vore<01:20:46.320> aprite<01:20:46.920> uncore<01:20:47.520> saves 01:20:48.070 --> 01:20:48.080 align:start position:0% importa env. Vore aprite uncore saves 01:20:48.080 --> 01:20:49.149 align:start position:0% importa env. Vore aprite uncore saves uncore 01:20:49.149 --> 01:20:49.159 align:start position:0% uncore 01:20:49.159 --> 01:20:53.110 align:start position:0% uncore collection<01:20:50.159> uncore<01:20:51.120> ID<01:20:52.120> and<01:20:52.360> with<01:20:52.520> that<01:20:53.000> we 01:20:53.110 --> 01:20:53.120 align:start position:0% collection uncore ID and with that we 01:20:53.120 --> 01:20:54.790 align:start position:0% collection uncore ID and with that we have<01:20:53.400> everything<01:20:53.760> we<01:20:53.880> need<01:20:54.280> to<01:20:54.480> start 01:20:54.790 --> 01:20:54.800 align:start position:0% have everything we need to start 01:20:54.800 --> 01:20:57.709 align:start position:0% have everything we need to start utilizing<01:20:55.719> these<01:20:55.960> services<01:20:56.880> that<01:20:57.120> aright 01:20:57.709 --> 01:20:57.719 align:start position:0% utilizing these services that aright 01:20:57.719 --> 01:21:00.870 align:start position:0% utilizing these services that aright provides<01:20:58.120> out<01:20:58.239> of<01:20:58.400> the<01:20:58.840> box<01:20:59.840> so<01:21:00.280> back<01:21:00.480> in<01:21:00.679> our 01:21:00.870 --> 01:21:00.880 align:start position:0% provides out of the box so back in our 01:21:00.880 --> 01:21:04.070 align:start position:0% provides out of the box so back in our code<01:21:01.440> we<01:21:01.560> can<01:21:01.880> exit<01:21:02.239> our<01:21:02.480> EnV<01:21:03.000> local<01:21:03.679> we<01:21:03.760> can 01:21:04.070 --> 01:21:04.080 align:start position:0% code we can exit our EnV local we can 01:21:04.080 --> 01:21:07.510 align:start position:0% code we can exit our EnV local we can exit<01:21:04.440> our<01:21:04.679> config<01:21:05.239> as<01:21:05.440> well<01:21:06.120> and<01:21:06.520> before<01:21:07.080> we<01:21:07.239> go 01:21:07.510 --> 01:21:07.520 align:start position:0% exit our config as well and before we go 01:21:07.520 --> 01:21:09.990 align:start position:0% exit our config as well and before we go into<01:21:07.800> our<01:21:07.960> signup<01:21:08.360> form<01:21:08.960> and<01:21:09.199> finalize<01:21:09.840> what 01:21:09.990 --> 01:21:10.000 align:start position:0% into our signup form and finalize what 01:21:10.000 --> 01:21:11.790 align:start position:0% into our signup form and finalize what this<01:21:10.159> function<01:21:10.480> does<01:21:10.639> on<01:21:10.800> the<01:21:10.920> front<01:21:11.159> end 01:21:11.790 --> 01:21:11.800 align:start position:0% this function does on the front end 01:21:11.800 --> 01:21:13.790 align:start position:0% this function does on the front end let's<01:21:12.040> go<01:21:12.199> ahead<01:21:12.520> and<01:21:12.719> implement<01:21:13.199> it<01:21:13.440> on<01:21:13.600> the 01:21:13.790 --> 01:21:13.800 align:start position:0% let's go ahead and implement it on the 01:21:13.800 --> 01:21:16.709 align:start position:0% let's go ahead and implement it on the back<01:21:14.000> end<01:21:14.520> or<01:21:14.840> rather<01:21:15.440> let's<01:21:15.719> utilize<01:21:16.320> all<01:21:16.520> of 01:21:16.709 --> 01:21:16.719 align:start position:0% back end or rather let's utilize all of 01:21:16.719 --> 01:21:19.870 align:start position:0% back end or rather let's utilize all of these<01:21:16.920> services<01:21:17.639> that<01:21:17.800> aite<01:21:18.600> provides<01:21:19.600> so<01:21:19.760> I'm 01:21:19.870 --> 01:21:19.880 align:start position:0% these services that aite provides so I'm 01:21:19.880 --> 01:21:22.430 align:start position:0% these services that aite provides so I'm going<01:21:20.040> to<01:21:20.280> add<01:21:20.520> aight<01:21:21.080> right<01:21:21.239> here<01:21:21.400> to<01:21:21.560> the<01:21:21.760> top 01:21:22.430 --> 01:21:22.440 align:start position:0% going to add aight right here to the top 01:21:22.440 --> 01:21:24.750 align:start position:0% going to add aight right here to the top and<01:21:22.760> and<01:21:22.920> I'm<01:21:23.080> going<01:21:23.280> to<01:21:23.639> pin<01:21:23.880> it<01:21:24.400> this<01:21:24.480> is<01:21:24.600> a 01:21:24.750 --> 01:21:24.760 align:start position:0% and and I'm going to pin it this is a 01:21:24.760 --> 01:21:26.390 align:start position:0% and and I'm going to pin it this is a cool<01:21:25.000> Chrome<01:21:25.360> feature<01:21:25.880> you<01:21:25.960> can<01:21:26.199> have 01:21:26.390 --> 01:21:26.400 align:start position:0% cool Chrome feature you can have 01:21:26.400 --> 01:21:28.669 align:start position:0% cool Chrome feature you can have something<01:21:26.800> pinned<01:21:27.520> now<01:21:27.840> with<01:21:28.040> that<01:21:28.239> done 01:21:28.669 --> 01:21:28.679 align:start position:0% something pinned now with that done 01:21:28.679 --> 01:21:32.149 align:start position:0% something pinned now with that done let's<01:21:28.920> go<01:21:29.040> ahead<01:21:29.400> and<01:21:29.600> go<01:21:29.840> into<01:21:30.120> the<01:21:30.320> aite<01:21:31.159> API 01:21:32.149 --> 01:21:32.159 align:start position:0% let's go ahead and go into the aite API 01:21:32.159 --> 01:21:35.189 align:start position:0% let's go ahead and go into the aite API and<01:21:32.560> so<01:21:32.880> far<01:21:33.480> we<01:21:33.639> have<01:21:33.920> only<01:21:34.360> created<01:21:34.960> an 01:21:35.189 --> 01:21:35.199 align:start position:0% and so far we have only created an 01:21:35.199 --> 01:21:38.030 align:start position:0% and so far we have only created an account<01:21:35.960> which<01:21:36.159> then<01:21:36.400> added<01:21:36.760> it<01:21:37.360> right<01:21:37.600> here 01:21:38.030 --> 01:21:38.040 align:start position:0% account which then added it right here 01:21:38.040 --> 01:21:41.669 align:start position:0% account which then added it right here to<01:21:38.239> our<01:21:38.560> a<01:21:39.520> but<01:21:39.880> that's<01:21:40.120> not<01:21:40.360> enough<01:21:41.040> our<01:21:41.280> user 01:21:41.669 --> 01:21:41.679 align:start position:0% to our a but that's not enough our user 01:21:41.679 --> 01:21:43.510 align:start position:0% to our a but that's not enough our user has<01:21:41.840> to<01:21:42.000> have<01:21:42.159> relations<01:21:42.639> to<01:21:42.840> the<01:21:43.000> post<01:21:43.320> it 01:21:43.510 --> 01:21:43.520 align:start position:0% has to have relations to the post it 01:21:43.520 --> 01:21:45.750 align:start position:0% has to have relations to the post it creates<01:21:44.360> which<01:21:44.560> means<01:21:45.040> that<01:21:45.199> we<01:21:45.280> need<01:21:45.440> to<01:21:45.600> have 01:21:45.750 --> 01:21:45.760 align:start position:0% creates which means that we need to have 01:21:45.760 --> 01:21:48.830 align:start position:0% creates which means that we need to have it<01:21:46.040> in<01:21:46.239> our<01:21:46.600> database<01:21:47.600> so<01:21:48.199> right<01:21:48.400> now<01:21:48.639> within 01:21:48.830 --> 01:21:48.840 align:start position:0% it in our database so right now within 01:21:48.840 --> 01:21:52.310 align:start position:0% it in our database so right now within our<01:21:49.080> database<01:21:49.800> we<01:21:50.040> don't<01:21:50.360> yet<01:21:50.719> have<01:21:51.040> a<01:21:51.280> user<01:21:52.040> so 01:21:52.310 --> 01:21:52.320 align:start position:0% our database we don't yet have a user so 01:21:52.320 --> 01:21:54.430 align:start position:0% our database we don't yet have a user so that's<01:21:52.679> going<01:21:52.800> to<01:21:52.880> be<01:21:53.000> our<01:21:53.159> next<01:21:53.440> goal<01:21:54.000> to<01:21:54.280> add 01:21:54.430 --> 01:21:54.440 align:start position:0% that's going to be our next goal to add 01:21:54.440 --> 01:21:57.070 align:start position:0% that's going to be our next goal to add a<01:21:54.600> user<01:21:54.880> to<01:21:55.040> our<01:21:55.280> off<01:21:55.840> but<01:21:56.040> also<01:21:56.280> to<01:21:56.480> create<01:21:56.960> the 01:21:57.070 --> 01:21:57.080 align:start position:0% a user to our off but also to create the 01:21:57.080 --> 01:22:00.310 align:start position:0% a user to our off but also to create the user's<01:21:57.600> document<01:21:58.199> in<01:21:58.320> the<01:21:58.760> database<01:21:59.760> so<01:22:00.159> how 01:22:00.310 --> 01:22:00.320 align:start position:0% user's document in the database so how 01:22:00.320 --> 01:22:02.590 align:start position:0% user's document in the database so how are<01:22:00.440> we<01:22:00.600> going<01:22:00.760> to<01:22:00.920> do<01:22:01.080> it<01:22:01.719> well<01:22:02.080> let<01:22:02.199> me<01:22:02.360> show 01:22:02.590 --> 01:22:02.600 align:start position:0% are we going to do it well let me show 01:22:02.600 --> 01:22:05.229 align:start position:0% are we going to do it well let me show you<01:22:03.400> we<01:22:03.520> can<01:22:03.719> go<01:22:04.000> right<01:22:04.199> here<01:22:04.440> below<01:22:04.800> create 01:22:05.229 --> 01:22:05.239 align:start position:0% you we can go right here below create 01:22:05.239 --> 01:22:07.550 align:start position:0% you we can go right here below create account<01:22:05.880> and<01:22:06.040> we<01:22:06.120> can<01:22:06.320> check<01:22:06.920> if<01:22:07.120> we<01:22:07.320> get 01:22:07.550 --> 01:22:07.560 align:start position:0% account and we can check if we get 01:22:07.560 --> 01:22:10.229 align:start position:0% account and we can check if we get anything<01:22:07.960> back<01:22:08.159> from<01:22:08.360> it<01:22:08.960> and<01:22:09.239> if<01:22:09.400> we<01:22:09.600> don't<01:22:10.040> so 01:22:10.229 --> 01:22:10.239 align:start position:0% anything back from it and if we don't so 01:22:10.239 --> 01:22:13.390 align:start position:0% anything back from it and if we don't so if<01:22:10.360> there's<01:22:10.679> no<01:22:11.239> new<01:22:11.679> account<01:22:12.600> in<01:22:12.840> that<01:22:13.080> case 01:22:13.390 --> 01:22:13.400 align:start position:0% if there's no new account in that case 01:22:13.400 --> 01:22:16.110 align:start position:0% if there's no new account in that case we<01:22:13.520> want<01:22:13.679> to<01:22:13.840> throw<01:22:14.360> a<01:22:14.560> new<01:22:14.880> error<01:22:15.719> we<01:22:15.800> can<01:22:15.960> do 01:22:16.110 --> 01:22:16.120 align:start position:0% we want to throw a new error we can do 01:22:16.120 --> 01:22:20.590 align:start position:0% we want to throw a new error we can do it<01:22:16.360> just<01:22:16.760> like<01:22:16.960> so<01:22:17.600> throw<01:22:18.800> error<01:22:19.800> then<01:22:20.199> moving 01:22:20.590 --> 01:22:20.600 align:start position:0% it just like so throw error then moving 01:22:20.600 --> 01:22:23.590 align:start position:0% it just like so throw error then moving down<01:22:21.040> we<01:22:21.120> can<01:22:21.320> create<01:22:21.639> a<01:22:21.840> new<01:22:22.199> Avatar<01:22:22.800> URL<01:22:23.440> by 01:22:23.590 --> 01:22:23.600 align:start position:0% down we can create a new Avatar URL by 01:22:23.600 --> 01:22:27.590 align:start position:0% down we can create a new Avatar URL by saying<01:22:23.960> const<01:22:24.679> Avatar<01:22:25.280> URL<01:22:26.159> is<01:22:26.400> equal<01:22:26.719> to 01:22:27.590 --> 01:22:27.600 align:start position:0% saying const Avatar URL is equal to 01:22:27.600 --> 01:22:30.350 align:start position:0% saying const Avatar URL is equal to avatars<01:22:28.600> do<01:22:29.239> get 01:22:30.350 --> 01:22:30.360 align:start position:0% avatars do get 01:22:30.360 --> 01:22:32.669 align:start position:0% avatars do get initials<01:22:31.360> now<01:22:31.639> where<01:22:31.800> are<01:22:31.920> we<01:22:32.080> getting<01:22:32.400> these 01:22:32.669 --> 01:22:32.679 align:start position:0% initials now where are we getting these 01:22:32.679 --> 01:22:35.229 align:start position:0% initials now where are we getting these avatars<01:22:33.280> from<01:22:34.159> well<01:22:34.560> that's<01:22:34.800> something<01:22:35.120> we 01:22:35.229 --> 01:22:35.239 align:start position:0% avatars from well that's something we 01:22:35.239 --> 01:22:37.350 align:start position:0% avatars from well that's something we have<01:22:35.360> to<01:22:35.560> import<01:22:35.960> from<01:22:36.239> aight<01:22:36.920> so<01:22:37.080> you<01:22:37.159> can 01:22:37.350 --> 01:22:37.360 align:start position:0% have to import from aight so you can 01:22:37.360 --> 01:22:39.470 align:start position:0% have to import from aight so you can double<01:22:37.679> click<01:22:37.880> it<01:22:38.199> press<01:22:38.440> control<01:22:38.920> space<01:22:39.360> and 01:22:39.470 --> 01:22:39.480 align:start position:0% double click it press control space and 01:22:39.480 --> 01:22:42.390 align:start position:0% double click it press control space and then<01:22:39.760> import<01:22:40.120> from<01:22:40.440> that/<01:22:41.199> config<01:22:42.120> if<01:22:42.239> you 01:22:42.390 --> 01:22:42.400 align:start position:0% then import from that/ config if you 01:22:42.400 --> 01:22:44.229 align:start position:0% then import from that/ config if you remember<01:22:43.159> this<01:22:43.280> is<01:22:43.400> going<01:22:43.560> to<01:22:43.679> be<01:22:43.880> one<01:22:44.040> of 01:22:44.229 --> 01:22:44.239 align:start position:0% remember this is going to be one of 01:22:44.239 --> 01:22:47.070 align:start position:0% remember this is going to be one of these<01:22:44.440> services<01:22:45.239> that<01:22:45.600> aight<01:22:46.120> provides 01:22:47.070 --> 01:22:47.080 align:start position:0% these services that aight provides 01:22:47.080 --> 01:22:51.030 align:start position:0% these services that aight provides account<01:22:47.800> databases<01:22:48.760> storage<01:22:49.560> avatars<01:22:50.440> and 01:22:51.030 --> 01:22:51.040 align:start position:0% account databases storage avatars and 01:22:51.040 --> 01:22:54.110 align:start position:0% account databases storage avatars and client<01:22:52.040> so<01:22:52.239> now<01:22:52.360> we're<01:22:52.560> we're<01:22:52.679> using<01:22:53.120> avatar. 01:22:54.110 --> 01:22:54.120 align:start position:0% client so now we're we're using avatar. 01:22:54.120 --> 01:22:55.950 align:start position:0% client so now we're we're using avatar. get<01:22:54.400> initials<01:22:55.199> and<01:22:55.320> we<01:22:55.440> want<01:22:55.520> to<01:22:55.679> get<01:22:55.840> the 01:22:55.950 --> 01:22:55.960 align:start position:0% get initials and we want to get the 01:22:55.960 --> 01:22:59.510 align:start position:0% get initials and we want to get the initials<01:22:56.440> from<01:22:56.679> user.name<01:22:58.040> once<01:22:59.040> we<01:22:59.199> have<01:22:59.360> the 01:22:59.510 --> 01:22:59.520 align:start position:0% initials from user.name once we have the 01:22:59.520 --> 01:23:03.110 align:start position:0% initials from user.name once we have the Avatar<01:22:59.960> URL<01:23:00.840> we<01:23:00.920> can<01:23:01.120> create<01:23:01.560> a<01:23:01.760> new<01:23:02.000> user<01:23:02.920> but 01:23:03.110 --> 01:23:03.120 align:start position:0% Avatar URL we can create a new user but 01:23:03.120 --> 01:23:05.470 align:start position:0% Avatar URL we can create a new user but this<01:23:03.320> time<01:23:03.600> not<01:23:03.800> a<01:23:03.960> new<01:23:04.199> account<01:23:04.880> rather<01:23:05.239> a 01:23:05.470 --> 01:23:05.480 align:start position:0% this time not a new account rather a 01:23:05.480 --> 01:23:07.990 align:start position:0% this time not a new account rather a complete<01:23:06.000> new<01:23:06.280> user<01:23:06.719> in<01:23:06.880> the<01:23:07.080> database<01:23:07.840> by 01:23:07.990 --> 01:23:08.000 align:start position:0% complete new user in the database by 01:23:08.000 --> 01:23:14.070 align:start position:0% complete new user in the database by saying<01:23:08.360> a<01:23:09.000> wait<01:23:10.000> save<01:23:10.840> user<01:23:11.600> to<01:23:12.400> DB<01:23:13.400> just<01:23:13.800> like 01:23:14.070 --> 01:23:14.080 align:start position:0% saying a wait save user to DB just like 01:23:14.080 --> 01:23:16.950 align:start position:0% saying a wait save user to DB just like so<01:23:14.800> but<01:23:14.960> the<01:23:15.080> main<01:23:15.400> question<01:23:15.719> is<01:23:16.199> where<01:23:16.679> is 01:23:16.950 --> 01:23:16.960 align:start position:0% so but the main question is where is 01:23:16.960 --> 01:23:20.070 align:start position:0% so but the main question is where is this<01:23:17.199> function<01:23:17.600> coming<01:23:18.360> from<01:23:19.360> and<01:23:19.520> the<01:23:19.719> answer 01:23:20.070 --> 01:23:20.080 align:start position:0% this function coming from and the answer 01:23:20.080 --> 01:23:22.550 align:start position:0% this function coming from and the answer is<01:23:20.800> it's<01:23:20.960> a<01:23:21.159> function<01:23:21.760> that<01:23:21.880> we<01:23:21.960> are<01:23:22.080> going<01:23:22.199> to 01:23:22.550 --> 01:23:22.560 align:start position:0% is it's a function that we are going to 01:23:22.560 --> 01:23:25.750 align:start position:0% is it's a function that we are going to Define<01:23:23.000> our<01:23:23.239> cells<01:23:24.239> so<01:23:24.600> right<01:23:24.840> below<01:23:25.520> this 01:23:25.750 --> 01:23:25.760 align:start position:0% Define our cells so right below this 01:23:25.760 --> 01:23:27.990 align:start position:0% Define our cells so right below this function<01:23:26.159> create<01:23:26.480> new<01:23:26.679> user<01:23:27.239> we<01:23:27.320> can<01:23:27.480> create<01:23:27.800> a 01:23:27.990 --> 01:23:28.000 align:start position:0% function create new user we can create a 01:23:28.000 --> 01:23:33.750 align:start position:0% function create new user we can create a new<01:23:28.480> function<01:23:29.480> export<01:23:30.600> async<01:23:31.960> function<01:23:32.960> save 01:23:33.750 --> 01:23:33.760 align:start position:0% new function export async function save 01:23:33.760 --> 01:23:37.590 align:start position:0% new function export async function save user<01:23:34.560> to<01:23:35.400> DB<01:23:36.400> this<01:23:36.600> function<01:23:37.080> is<01:23:37.199> going<01:23:37.400> to 01:23:37.590 --> 01:23:37.600 align:start position:0% user to DB this function is going to 01:23:37.600 --> 01:23:40.350 align:start position:0% user to DB this function is going to accept<01:23:37.920> the<01:23:38.080> user<01:23:38.800> as<01:23:38.920> a<01:23:39.120> parameter<01:23:40.080> and<01:23:40.239> we 01:23:40.350 --> 01:23:40.360 align:start position:0% accept the user as a parameter and we 01:23:40.360 --> 01:23:42.470 align:start position:0% accept the user as a parameter and we can<01:23:40.520> immediately<01:23:41.040> destructure<01:23:42.000> some<01:23:42.159> of<01:23:42.280> the 01:23:42.470 --> 01:23:42.480 align:start position:0% can immediately destructure some of the 01:23:42.480 --> 01:23:45.229 align:start position:0% can immediately destructure some of the values<01:23:43.000> from<01:23:43.199> that<01:23:43.440> user<01:23:44.320> and<01:23:44.480> then<01:23:44.679> open<01:23:44.920> up<01:23:45.080> a 01:23:45.229 --> 01:23:45.239 align:start position:0% values from that user and then open up a 01:23:45.239 --> 01:23:48.070 align:start position:0% values from that user and then open up a new<01:23:45.440> function<01:23:46.000> block<01:23:47.000> we<01:23:47.120> can<01:23:47.320> destructure 01:23:48.070 --> 01:23:48.080 align:start position:0% new function block we can destructure 01:23:48.080 --> 01:23:49.390 align:start position:0% new function block we can destructure the<01:23:48.280> account 01:23:49.390 --> 01:23:49.400 align:start position:0% the account 01:23:49.400 --> 01:23:52.590 align:start position:0% the account ID<01:23:50.400> which<01:23:50.520> is<01:23:50.639> going<01:23:50.800> to<01:23:50.920> be<01:23:51.040> of<01:23:51.199> a<01:23:51.400> type<01:23:51.639> string 01:23:52.590 --> 01:23:52.600 align:start position:0% ID which is going to be of a type string 01:23:52.600 --> 01:23:54.910 align:start position:0% ID which is going to be of a type string we<01:23:52.719> can<01:23:52.880> destructure<01:23:53.560> the<01:23:53.760> email<01:23:54.639> which<01:23:54.800> is 01:23:54.910 --> 01:23:54.920 align:start position:0% we can destructure the email which is 01:23:54.920 --> 01:23:56.870 align:start position:0% we can destructure the email which is going<01:23:55.040> to<01:23:55.159> be<01:23:55.280> of<01:23:55.360> a<01:23:55.520> type<01:23:55.719> string<01:23:56.040> as<01:23:56.199> well<01:23:56.760> we 01:23:56.870 --> 01:23:56.880 align:start position:0% going to be of a type string as well we 01:23:56.880 --> 01:23:58.709 align:start position:0% going to be of a type string as well we can<01:23:57.040> destructure<01:23:57.639> the<01:23:57.800> name<01:23:58.120> of<01:23:58.280> a<01:23:58.480> type 01:23:58.709 --> 01:23:58.719 align:start position:0% can destructure the name of a type 01:23:58.719 --> 01:24:01.590 align:start position:0% can destructure the name of a type string<01:23:59.440> we<01:23:59.520> can<01:23:59.719> destructure<01:24:00.440> the<01:24:00.600> image<01:24:00.880> URL 01:24:01.590 --> 01:24:01.600 align:start position:0% string we can destructure the image URL 01:24:01.600 --> 01:24:04.270 align:start position:0% string we can destructure the image URL of<01:24:01.800> a<01:24:01.960> type<01:24:02.199> URL<01:24:03.080> and<01:24:03.159> we<01:24:03.280> can<01:24:03.440> destructure<01:24:04.120> the 01:24:04.270 --> 01:24:04.280 align:start position:0% of a type URL and we can destructure the 01:24:04.280 --> 01:24:07.229 align:start position:0% of a type URL and we can destructure the username<01:24:05.239> which<01:24:05.360> is<01:24:05.520> going<01:24:05.679> to<01:24:05.840> be<01:24:06.239> optional 01:24:07.229 --> 01:24:07.239 align:start position:0% username which is going to be optional 01:24:07.239 --> 01:24:09.229 align:start position:0% username which is going to be optional and<01:24:07.360> it's<01:24:07.520> going<01:24:07.639> to<01:24:07.760> be<01:24:07.880> of<01:24:08.040> a<01:24:08.199> type<01:24:08.400> string<01:24:09.040> as 01:24:09.229 --> 01:24:09.239 align:start position:0% and it's going to be of a type string as 01:24:09.239 --> 01:24:11.149 align:start position:0% and it's going to be of a type string as well<01:24:10.000> and<01:24:10.159> how<01:24:10.280> do<01:24:10.400> we<01:24:10.520> know<01:24:10.679> we're<01:24:10.880> getting 01:24:11.149 --> 01:24:11.159 align:start position:0% well and how do we know we're getting 01:24:11.159 --> 01:24:13.870 align:start position:0% well and how do we know we're getting this<01:24:11.920> well<01:24:12.199> we<01:24:12.320> can<01:24:12.600> pass<01:24:12.800> it<01:24:13.280> right<01:24:13.480> here<01:24:13.760> when 01:24:13.870 --> 01:24:13.880 align:start position:0% this well we can pass it right here when 01:24:13.880 --> 01:24:16.270 align:start position:0% this well we can pass it right here when we<01:24:14.040> call<01:24:14.400> that<01:24:14.600> function<01:24:15.560> we<01:24:15.679> can<01:24:15.880> pass<01:24:16.040> an 01:24:16.270 --> 01:24:16.280 align:start position:0% we call that function we can pass an 01:24:16.280 --> 01:24:18.550 align:start position:0% we call that function we can pass an object<01:24:16.960> that's<01:24:17.199> going<01:24:17.360> to<01:24:17.600> have<01:24:17.920> all<01:24:18.080> of<01:24:18.280> these 01:24:18.550 --> 01:24:18.560 align:start position:0% object that's going to have all of these 01:24:18.560 --> 01:24:22.030 align:start position:0% object that's going to have all of these properties<01:24:19.560> an<01:24:19.760> account<01:24:20.120> ID<01:24:20.840> equal<01:24:21.199> to<01:24:21.760> new 01:24:22.030 --> 01:24:22.040 align:start position:0% properties an account ID equal to new 01:24:22.040 --> 01:24:24.510 align:start position:0% properties an account ID equal to new account 01:24:24.510 --> 01:24:24.520 align:start position:0% 01:24:24.520 --> 01:24:27.669 align:start position:0% and<01:24:24.679> then<01:24:25.080> dot<01:24:25.880> dollar<01:24:26.320> sign<01:24:26.639> ID<01:24:27.320> that's<01:24:27.480> how 01:24:27.669 --> 01:24:27.679 align:start position:0% and then dot dollar sign ID that's how 01:24:27.679 --> 01:24:30.590 align:start position:0% and then dot dollar sign ID that's how app<01:24:27.960> write<01:24:28.120> stores<01:24:28.520> IDs<01:24:29.400> we<01:24:29.520> can<01:24:29.719> pass<01:24:29.880> a<01:24:30.080> name 01:24:30.590 --> 01:24:30.600 align:start position:0% app write stores IDs we can pass a name 01:24:30.600 --> 01:24:32.629 align:start position:0% app write stores IDs we can pass a name equal<01:24:30.920> to<01:24:31.239> new 01:24:32.629 --> 01:24:32.639 align:start position:0% equal to new 01:24:32.639 --> 01:24:36.110 align:start position:0% equal to new account.<01:24:33.639> name<01:24:34.440> we<01:24:34.560> can<01:24:34.760> pass<01:24:34.960> an<01:24:35.159> email<01:24:35.800> equal 01:24:36.110 --> 01:24:36.120 align:start position:0% account. name we can pass an email equal 01:24:36.120 --> 01:24:39.709 align:start position:0% account. name we can pass an email equal to<01:24:36.280> new<01:24:37.040> account.<01:24:38.040> email<01:24:38.840> we<01:24:38.960> can<01:24:39.199> pass<01:24:39.360> a 01:24:39.709 --> 01:24:39.719 align:start position:0% to new account. email we can pass a 01:24:39.719 --> 01:24:43.910 align:start position:0% to new account. email we can pass a username<01:24:40.719> equal<01:24:41.040> to<01:24:41.239> new<01:24:41.679> account.<01:24:42.920> username 01:24:43.910 --> 01:24:43.920 align:start position:0% username equal to new account. username 01:24:43.920 --> 01:24:46.109 align:start position:0% username equal to new account. username or<01:24:44.280> rather<01:24:44.800> this<01:24:44.960> username<01:24:45.440> is<01:24:45.600> not<01:24:45.800> going<01:24:45.960> to 01:24:46.109 --> 01:24:46.119 align:start position:0% or rather this username is not going to 01:24:46.119 --> 01:24:48.310 align:start position:0% or rather this username is not going to be<01:24:46.400> within<01:24:46.639> a<01:24:46.800> new<01:24:47.040> account<01:24:47.920> because<01:24:48.119> we're 01:24:48.310 --> 01:24:48.320 align:start position:0% be within a new account because we're 01:24:48.320 --> 01:24:50.430 align:start position:0% be within a new account because we're not<01:24:48.560> passing<01:24:48.880> it<01:24:49.040> initially<01:24:49.840> but<01:24:50.040> we<01:24:50.159> are 01:24:50.430 --> 01:24:50.440 align:start position:0% not passing it initially but we are 01:24:50.440 --> 01:24:52.350 align:start position:0% not passing it initially but we are passing<01:24:50.760> it<01:24:51.000> right<01:24:51.199> here<01:24:51.600> when<01:24:51.840> saving<01:24:52.159> the 01:24:52.350 --> 01:24:52.360 align:start position:0% passing it right here when saving the 01:24:52.360 --> 01:24:54.590 align:start position:0% passing it right here when saving the user<01:24:52.560> in<01:24:52.639> the<01:24:52.840> database<01:24:53.840> and<01:24:54.000> that's<01:24:54.239> coming 01:24:54.590 --> 01:24:54.600 align:start position:0% user in the database and that's coming 01:24:54.600 --> 01:24:57.070 align:start position:0% user in the database and that's coming from<01:24:54.880> our<01:24:55.080> form<01:24:55.679> we<01:24:55.880> have<01:24:56.040> a<01:24:56.159> field<01:24:56.760> here 01:24:57.070 --> 01:24:57.080 align:start position:0% from our form we have a field here 01:24:57.080 --> 01:25:00.109 align:start position:0% from our form we have a field here called<01:24:57.520> username<01:24:58.520> so<01:24:58.960> instead<01:24:59.880> we're<01:25:00.040> going 01:25:00.109 --> 01:25:00.119 align:start position:0% called username so instead we're going 01:25:00.119 --> 01:25:02.149 align:start position:0% called username so instead we're going to<01:25:00.360> say 01:25:02.149 --> 01:25:02.159 align:start position:0% to say 01:25:02.159 --> 01:25:04.830 align:start position:0% to say user. 01:25:04.830 --> 01:25:04.840 align:start position:0% user. 01:25:04.840 --> 01:25:07.270 align:start position:0% user. username<01:25:05.840> and<01:25:06.080> finally<01:25:06.440> we<01:25:06.560> need<01:25:06.679> to<01:25:06.880> pass<01:25:07.119> the 01:25:07.270 --> 01:25:07.280 align:start position:0% username and finally we need to pass the 01:25:07.280 --> 01:25:10.709 align:start position:0% username and finally we need to pass the image<01:25:07.560> URL<01:25:08.360> of<01:25:08.560> a<01:25:08.760> type<01:25:09.159> Avatar<01:25:09.760> URL<01:25:10.560> which 01:25:10.709 --> 01:25:10.719 align:start position:0% image URL of a type Avatar URL which 01:25:10.719 --> 01:25:13.790 align:start position:0% image URL of a type Avatar URL which we're<01:25:10.920> also<01:25:11.320> passing<01:25:12.239> above<01:25:13.239> now<01:25:13.400> we<01:25:13.560> have 01:25:13.790 --> 01:25:13.800 align:start position:0% we're also passing above now we have 01:25:13.800 --> 01:25:16.590 align:start position:0% we're also passing above now we have this<01:25:13.960> new<01:25:14.400> user<01:25:15.400> which<01:25:15.560> is<01:25:15.760> equal<01:25:16.040> to<01:25:16.480> the 01:25:16.590 --> 01:25:16.600 align:start position:0% this new user which is equal to the 01:25:16.600 --> 01:25:19.430 align:start position:0% this new user which is equal to the function<01:25:16.960> call<01:25:17.360> of<01:25:17.520> our<01:25:17.719> save<01:25:18.000> user<01:25:18.280> to<01:25:18.440> DB<01:25:19.280> and 01:25:19.430 --> 01:25:19.440 align:start position:0% function call of our save user to DB and 01:25:19.440 --> 01:25:21.470 align:start position:0% function call of our save user to DB and then<01:25:19.679> instead<01:25:19.920> of<01:25:20.040> returning<01:25:20.400> a<01:25:20.560> new<01:25:20.800> account 01:25:21.470 --> 01:25:21.480 align:start position:0% then instead of returning a new account 01:25:21.480 --> 01:25:24.910 align:start position:0% then instead of returning a new account we<01:25:21.600> can<01:25:21.920> return<01:25:22.360> a<01:25:22.560> new<01:25:23.080> user<01:25:24.080> which<01:25:24.239> means 01:25:24.910 --> 01:25:24.920 align:start position:0% we can return a new user which means 01:25:24.920 --> 01:25:27.470 align:start position:0% we can return a new user which means that<01:25:25.119> our<01:25:25.440> create<01:25:26.000> user<01:25:26.400> account<01:25:26.760> function<01:25:27.280> is 01:25:27.470 --> 01:25:27.480 align:start position:0% that our create user account function is 01:25:27.480 --> 01:25:30.629 align:start position:0% that our create user account function is now<01:25:27.760> done<01:25:28.560> but<01:25:28.760> of<01:25:28.920> course<01:25:29.400> it's<01:25:29.679> dependent<01:25:30.440> on 01:25:30.629 --> 01:25:30.639 align:start position:0% now done but of course it's dependent on 01:25:30.639 --> 01:25:33.750 align:start position:0% now done but of course it's dependent on the<01:25:30.880> save<01:25:31.360> user<01:25:31.760> to<01:25:32.000> DB<01:25:32.520> function<01:25:33.320> so<01:25:33.520> let's 01:25:33.750 --> 01:25:33.760 align:start position:0% the save user to DB function so let's 01:25:33.760 --> 01:25:35.910 align:start position:0% the save user to DB function so let's collapse<01:25:34.280> this<01:25:34.679> and<01:25:34.880> let's<01:25:35.119> focus<01:25:35.560> on<01:25:35.760> the 01:25:35.910 --> 01:25:35.920 align:start position:0% collapse this and let's focus on the 01:25:35.920 --> 01:25:39.470 align:start position:0% collapse this and let's focus on the save<01:25:36.280> user<01:25:36.560> to<01:25:36.920> DB<01:25:37.920> remember<01:25:38.679> above<01:25:39.159> we're 01:25:39.470 --> 01:25:39.480 align:start position:0% save user to DB remember above we're 01:25:39.480 --> 01:25:42.070 align:start position:0% save user to DB remember above we're only<01:25:39.840> using<01:25:40.239> the<01:25:40.440> O<01:25:41.000> functionalities<01:25:41.920> where 01:25:42.070 --> 01:25:42.080 align:start position:0% only using the O functionalities where 01:25:42.080 --> 01:25:44.149 align:start position:0% only using the O functionalities where we're<01:25:42.239> doing<01:25:42.520> authentication<01:25:43.520> but<01:25:43.719> now<01:25:44.040> we 01:25:44.149 --> 01:25:44.159 align:start position:0% we're doing authentication but now we 01:25:44.159 --> 01:25:46.430 align:start position:0% we're doing authentication but now we want<01:25:44.280> to<01:25:44.440> save<01:25:44.679> it<01:25:45.280> so<01:25:45.480> for<01:25:45.679> the<01:25:45.840> first<01:25:46.080> time<01:25:46.239> in 01:25:46.430 --> 01:25:46.440 align:start position:0% want to save it so for the first time in 01:25:46.440 --> 01:25:48.990 align:start position:0% want to save it so for the first time in this<01:25:46.679> app<01:25:46.960> we're<01:25:47.119> going<01:25:47.280> to<01:25:47.520> save<01:25:47.920> a<01:25:48.199> document 01:25:48.990 --> 01:25:49.000 align:start position:0% this app we're going to save a document 01:25:49.000 --> 01:25:51.910 align:start position:0% this app we're going to save a document to<01:25:49.360> app<01:25:49.679> right<01:25:50.080> database<01:25:51.080> let's<01:25:51.320> open<01:25:51.560> up<01:25:51.760> a 01:25:51.910 --> 01:25:51.920 align:start position:0% to app right database let's open up a 01:25:51.920 --> 01:25:55.109 align:start position:0% to app right database let's open up a new<01:25:52.360> try<01:25:52.639> and<01:25:52.960> catch<01:25:53.280> Block<01:25:54.280> in<01:25:54.400> the<01:25:54.560> error<01:25:55.040> we 01:25:55.109 --> 01:25:55.119 align:start position:0% new try and catch Block in the error we 01:25:55.119 --> 01:25:58.390 align:start position:0% new try and catch Block in the error we can<01:25:55.320> simply<01:25:55.880> console.log<01:25:56.880> the 01:25:58.390 --> 01:25:58.400 align:start position:0% can simply console.log the 01:25:58.400 --> 01:26:02.149 align:start position:0% can simply console.log the error<01:25:59.400> in<01:25:59.560> the<01:25:59.719> try<01:26:00.400> we<01:26:00.480> can<01:26:00.639> say<01:26:00.920> const<01:26:01.880> new 01:26:02.149 --> 01:26:02.159 align:start position:0% error in the try we can say const new 01:26:02.159 --> 01:26:06.390 align:start position:0% error in the try we can say const new user<01:26:03.159> is<01:26:03.440> equal<01:26:03.760> to<01:26:04.440> await 01:26:06.390 --> 01:26:06.400 align:start position:0% user is equal to await 01:26:06.400 --> 01:26:10.430 align:start position:0% user is equal to await databases.<01:26:07.400> create<01:26:08.440> document<01:26:09.440> one<01:26:09.600> more<01:26:09.880> time 01:26:10.430 --> 01:26:10.440 align:start position:0% databases. create document one more time 01:26:10.440 --> 01:26:12.870 align:start position:0% databases. create document one more time where<01:26:10.719> is<01:26:11.000> databases<01:26:11.639> coming<01:26:11.960> from<01:26:12.440> try<01:26:12.679> to 01:26:12.870 --> 01:26:12.880 align:start position:0% where is databases coming from try to 01:26:12.880 --> 01:26:16.310 align:start position:0% where is databases coming from try to think<01:26:13.119> about<01:26:13.320> it<01:26:14.040> it's<01:26:14.280> coming<01:26:14.560> fromc<01:26:15.560> config 01:26:16.310 --> 01:26:16.320 align:start position:0% think about it it's coming fromc config 01:26:16.320 --> 01:26:17.950 align:start position:0% think about it it's coming fromc config because<01:26:16.520> we're<01:26:16.760> utilizing<01:26:17.639> what<01:26:17.800> we 01:26:17.950 --> 01:26:17.960 align:start position:0% because we're utilizing what we 01:26:17.960 --> 01:26:21.149 align:start position:0% because we're utilizing what we configured<01:26:18.639> not<01:26:18.960> that<01:26:19.199> long<01:26:19.600> ago<01:26:20.600> and<01:26:20.800> now<01:26:21.040> we 01:26:21.149 --> 01:26:21.159 align:start position:0% configured not that long ago and now we 01:26:21.159 --> 01:26:23.709 align:start position:0% configured not that long ago and now we have<01:26:21.280> to<01:26:21.560> pass<01:26:21.960> what<01:26:22.360> want<01:26:22.440> to<01:26:22.639> create<01:26:23.520> so 01:26:23.709 --> 01:26:23.719 align:start position:0% have to pass what want to create so 01:26:23.719 --> 01:26:26.950 align:start position:0% have to pass what want to create so we're<01:26:23.880> going<01:26:23.960> to<01:26:24.159> pass<01:26:24.440> the<01:26:24.639> ight<01:26:25.440> config<01:26:26.440> do 01:26:26.950 --> 01:26:26.960 align:start position:0% we're going to pass the ight config do 01:26:26.960 --> 01:26:29.390 align:start position:0% we're going to pass the ight config do database<01:26:27.560> ID<01:26:28.520> we<01:26:28.639> need<01:26:28.760> to<01:26:28.880> know<01:26:29.159> which 01:26:29.390 --> 01:26:29.400 align:start position:0% database ID we need to know which 01:26:29.400 --> 01:26:32.270 align:start position:0% database ID we need to know which database<01:26:29.960> are<01:26:30.159> we<01:26:30.760> modifying<01:26:31.760> then<01:26:32.000> we<01:26:32.119> need 01:26:32.270 --> 01:26:32.280 align:start position:0% database are we modifying then we need 01:26:32.280 --> 01:26:34.390 align:start position:0% database are we modifying then we need to<01:26:32.480> pass<01:26:32.760> the<01:26:32.960> upright 01:26:34.390 --> 01:26:34.400 align:start position:0% to pass the upright 01:26:34.400 --> 01:26:38.070 align:start position:0% to pass the upright config<01:26:35.400> do<01:26:35.920> user<01:26:36.639> collection<01:26:37.080> ID<01:26:37.639> to<01:26:37.840> know 01:26:38.070 --> 01:26:38.080 align:start position:0% config do user collection ID to know 01:26:38.080 --> 01:26:40.430 align:start position:0% config do user collection ID to know which<01:26:38.360> collection<01:26:38.840> are<01:26:39.000> we<01:26:39.320> modifying<01:26:40.320> we 01:26:40.430 --> 01:26:40.440 align:start position:0% which collection are we modifying we 01:26:40.440 --> 01:26:44.350 align:start position:0% which collection are we modifying we need<01:26:40.560> to<01:26:40.800> pass<01:26:41.119> the<01:26:41.440> id.<01:26:42.920> unique<01:26:43.920> and<01:26:44.119> we<01:26:44.199> need 01:26:44.350 --> 01:26:44.360 align:start position:0% need to pass the id. unique and we need 01:26:44.360 --> 01:26:47.270 align:start position:0% need to pass the id. unique and we need to<01:26:44.520> pass<01:26:44.760> the<01:26:44.960> actual<01:26:45.280> user<01:26:46.040> object<01:26:47.040> now 01:26:47.270 --> 01:26:47.280 align:start position:0% to pass the actual user object now 01:26:47.280 --> 01:26:48.350 align:start position:0% to pass the actual user object now you're<01:26:47.440> going<01:26:47.560> to<01:26:47.679> notice<01:26:47.960> it's<01:26:48.119> going<01:26:48.239> to 01:26:48.350 --> 01:26:48.360 align:start position:0% you're going to notice it's going to 01:26:48.360 --> 01:26:50.149 align:start position:0% you're going to notice it's going to start<01:26:48.639> complaining<01:26:49.239> about<01:26:49.480> the<01:26:49.679> app<01:26:49.960> right 01:26:50.149 --> 01:26:50.159 align:start position:0% start complaining about the app right 01:26:50.159 --> 01:26:52.189 align:start position:0% start complaining about the app right config<01:26:50.920> which<01:26:51.040> we<01:26:51.199> have<01:26:51.320> to<01:26:51.520> import<01:26:51.840> from 01:26:52.189 --> 01:26:52.199 align:start position:0% config which we have to import from 01:26:52.199 --> 01:26:53.990 align:start position:0% config which we have to import from config<01:26:52.960> that's<01:26:53.199> exactly<01:26:53.639> why<01:26:53.800> we're 01:26:53.990 --> 01:26:54.000 align:start position:0% config that's exactly why we're 01:26:54.000 --> 01:26:56.830 align:start position:0% config that's exactly why we're exporting<01:26:54.480> it<01:26:54.679> in<01:26:54.800> the<01:26:54.960> first<01:26:55.360> place<01:26:56.360> and<01:26:56.520> then 01:26:56.830 --> 01:26:56.840 align:start position:0% exporting it in the first place and then 01:26:56.840 --> 01:27:00.950 align:start position:0% exporting it in the first place and then we<01:26:57.000> simply<01:26:57.360> can<01:26:57.960> return<01:26:58.600> this<01:26:58.840> new<01:26:59.760> user<01:27:00.760> and 01:27:00.950 --> 01:27:00.960 align:start position:0% we simply can return this new user and 01:27:00.960 --> 01:27:03.790 align:start position:0% we simply can return this new user and now<01:27:01.520> not<01:27:01.800> only<01:27:02.320> are<01:27:02.520> we<01:27:02.719> creating<01:27:03.280> the<01:27:03.400> user<01:27:03.679> in 01:27:03.790 --> 01:27:03.800 align:start position:0% now not only are we creating the user in 01:27:03.800 --> 01:27:07.950 align:start position:0% now not only are we creating the user in the<01:27:03.920> authentication<01:27:04.600> part<01:27:05.239> which<01:27:05.400> is<01:27:06.000> right 01:27:07.950 --> 01:27:07.960 align:start position:0% the authentication part which is right 01:27:07.960 --> 01:27:11.390 align:start position:0% the authentication part which is right here<01:27:08.960> but<01:27:09.159> we're<01:27:09.480> also<01:27:09.800> creating<01:27:10.159> it<01:27:10.360> in<01:27:10.440> the 01:27:11.390 --> 01:27:11.400 align:start position:0% here but we're also creating it in the 01:27:11.400 --> 01:27:14.270 align:start position:0% here but we're also creating it in the database<01:27:12.400> so<01:27:12.800> let's<01:27:13.040> collapse<01:27:13.480> it<01:27:13.960> and<01:27:14.159> would 01:27:14.270 --> 01:27:14.280 align:start position:0% database so let's collapse it and would 01:27:14.280 --> 01:27:15.910 align:start position:0% database so let's collapse it and would you<01:27:14.400> look<01:27:14.520> at<01:27:14.719> that<01:27:15.119> with<01:27:15.280> two<01:27:15.520> simple 01:27:15.910 --> 01:27:15.920 align:start position:0% you look at that with two simple 01:27:15.920 --> 01:27:18.189 align:start position:0% you look at that with two simple functions<01:27:16.920> we<01:27:17.239> actually<01:27:17.560> have<01:27:17.719> a<01:27:17.840> connection 01:27:18.189 --> 01:27:18.199 align:start position:0% functions we actually have a connection 01:27:18.199 --> 01:27:21.270 align:start position:0% functions we actually have a connection to<01:27:18.360> the<01:27:18.800> database<01:27:19.800> so<01:27:20.159> what's<01:27:20.560> remaining<01:27:21.159> is 01:27:21.270 --> 01:27:21.280 align:start position:0% to the database so what's remaining is 01:27:21.280 --> 01:27:24.350 align:start position:0% to the database so what's remaining is to<01:27:21.560> actually<01:27:21.840> try<01:27:22.520> to<01:27:22.719> create<01:27:23.000> our<01:27:23.199> user<01:27:24.040> so 01:27:24.350 --> 01:27:24.360 align:start position:0% to actually try to create our user so 01:27:24.360 --> 01:27:26.350 align:start position:0% to actually try to create our user so let's<01:27:24.600> go<01:27:24.800> back<01:27:24.920> to<01:27:25.080> our<01:27:25.239> signup<01:27:25.440> up<01:27:25.600> form 01:27:26.350 --> 01:27:26.360 align:start position:0% let's go back to our signup up form 01:27:26.360 --> 01:27:28.510 align:start position:0% let's go back to our signup up form we're<01:27:26.600> calling<01:27:26.960> the<01:27:27.119> create<01:27:27.400> user<01:27:27.760> account 01:27:28.510 --> 01:27:28.520 align:start position:0% we're calling the create user account 01:27:28.520 --> 01:27:30.270 align:start position:0% we're calling the create user account and<01:27:28.679> let's<01:27:28.880> figure<01:27:29.159> out<01:27:29.520> what<01:27:29.679> we<01:27:29.800> want<01:27:29.960> to 01:27:30.270 --> 01:27:30.280 align:start position:0% and let's figure out what we want to 01:27:30.280 --> 01:27:32.830 align:start position:0% and let's figure out what we want to happen<01:27:31.000> after<01:27:31.280> the<01:27:31.440> account<01:27:31.760> gets<01:27:32.000> created<01:27:32.719> we 01:27:32.830 --> 01:27:32.840 align:start position:0% happen after the account gets created we 01:27:32.840 --> 01:27:34.709 align:start position:0% happen after the account gets created we surely<01:27:33.239> don't<01:27:33.480> simply<01:27:33.719> want<01:27:33.880> to<01:27:34.040> consel<01:27:34.520> lock 01:27:34.709 --> 01:27:34.719 align:start position:0% surely don't simply want to consel lock 01:27:34.719 --> 01:27:37.390 align:start position:0% surely don't simply want to consel lock the<01:27:34.840> newly<01:27:35.159> created<01:27:35.560> user<01:27:36.560> after<01:27:36.840> the<01:27:36.960> user<01:27:37.239> is 01:27:37.390 --> 01:27:37.400 align:start position:0% the newly created user after the user is 01:27:37.400 --> 01:27:41.550 align:start position:0% the newly created user after the user is created<01:27:38.159> we<01:27:38.280> want<01:27:38.440> to<01:27:38.679> check<01:27:39.520> if<01:27:40.239> there<01:27:40.520> is<01:27:40.960> no 01:27:41.550 --> 01:27:41.560 align:start position:0% created we want to check if there is no 01:27:41.560 --> 01:27:44.510 align:start position:0% created we want to check if there is no new<01:27:41.840> user<01:27:42.480> means<01:27:42.920> something<01:27:43.239> went<01:27:43.520> wrong<01:27:44.320> in 01:27:44.510 --> 01:27:44.520 align:start position:0% new user means something went wrong in 01:27:44.520 --> 01:27:47.669 align:start position:0% new user means something went wrong in that<01:27:44.760> case<01:27:45.239> we<01:27:45.400> can<01:27:45.600> simply<01:27:46.520> return<01:27:47.080> meaning 01:27:47.669 --> 01:27:47.679 align:start position:0% that case we can simply return meaning 01:27:47.679 --> 01:27:50.510 align:start position:0% that case we can simply return meaning exit<01:27:48.159> out<01:27:48.320> of<01:27:48.440> the<01:27:48.760> function<01:27:49.760> but<01:27:50.080> we<01:27:50.280> also 01:27:50.510 --> 01:27:50.520 align:start position:0% exit out of the function but we also 01:27:50.520 --> 01:27:51.830 align:start position:0% exit out of the function but we also want<01:27:50.639> to<01:27:50.840> play<01:27:51.119> with<01:27:51.280> some<01:27:51.480> additional 01:27:51.830 --> 01:27:51.840 align:start position:0% want to play with some additional 01:27:51.840 --> 01:27:53.629 align:start position:0% want to play with some additional function<01:27:52.080> functionality<01:27:53.040> which<01:27:53.159> is<01:27:53.320> going<01:27:53.480> to 01:27:53.629 --> 01:27:53.639 align:start position:0% function functionality which is going to 01:27:53.639 --> 01:27:56.830 align:start position:0% function functionality which is going to be<01:27:53.880> a<01:27:54.119> small<01:27:54.639> toast<01:27:55.280> that<01:27:55.440> appears<01:27:56.360> or<01:27:56.679> at 01:27:56.830 --> 01:27:56.840 align:start position:0% be a small toast that appears or at 01:27:56.840 --> 01:27:59.470 align:start position:0% be a small toast that appears or at least<01:27:57.080> we<01:27:57.199> call<01:27:57.400> it<01:27:57.600> that<01:27:57.800> way<01:27:58.639> a<01:27:58.840> toast<01:27:59.360> that 01:27:59.470 --> 01:27:59.480 align:start position:0% least we call it that way a toast that 01:27:59.480 --> 01:28:02.149 align:start position:0% least we call it that way a toast that we<01:27:59.560> can<01:27:59.719> check<01:28:00.199> by<01:28:00.400> going<01:28:00.600> to<01:28:00.800> our<01:28:01.040> Shaden 01:28:02.149 --> 01:28:02.159 align:start position:0% we can check by going to our Shaden 01:28:02.159 --> 01:28:04.310 align:start position:0% we can check by going to our Shaden documentation<01:28:03.159> and<01:28:03.320> then<01:28:03.520> checking<01:28:03.960> the 01:28:04.310 --> 01:28:04.320 align:start position:0% documentation and then checking the 01:28:04.320 --> 01:28:07.550 align:start position:0% documentation and then checking the toast<01:28:05.400> functionality<01:28:06.400> a<01:28:06.600> toast<01:28:06.960> is<01:28:07.080> a<01:28:07.239> little 01:28:07.550 --> 01:28:07.560 align:start position:0% toast functionality a toast is a little 01:28:07.560 --> 01:28:09.990 align:start position:0% toast functionality a toast is a little popup<01:28:08.119> that<01:28:08.239> you<01:28:08.440> click<01:28:09.080> and<01:28:09.280> then<01:28:09.480> it<01:28:09.639> jumps 01:28:09.990 --> 01:28:10.000 align:start position:0% popup that you click and then it jumps 01:28:10.000 --> 01:28:12.950 align:start position:0% popup that you click and then it jumps out<01:28:10.560> it<01:28:10.679> can<01:28:10.840> be<01:28:11.080> dark<01:28:11.480> like<01:28:11.639> it<01:28:11.760> is<01:28:12.040> here<01:28:12.760> but 01:28:12.950 --> 01:28:12.960 align:start position:0% out it can be dark like it is here but 01:28:12.960 --> 01:28:14.790 align:start position:0% out it can be dark like it is here but you<01:28:13.080> can<01:28:13.239> also<01:28:13.480> have<01:28:13.679> different<01:28:14.040> examples 01:28:14.790 --> 01:28:14.800 align:start position:0% you can also have different examples 01:28:14.800 --> 01:28:17.270 align:start position:0% you can also have different examples where<01:28:15.119> it<01:28:15.280> can<01:28:15.440> be<01:28:15.880> light<01:28:16.480> meaning<01:28:16.920> something 01:28:17.270 --> 01:28:17.280 align:start position:0% where it can be light meaning something 01:28:17.280 --> 01:28:19.830 align:start position:0% where it can be light meaning something was<01:28:17.560> good<01:28:18.040> or<01:28:18.480> a<01:28:18.679> red<01:28:18.880> one<01:28:19.199> meaning<01:28:19.560> something 01:28:19.830 --> 01:28:19.840 align:start position:0% was good or a red one meaning something 01:28:19.840 --> 01:28:22.350 align:start position:0% was good or a red one meaning something was<01:28:20.159> really<01:28:20.480> really<01:28:20.760> bad<01:28:21.520> so<01:28:21.840> let's<01:28:22.159> go<01:28:22.199> ahead 01:28:22.350 --> 01:28:22.360 align:start position:0% was really really bad so let's go ahead 01:28:22.360 --> 01:28:23.830 align:start position:0% was really really bad so let's go ahead and<01:28:22.480> implement<01:28:23.000> this<01:28:23.280> which<01:28:23.400> is<01:28:23.560> just<01:28:23.719> going 01:28:23.830 --> 01:28:23.840 align:start position:0% and implement this which is just going 01:28:23.840 --> 01:28:26.669 align:start position:0% and implement this which is just going to<01:28:24.119> provide<01:28:24.800> much<01:28:25.000> more<01:28:25.400> intuitive<01:28:26.000> workflow 01:28:26.669 --> 01:28:26.679 align:start position:0% to provide much more intuitive workflow 01:28:26.679 --> 01:28:28.790 align:start position:0% to provide much more intuitive workflow so<01:28:26.920> we<01:28:27.080> immediately<01:28:27.600> know<01:28:28.159> whether<01:28:28.400> the<01:28:28.480> user 01:28:28.790 --> 01:28:28.800 align:start position:0% so we immediately know whether the user 01:28:28.800 --> 01:28:32.109 align:start position:0% so we immediately know whether the user was<01:28:29.000> created<01:28:29.760> or<01:28:30.280> not<01:28:31.280> now<01:28:31.480> I'm<01:28:31.600> going<01:28:31.719> to<01:28:31.880> show 01:28:32.109 --> 01:28:32.119 align:start position:0% was created or not now I'm going to show 01:28:32.119 --> 01:28:34.790 align:start position:0% was created or not now I'm going to show you<01:28:32.520> how<01:28:32.679> to<01:28:32.960> add<01:28:33.320> this<01:28:33.560> second<01:28:34.080> shaten 01:28:34.790 --> 01:28:34.800 align:start position:0% you how to add this second shaten 01:28:34.800 --> 01:28:36.910 align:start position:0% you how to add this second shaten component<01:28:35.400> to<01:28:35.520> our<01:28:35.679> workflow<01:28:36.520> we<01:28:36.679> just<01:28:36.800> have 01:28:36.910 --> 01:28:36.920 align:start position:0% component to our workflow we just have 01:28:36.920 --> 01:28:38.030 align:start position:0% component to our workflow we just have to<01:28:37.000> follow<01:28:37.320> the 01:28:38.030 --> 01:28:38.040 align:start position:0% to follow the 01:28:38.040 --> 01:28:39.910 align:start position:0% to follow the documentation<01:28:39.040> first<01:28:39.400> you<01:28:39.560> run<01:28:39.800> the 01:28:39.910 --> 01:28:39.920 align:start position:0% documentation first you run the 01:28:39.920 --> 01:28:43.830 align:start position:0% documentation first you run the following<01:28:40.320> command<01:28:41.159> MPX<01:28:41.840> Shad<01:28:42.239> CN<01:28:42.480> UI<01:28:43.119> latest 01:28:43.830 --> 01:28:43.840 align:start position:0% following command MPX Shad CN UI latest 01:28:43.840 --> 01:28:47.229 align:start position:0% following command MPX Shad CN UI latest add<01:28:44.719> toast<01:28:45.719> we<01:28:45.840> can<01:28:46.040> do<01:28:46.239> that<01:28:46.560> by<01:28:46.719> opening<01:28:47.080> the 01:28:47.229 --> 01:28:47.239 align:start position:0% add toast we can do that by opening the 01:28:47.239 --> 01:28:49.830 align:start position:0% add toast we can do that by opening the second<01:28:47.520> terminal<01:28:48.000> we<01:28:48.159> have<01:28:48.400> here<01:28:49.199> and<01:28:49.480> simply 01:28:49.830 --> 01:28:49.840 align:start position:0% second terminal we have here and simply 01:28:49.840 --> 01:28:53.229 align:start position:0% second terminal we have here and simply pasting<01:28:50.239> it<01:28:50.840> once<01:28:51.119> again<01:28:51.560> that's<01:28:52.000> MPX<01:28:52.719> shaty 01:28:53.229 --> 01:28:53.239 align:start position:0% pasting it once again that's MPX shaty 01:28:53.239 --> 01:28:57.470 align:start position:0% pasting it once again that's MPX shaty and<01:28:53.400> UI<01:28:54.040> add<01:28:54.320> latest<01:28:55.199> add<01:28:55.719> toast<01:28:56.679> this<01:28:57.119> is<01:28:57.280> now 01:28:57.470 --> 01:28:57.480 align:start position:0% and UI add latest add toast this is now 01:28:57.480 --> 01:29:00.310 align:start position:0% and UI add latest add toast this is now going<01:28:57.679> to<01:28:57.960> add<01:28:58.159> it<01:28:58.560> within<01:28:58.800> our<01:28:59.320> components 01:29:00.310 --> 01:29:00.320 align:start position:0% going to add it within our components 01:29:00.320 --> 01:29:02.629 align:start position:0% going to add it within our components and<01:29:00.480> then<01:29:00.719> UI<01:29:01.719> and<01:29:01.840> you<01:29:01.920> can<01:29:02.040> see<01:29:02.320> that<01:29:02.480> the 01:29:02.629 --> 01:29:02.639 align:start position:0% and then UI and you can see that the 01:29:02.639 --> 01:29:04.629 align:start position:0% and then UI and you can see that the toast<01:29:03.080> and<01:29:03.239> the<01:29:03.400> toaster<01:29:04.080> as<01:29:04.239> well<01:29:04.360> as<01:29:04.480> the 01:29:04.629 --> 01:29:04.639 align:start position:0% toast and the toaster as well as the 01:29:04.639 --> 01:29:07.070 align:start position:0% toast and the toaster as well as the used<01:29:04.960> toast<01:29:05.320> functionality<01:29:06.159> were<01:29:06.480> added 01:29:07.070 --> 01:29:07.080 align:start position:0% used toast functionality were added 01:29:07.080 --> 01:29:09.070 align:start position:0% used toast functionality were added automatically<01:29:08.080> don't<01:29:08.280> worry<01:29:08.639> you<01:29:08.760> don't<01:29:08.960> have 01:29:09.070 --> 01:29:09.080 align:start position:0% automatically don't worry you don't have 01:29:09.080 --> 01:29:11.149 align:start position:0% automatically don't worry you don't have to<01:29:09.239> modify<01:29:09.760> these<01:29:10.159> we<01:29:10.320> just<01:29:10.440> want<01:29:10.560> to<01:29:10.719> use<01:29:10.960> them 01:29:11.149 --> 01:29:11.159 align:start position:0% to modify these we just want to use them 01:29:11.159 --> 01:29:14.109 align:start position:0% to modify these we just want to use them within<01:29:11.400> our<01:29:11.600> code<01:29:12.600> so<01:29:12.840> how<01:29:12.960> do<01:29:13.119> we<01:29:13.239> use<01:29:13.520> them 01:29:14.109 --> 01:29:14.119 align:start position:0% within our code so how do we use them 01:29:14.119 --> 01:29:16.149 align:start position:0% within our code so how do we use them well<01:29:14.320> we<01:29:14.440> can<01:29:14.639> refer<01:29:15.000> to<01:29:15.199> the<01:29:15.360> documentation 01:29:16.149 --> 01:29:16.159 align:start position:0% well we can refer to the documentation 01:29:16.159 --> 01:29:19.229 align:start position:0% well we can refer to the documentation here<01:29:17.119> we<01:29:17.239> need<01:29:17.400> to<01:29:17.600> add<01:29:17.800> it<01:29:18.080> to<01:29:18.239> the<01:29:18.480> most<01:29:18.800> outer 01:29:19.229 --> 01:29:19.239 align:start position:0% here we need to add it to the most outer 01:29:19.239 --> 01:29:21.629 align:start position:0% here we need to add it to the most outer part<01:29:19.480> of<01:29:19.600> our<01:29:20.119> application<01:29:21.119> in<01:29:21.320> this<01:29:21.480> case 01:29:21.629 --> 01:29:21.639 align:start position:0% part of our application in this case 01:29:21.639 --> 01:29:24.350 align:start position:0% part of our application in this case it's<01:29:22.000> not<01:29:22.159> going<01:29:22.320> to<01:29:22.400> be<01:29:22.639> app<01:29:22.880> layout<01:29:23.239> TSX<01:29:24.159> it's 01:29:24.350 --> 01:29:24.360 align:start position:0% it's not going to be app layout TSX it's 01:29:24.360 --> 01:29:26.590 align:start position:0% it's not going to be app layout TSX it's going<01:29:24.520> to<01:29:24.639> be<01:29:24.880> our<01:29:25.280> app<01:29:25.960> so<01:29:26.119> let's<01:29:26.280> go<01:29:26.400> ahead 01:29:26.590 --> 01:29:26.600 align:start position:0% going to be our app so let's go ahead 01:29:26.600 --> 01:29:29.669 align:start position:0% going to be our app so let's go ahead and<01:29:26.800> copy<01:29:27.119> this<01:29:27.520> import<01:29:28.520> let's<01:29:28.840> go<01:29:29.239> right<01:29:29.440> here 01:29:29.669 --> 01:29:29.679 align:start position:0% and copy this import let's go right here 01:29:29.679 --> 01:29:32.669 align:start position:0% and copy this import let's go right here to<01:29:30.040> our<01:29:30.480> app<01:29:31.480> and<01:29:31.760> let's<01:29:32.000> import<01:29:32.320> it<01:29:32.560> right 01:29:32.669 --> 01:29:32.679 align:start position:0% to our app and let's import it right 01:29:32.679 --> 01:29:34.790 align:start position:0% to our app and let's import it right here<01:29:32.840> at<01:29:33.000> the<01:29:33.159> top<01:29:33.960> we<01:29:34.119> don't<01:29:34.360> need<01:29:34.639> this 01:29:34.790 --> 01:29:34.800 align:start position:0% here at the top we don't need this 01:29:34.800 --> 01:29:37.750 align:start position:0% here at the top we don't need this entire<01:29:35.199> part<01:29:35.800> we<01:29:35.960> simply<01:29:36.280> need<01:29:36.600> the<01:29:36.760> import<01:29:37.600> so 01:29:37.750 --> 01:29:37.760 align:start position:0% entire part we simply need the import so 01:29:37.760 --> 01:29:39.990 align:start position:0% entire part we simply need the import so we're<01:29:37.960> importing<01:29:38.320> it<01:29:38.520> from<01:29:38.760> toaster<01:29:39.280> UI 01:29:39.990 --> 01:29:40.000 align:start position:0% we're importing it from toaster UI 01:29:40.000 --> 01:29:42.149 align:start position:0% we're importing it from toaster UI components<01:29:41.000> and<01:29:41.119> then<01:29:41.239> we<01:29:41.360> want<01:29:41.440> to<01:29:41.600> put<01:29:41.719> it 01:29:42.149 --> 01:29:42.159 align:start position:0% components and then we want to put it 01:29:42.159 --> 01:29:44.550 align:start position:0% components and then we want to put it right<01:29:42.400> here<01:29:42.679> at<01:29:42.840> the<01:29:42.960> end<01:29:43.480> near<01:29:43.760> the<01:29:44.000> closing 01:29:44.550 --> 01:29:44.560 align:start position:0% right here at the end near the closing 01:29:44.560 --> 01:29:47.510 align:start position:0% right here at the end near the closing main<01:29:45.280> toaster<01:29:46.080> like<01:29:46.280> so<01:29:47.000> this<01:29:47.119> is<01:29:47.239> going<01:29:47.360> to 01:29:47.510 --> 01:29:47.520 align:start position:0% main toaster like so this is going to 01:29:47.520 --> 01:29:50.189 align:start position:0% main toaster like so this is going to allow<01:29:47.760> us<01:29:47.880> to<01:29:48.000> see<01:29:48.159> the<01:29:48.440> toaster<01:29:49.440> and<01:29:49.679> then<01:29:50.080> we 01:29:50.189 --> 01:29:50.199 align:start position:0% allow us to see the toaster and then we 01:29:50.199 --> 01:29:52.470 align:start position:0% allow us to see the toaster and then we have<01:29:50.320> to<01:29:50.520> use<01:29:50.760> the<01:29:50.920> used<01:29:51.280> toast<01:29:51.639> hook<01:29:52.159> whenever 01:29:52.470 --> 01:29:52.480 align:start position:0% have to use the used toast hook whenever 01:29:52.480 --> 01:29:55.030 align:start position:0% have to use the used toast hook whenever you<01:29:52.560> want<01:29:52.679> to<01:29:52.840> call<01:29:53.119> it<01:29:53.719> so<01:29:54.199> right<01:29:54.400> here<01:29:54.719> we<01:29:54.800> can 01:29:55.030 --> 01:29:55.040 align:start position:0% you want to call it so right here we can 01:29:55.040 --> 01:29:58.669 align:start position:0% you want to call it so right here we can import<01:29:55.560> this<01:29:56.480> go<01:29:56.760> back<01:29:56.920> to<01:29:57.080> the<01:29:57.199> signup<01:29:57.679> form 01:29:58.669 --> 01:29:58.679 align:start position:0% import this go back to the signup form 01:29:58.679 --> 01:30:01.830 align:start position:0% import this go back to the signup form we<01:29:58.800> can<01:29:59.080> import<01:29:59.480> it<01:29:59.960> right<01:30:00.199> here<01:30:00.400> at<01:30:00.560> the 01:30:01.830 --> 01:30:01.840 align:start position:0% we can import it right here at the 01:30:01.840 --> 01:30:04.470 align:start position:0% we can import it right here at the top<01:30:02.840> we<01:30:03.000> don't<01:30:03.239> need<01:30:03.400> the<01:30:03.520> form<01:30:03.840> description 01:30:04.470 --> 01:30:04.480 align:start position:0% top we don't need the form description 01:30:04.480 --> 01:30:06.830 align:start position:0% top we don't need the form description as<01:30:04.600> we're<01:30:04.760> not<01:30:04.960> using<01:30:05.280> it<01:30:05.920> and<01:30:06.080> then<01:30:06.480> where<01:30:06.679> do 01:30:06.830 --> 01:30:06.840 align:start position:0% as we're not using it and then where do 01:30:06.840 --> 01:30:08.910 align:start position:0% as we're not using it and then where do we<01:30:06.960> want<01:30:07.040> to<01:30:07.239> use<01:30:07.440> it<01:30:08.040> we<01:30:08.119> have<01:30:08.239> to<01:30:08.440> declare<01:30:08.800> it 01:30:08.910 --> 01:30:08.920 align:start position:0% we want to use it we have to declare it 01:30:08.920 --> 01:30:11.910 align:start position:0% we want to use it we have to declare it as<01:30:09.040> a<01:30:09.199> hook<01:30:09.719> right<01:30:09.920> here<01:30:10.119> at<01:30:10.239> the<01:30:10.480> top<01:30:11.480> cons 01:30:11.910 --> 01:30:11.920 align:start position:0% as a hook right here at the top cons 01:30:11.920 --> 01:30:14.390 align:start position:0% as a hook right here at the top cons toast<01:30:12.320> is<01:30:12.480> equal<01:30:12.719> to<01:30:12.840> use<01:30:13.159> toast<01:30:14.000> and<01:30:14.119> then<01:30:14.239> we 01:30:14.390 --> 01:30:14.400 align:start position:0% toast is equal to use toast and then we 01:30:14.400 --> 01:30:17.070 align:start position:0% toast is equal to use toast and then we call<01:30:14.719> it<01:30:15.119> whenever<01:30:15.440> we<01:30:15.520> want<01:30:15.679> it<01:30:15.880> to<01:30:16.040> appear<01:30:16.840> in 01:30:17.070 --> 01:30:17.080 align:start position:0% call it whenever we want it to appear in 01:30:17.080 --> 01:30:20.310 align:start position:0% call it whenever we want it to appear in this<01:30:17.280> case<01:30:18.040> right<01:30:18.280> here<01:30:18.679> after<01:30:19.000> the<01:30:19.360> return<01:30:20.159> so 01:30:20.310 --> 01:30:20.320 align:start position:0% this case right here after the return so 01:30:20.320 --> 01:30:23.310 align:start position:0% this case right here after the return so we<01:30:20.440> say<01:30:20.719> toast<01:30:21.320> schedule<01:30:22.199> description<01:30:23.199> this 01:30:23.310 --> 01:30:23.320 align:start position:0% we say toast schedule description this 01:30:23.320 --> 01:30:25.669 align:start position:0% we say toast schedule description this is<01:30:23.520> it<01:30:24.199> but<01:30:24.360> of<01:30:24.480> course<01:30:24.679> we<01:30:24.800> want<01:30:24.960> our<01:30:25.159> toes<01:30:25.520> to 01:30:25.669 --> 01:30:25.679 align:start position:0% is it but of course we want our toes to 01:30:25.679 --> 01:30:28.189 align:start position:0% is it but of course we want our toes to say<01:30:25.920> something<01:30:26.320> different<01:30:27.239> so<01:30:27.639> we<01:30:27.760> can<01:30:28.000> just 01:30:28.189 --> 01:30:28.199 align:start position:0% say something different so we can just 01:30:28.199 --> 01:30:30.510 align:start position:0% say something different so we can just give<01:30:28.320> it<01:30:28.440> a<01:30:28.679> title<01:30:29.199> no<01:30:29.400> need<01:30:29.560> for<01:30:29.719> a 01:30:30.510 --> 01:30:30.520 align:start position:0% give it a title no need for a 01:30:30.520 --> 01:30:32.189 align:start position:0% give it a title no need for a description<01:30:31.520> that's<01:30:31.719> going<01:30:31.840> to<01:30:32.000> look 01:30:32.189 --> 01:30:32.199 align:start position:0% description that's going to look 01:30:32.199 --> 01:30:38.189 align:start position:0% description that's going to look something<01:30:32.520> like<01:30:32.760> this<01:30:33.639> title<01:30:34.679> is<01:30:35.679> sign<01:30:36.960> up 01:30:38.189 --> 01:30:38.199 align:start position:0% something like this title is sign up 01:30:38.199 --> 01:30:43.270 align:start position:0% something like this title is sign up failed<01:30:39.199> please<01:30:40.040> try<01:30:41.040> again<01:30:42.040> as<01:30:42.320> simple<01:30:42.920> as<01:30:43.040> it 01:30:43.270 --> 01:30:43.280 align:start position:0% failed please try again as simple as it 01:30:43.280 --> 01:30:45.109 align:start position:0% failed please try again as simple as it gets<01:30:43.880> now<01:30:44.159> in<01:30:44.320> this<01:30:44.520> case<01:30:44.760> let's<01:30:44.960> be 01:30:45.109 --> 01:30:45.119 align:start position:0% gets now in this case let's be 01:30:45.119 --> 01:30:47.310 align:start position:0% gets now in this case let's be optimistic<01:30:45.920> we're<01:30:46.119> not<01:30:46.320> going<01:30:46.520> to<01:30:46.760> test<01:30:47.080> our 01:30:47.310 --> 01:30:47.320 align:start position:0% optimistic we're not going to test our 01:30:47.320 --> 01:30:49.910 align:start position:0% optimistic we're not going to test our application<01:30:48.000> or<01:30:48.199> our<01:30:48.440> function<01:30:48.920> failing<01:30:49.800> we 01:30:49.910 --> 01:30:49.920 align:start position:0% application or our function failing we 01:30:49.920 --> 01:30:51.510 align:start position:0% application or our function failing we want<01:30:50.040> to<01:30:50.199> test<01:30:50.400> the<01:30:50.560> toast<01:30:51.000> if<01:30:51.199> everything 01:30:51.510 --> 01:30:51.520 align:start position:0% want to test the toast if everything 01:30:51.520 --> 01:30:52.510 align:start position:0% want to test the toast if everything works 01:30:52.510 --> 01:30:52.520 align:start position:0% works 01:30:52.520 --> 01:30:55.350 align:start position:0% works so<01:30:53.040> what<01:30:53.159> do<01:30:53.320> we<01:30:53.440> want<01:30:53.560> to<01:30:53.760> do<01:30:54.440> we<01:30:54.560> want<01:30:54.719> to<01:30:55.000> sign 01:30:55.350 --> 01:30:55.360 align:start position:0% so what do we want to do we want to sign 01:30:55.360 --> 01:30:57.950 align:start position:0% so what do we want to do we want to sign our<01:30:55.560> user<01:30:56.199> into<01:30:56.480> a<01:30:56.679> session<01:30:57.360> that's<01:30:57.600> the<01:30:57.760> next 01:30:57.950 --> 01:30:57.960 align:start position:0% our user into a session that's the next 01:30:57.960 --> 01:31:01.390 align:start position:0% our user into a session that's the next step<01:30:58.520> so<01:30:58.679> we<01:30:58.760> can<01:30:58.920> say<01:30:59.199> con<01:30:59.719> session<01:31:00.719> is<01:31:01.080> equal 01:31:01.390 --> 01:31:01.400 align:start position:0% step so we can say con session is equal 01:31:01.400 --> 01:31:02.870 align:start position:0% step so we can say con session is equal to 01:31:02.870 --> 01:31:02.880 align:start position:0% to 01:31:02.880 --> 01:31:07.590 align:start position:0% to await<01:31:03.880> sign<01:31:04.719> in<01:31:05.679> account<01:31:06.679> okay<01:31:07.159> and<01:31:07.360> this<01:31:07.480> is 01:31:07.590 --> 01:31:07.600 align:start position:0% await sign in account okay and this is 01:31:07.600 --> 01:31:09.870 align:start position:0% await sign in account okay and this is another<01:31:08.000> function<01:31:08.360> that<01:31:08.480> we<01:31:08.600> have<01:31:08.719> to<01:31:08.920> call 01:31:09.870 --> 01:31:09.880 align:start position:0% another function that we have to call 01:31:09.880 --> 01:31:12.790 align:start position:0% another function that we have to call that<01:31:10.159> will<01:31:10.400> soon<01:31:10.880> Implement<01:31:11.880> for<01:31:12.159> now<01:31:12.560> let's 01:31:12.790 --> 01:31:12.800 align:start position:0% that will soon Implement for now let's 01:31:12.800 --> 01:31:15.229 align:start position:0% that will soon Implement for now let's comment<01:31:13.119> and<01:31:13.480> out<01:31:14.480> and<01:31:14.600> let<01:31:14.719> me<01:31:14.880> tell<01:31:15.040> you 01:31:15.229 --> 01:31:15.239 align:start position:0% comment and out and let me tell you 01:31:15.239 --> 01:31:17.870 align:start position:0% comment and out and let me tell you about<01:31:15.480> something<01:31:15.880> more<01:31:16.280> important<01:31:17.280> in<01:31:17.600> this 01:31:17.870 --> 01:31:17.880 align:start position:0% about something more important in this 01:31:17.880 --> 01:31:20.550 align:start position:0% about something more important in this course<01:31:18.480> you'll<01:31:18.800> also<01:31:19.119> learn<01:31:19.679> how<01:31:19.800> to<01:31:20.040> use 01:31:20.550 --> 01:31:20.560 align:start position:0% course you'll also learn how to use 01:31:20.560 --> 01:31:24.229 align:start position:0% course you'll also learn how to use react<01:31:21.199> query<01:31:22.159> recently<01:31:22.840> renamed<01:31:23.440> to<01:31:23.639> 10stack 01:31:24.229 --> 01:31:24.239 align:start position:0% react query recently renamed to 10stack 01:31:24.239 --> 01:31:26.750 align:start position:0% react query recently renamed to 10stack query<01:31:24.800> as<01:31:24.960> they<01:31:25.119> started<01:31:25.480> supporting<01:31:26.040> view 01:31:26.750 --> 01:31:26.760 align:start position:0% query as they started supporting view 01:31:26.760 --> 01:31:30.270 align:start position:0% query as they started supporting view spelt<01:31:27.560> solid<01:31:28.280> and<01:31:28.520> more<01:31:29.280> but<01:31:29.440> in<01:31:29.560> our<01:31:29.840> hearts 01:31:30.270 --> 01:31:30.280 align:start position:0% spelt solid and more but in our hearts 01:31:30.280 --> 01:31:32.870 align:start position:0% spelt solid and more but in our hearts it's<01:31:30.440> still<01:31:30.679> called<01:31:31.119> react<01:31:31.600> query<01:31:32.520> it's<01:31:32.719> going 01:31:32.870 --> 01:31:32.880 align:start position:0% it's still called react query it's going 01:31:32.880 --> 01:31:35.030 align:start position:0% it's still called react query it's going to<01:31:33.080> allow<01:31:33.360> us<01:31:33.520> to<01:31:33.679> do<01:31:33.920> a<01:31:34.119> lot<01:31:34.320> of<01:31:34.520> things<01:31:34.840> right 01:31:35.030 --> 01:31:35.040 align:start position:0% to allow us to do a lot of things right 01:31:35.040 --> 01:31:37.470 align:start position:0% to allow us to do a lot of things right out<01:31:35.199> of<01:31:35.280> the<01:31:35.480> box<01:31:36.199> it's<01:31:36.360> going<01:31:36.520> to<01:31:36.639> be<01:31:36.880> simple 01:31:37.470 --> 01:31:37.480 align:start position:0% out of the box it's going to be simple 01:31:37.480 --> 01:31:40.070 align:start position:0% out of the box it's going to be simple and<01:31:37.800> familiar<01:31:38.600> but<01:31:38.840> more<01:31:39.040> importantly<01:31:39.960> it 01:31:40.070 --> 01:31:40.080 align:start position:0% and familiar but more importantly it 01:31:40.080 --> 01:31:42.350 align:start position:0% and familiar but more importantly it will<01:31:40.320> allow<01:31:40.679> us<01:31:40.880> to<01:31:41.199> Cache<01:31:41.719> the<01:31:41.920> data<01:31:42.199> we're 01:31:42.350 --> 01:31:42.360 align:start position:0% will allow us to Cache the data we're 01:31:42.360 --> 01:31:44.910 align:start position:0% will allow us to Cache the data we're fetching<01:31:42.719> from<01:31:42.880> the<01:31:43.000> server<01:31:44.000> it<01:31:44.199> also<01:31:44.560> has 01:31:44.910 --> 01:31:44.920 align:start position:0% fetching from the server it also has 01:31:44.920 --> 01:31:47.390 align:start position:0% fetching from the server it also has Auto<01:31:45.360> ref<01:31:45.639> fetching<01:31:46.360> server<01:31:46.840> side<01:31:46.960> rendering 01:31:47.390 --> 01:31:47.400 align:start position:0% Auto ref fetching server side rendering 01:31:47.400 --> 01:31:50.669 align:start position:0% Auto ref fetching server side rendering support<01:31:48.159> pation<01:31:48.880> out<01:31:49.040> of<01:31:49.199> the<01:31:49.360> box<01:31:50.040> mutations 01:31:50.669 --> 01:31:50.679 align:start position:0% support pation out of the box mutations 01:31:50.679 --> 01:31:52.830 align:start position:0% support pation out of the box mutations meaning<01:31:51.040> changes<01:31:51.440> to<01:31:51.560> the<01:31:51.800> server<01:31:52.159> data 01:31:52.830 --> 01:31:52.840 align:start position:0% meaning changes to the server data 01:31:52.840 --> 01:31:54.629 align:start position:0% meaning changes to the server data infinite<01:31:53.360> scrolling<01:31:54.080> which<01:31:54.239> we're<01:31:54.360> going<01:31:54.440> to 01:31:54.629 --> 01:31:54.639 align:start position:0% infinite scrolling which we're going to 01:31:54.639 --> 01:31:57.629 align:start position:0% infinite scrolling which we're going to use<01:31:55.000> and<01:31:55.239> Implement<01:31:55.800> in<01:31:56.080> this<01:31:56.480> video<01:31:57.480> and 01:31:57.629 --> 01:31:57.639 align:start position:0% use and Implement in this video and 01:31:57.639 --> 01:31:59.350 align:start position:0% use and Implement in this video and there<01:31:57.719> are<01:31:57.920> so<01:31:58.119> many<01:31:58.360> more<01:31:58.639> reasons<01:31:58.960> to<01:31:59.119> use 01:31:59.350 --> 01:31:59.360 align:start position:0% there are so many more reasons to use 01:31:59.360 --> 01:32:02.270 align:start position:0% there are so many more reasons to use react<01:31:59.800> query<01:32:00.199> in<01:32:00.360> your<01:32:00.520> react<01:32:01.280> applications 01:32:02.270 --> 01:32:02.280 align:start position:0% react query in your react applications 01:32:02.280 --> 01:32:04.390 align:start position:0% react query in your react applications and<01:32:02.480> in<01:32:02.719> this<01:32:02.920> video<01:32:03.480> I'll<01:32:03.679> teach<01:32:03.920> you<01:32:04.119> how<01:32:04.239> to 01:32:04.390 --> 01:32:04.400 align:start position:0% and in this video I'll teach you how to 01:32:04.400 --> 01:32:07.109 align:start position:0% and in this video I'll teach you how to use<01:32:04.639> it<01:32:05.040> from<01:32:05.320> scratch<01:32:06.320> so<01:32:06.639> what<01:32:06.760> do<01:32:06.880> we<01:32:06.960> need 01:32:07.109 --> 01:32:07.119 align:start position:0% use it from scratch so what do we need 01:32:07.119 --> 01:32:09.629 align:start position:0% use it from scratch so what do we need to<01:32:07.280> do<01:32:07.719> to<01:32:07.880> get<01:32:08.040> started<01:32:08.480> with<01:32:08.679> react<01:32:09.119> query 01:32:09.629 --> 01:32:09.639 align:start position:0% to do to get started with react query 01:32:09.639 --> 01:32:13.189 align:start position:0% to do to get started with react query and<01:32:09.840> using<01:32:10.159> it<01:32:10.440> alongside<01:32:11.520> aite<01:32:12.520> well<01:32:12.880> we<01:32:13.000> can 01:32:13.189 --> 01:32:13.199 align:start position:0% and using it alongside aite well we can 01:32:13.199 --> 01:32:16.830 align:start position:0% and using it alongside aite well we can go<01:32:13.560> right<01:32:13.840> here<01:32:14.400> to<01:32:14.960> our<01:32:15.440> lib<01:32:16.280> and<01:32:16.400> then<01:32:16.600> next 01:32:16.830 --> 01:32:16.840 align:start position:0% go right here to our lib and then next 01:32:16.840 --> 01:32:19.629 align:start position:0% go right here to our lib and then next to<01:32:17.040> aight<01:32:17.760> we<01:32:17.840> can<01:32:18.080> also<01:32:18.400> add<01:32:18.639> a<01:32:18.800> new<01:32:19.000> folder 01:32:19.629 --> 01:32:19.639 align:start position:0% to aight we can also add a new folder 01:32:19.639 --> 01:32:22.629 align:start position:0% to aight we can also add a new folder called<01:32:20.000> react<01:32:20.920> D<01:32:21.320> query 01:32:22.629 --> 01:32:22.639 align:start position:0% called react D query 01:32:22.639 --> 01:32:25.430 align:start position:0% called react D query within<01:32:23.080> here<01:32:23.639> we<01:32:23.760> can<01:32:23.960> create<01:32:24.360> a<01:32:24.560> new<01:32:24.880> file 01:32:25.430 --> 01:32:25.440 align:start position:0% within here we can create a new file 01:32:25.440 --> 01:32:28.270 align:start position:0% within here we can create a new file called<01:32:26.080> queries<01:32:27.080> and 01:32:28.270 --> 01:32:28.280 align:start position:0% called queries and 01:32:28.280 --> 01:32:31.790 align:start position:0% called queries and mutations.<01:32:29.600> TS<01:32:30.600> within<01:32:31.000> here<01:32:31.320> we're<01:32:31.480> going<01:32:31.600> to 01:32:31.790 --> 01:32:31.800 align:start position:0% mutations. TS within here we're going to 01:32:31.800 --> 01:32:33.790 align:start position:0% mutations. TS within here we're going to import<01:32:32.239> a<01:32:32.440> couple<01:32:32.679> of<01:32:32.840> things<01:32:33.080> we'll<01:32:33.360> use<01:32:33.600> from 01:32:33.790 --> 01:32:33.800 align:start position:0% import a couple of things we'll use from 01:32:33.800 --> 01:32:36.669 align:start position:0% import a couple of things we'll use from react<01:32:34.239> query<01:32:35.239> but<01:32:35.400> of<01:32:35.560> course<01:32:35.920> first<01:32:36.440> we<01:32:36.560> have 01:32:36.669 --> 01:32:36.679 align:start position:0% react query but of course first we have 01:32:36.679 --> 01:32:39.910 align:start position:0% react query but of course first we have to<01:32:36.880> install<01:32:37.239> it<01:32:37.679> so<01:32:37.840> that's<01:32:38.000> going<01:32:38.159> to<01:32:38.320> be<01:32:38.560> at 01:32:39.910 --> 01:32:39.920 align:start position:0% to install it so that's going to be at 01:32:39.920 --> 01:32:45.669 align:start position:0% to install it so that's going to be at 10stack<01:32:40.920> SL<01:32:41.360> react<01:32:42.760> dqu<01:32:43.760> so<01:32:43.960> let's<01:32:44.239> copy<01:32:44.679> this 01:32:45.669 --> 01:32:45.679 align:start position:0% 10stack SL react dqu so let's copy this 01:32:45.679 --> 01:32:49.070 align:start position:0% 10stack SL react dqu so let's copy this open<01:32:45.920> up<01:32:46.080> our<01:32:46.239> terminal<01:32:47.119> and<01:32:47.280> say<01:32:47.560> mpm<01:32:48.080> install 01:32:49.070 --> 01:32:49.080 align:start position:0% open up our terminal and say mpm install 01:32:49.080 --> 01:32:54.070 align:start position:0% open up our terminal and say mpm install at<01:32:49.600> tanack<01:32:50.600> SL<01:32:51.040> react<01:32:51.639> query<01:32:52.480> press<01:32:52.920> enter<01:32:53.920> and 01:32:54.070 --> 01:32:54.080 align:start position:0% at tanack SL react query press enter and 01:32:54.080 --> 01:32:56.229 align:start position:0% at tanack SL react query press enter and soon<01:32:54.400> enough<01:32:54.719> it<01:32:54.840> will<01:32:55.000> be<01:32:55.280> installed<01:32:55.920> it's<01:32:56.080> a 01:32:56.229 --> 01:32:56.239 align:start position:0% soon enough it will be installed it's a 01:32:56.239 --> 01:32:58.830 align:start position:0% soon enough it will be installed it's a pretty<01:32:56.520> lightweight<01:32:57.440> Library<01:32:58.440> once<01:32:58.639> it's 01:32:58.830 --> 01:32:58.840 align:start position:0% pretty lightweight Library once it's 01:32:58.840 --> 01:33:01.149 align:start position:0% pretty lightweight Library once it's installed<01:32:59.440> we're<01:32:59.639> going<01:32:59.760> to<01:32:59.920> import<01:33:00.520> use 01:33:01.149 --> 01:33:01.159 align:start position:0% installed we're going to import use 01:33:01.159 --> 01:33:03.750 align:start position:0% installed we're going to import use Query<01:33:02.159> and<01:33:02.400> queries<01:33:02.840> are<01:33:03.000> for<01:33:03.199> fetching<01:33:03.600> the 01:33:03.750 --> 01:33:03.760 align:start position:0% Query and queries are for fetching the 01:33:03.760 --> 01:33:06.910 align:start position:0% Query and queries are for fetching the data<01:33:04.719> use<01:33:05.199> mutation<01:33:06.040> mutations<01:33:06.480> are<01:33:06.719> for 01:33:06.910 --> 01:33:06.920 align:start position:0% data use mutation mutations are for 01:33:06.920 --> 01:33:10.149 align:start position:0% data use mutation mutations are for modifying<01:33:07.440> the<01:33:07.679> data<01:33:08.600> use<01:33:09.040> Query 01:33:10.149 --> 01:33:10.159 align:start position:0% modifying the data use Query 01:33:10.159 --> 01:33:13.510 align:start position:0% modifying the data use Query client<01:33:11.159> as<01:33:11.280> well<01:33:11.440> as<01:33:11.679> use<01:33:12.119> infinite 01:33:13.510 --> 01:33:13.520 align:start position:0% client as well as use infinite 01:33:13.520 --> 01:33:16.070 align:start position:0% client as well as use infinite query<01:33:14.520> these<01:33:14.639> are<01:33:14.880> all<01:33:15.080> the<01:33:15.199> things<01:33:15.440> we'll<01:33:15.719> use 01:33:16.070 --> 01:33:16.080 align:start position:0% query these are all the things we'll use 01:33:16.080 --> 01:33:18.270 align:start position:0% query these are all the things we'll use from<01:33:16.520> react 01:33:18.270 --> 01:33:18.280 align:start position:0% from react 01:33:18.280 --> 01:33:20.470 align:start position:0% from react query<01:33:19.280> and<01:33:19.440> once<01:33:19.679> again<01:33:19.920> the<01:33:20.080> reason<01:33:20.360> why 01:33:20.470 --> 01:33:20.480 align:start position:0% query and once again the reason why 01:33:20.480 --> 01:33:22.590 align:start position:0% query and once again the reason why we're<01:33:20.679> using<01:33:21.000> it<01:33:21.360> is<01:33:21.679> to<01:33:21.840> simplify<01:33:22.320> data 01:33:22.590 --> 01:33:22.600 align:start position:0% we're using it is to simplify data 01:33:22.600 --> 01:33:25.910 align:start position:0% we're using it is to simplify data fetching<01:33:23.280> and<01:33:23.800> mutation<01:33:24.800> while<01:33:25.280> getting<01:33:25.639> all 01:33:25.910 --> 01:33:25.920 align:start position:0% fetching and mutation while getting all 01:33:25.920 --> 01:33:28.470 align:start position:0% fetching and mutation while getting all the<01:33:26.119> benefits<01:33:26.800> such<01:33:26.960> as<01:33:27.239> caching<01:33:28.040> infinite 01:33:28.470 --> 01:33:28.480 align:start position:0% the benefits such as caching infinite 01:33:28.480 --> 01:33:31.790 align:start position:0% the benefits such as caching infinite scroll<01:33:29.119> and<01:33:29.280> more<01:33:29.840> out<01:33:30.000> of<01:33:30.119> the<01:33:30.400> box<01:33:31.400> now<01:33:31.679> what 01:33:31.790 --> 01:33:31.800 align:start position:0% scroll and more out of the box now what 01:33:31.800 --> 01:33:33.590 align:start position:0% scroll and more out of the box now what you<01:33:31.880> want<01:33:32.000> to<01:33:32.159> do<01:33:32.440> here<01:33:32.920> is<01:33:33.080> you<01:33:33.199> want<01:33:33.320> to 01:33:33.590 --> 01:33:33.600 align:start position:0% you want to do here is you want to 01:33:33.600 --> 01:33:36.430 align:start position:0% you want to do here is you want to export<01:33:34.119> our<01:33:34.440> first<01:33:34.880> mutation<01:33:35.719> so<01:33:35.880> we<01:33:36.000> can<01:33:36.119> say 01:33:36.430 --> 01:33:36.440 align:start position:0% export our first mutation so we can say 01:33:36.440 --> 01:33:41.669 align:start position:0% export our first mutation so we can say export<01:33:37.040> const<01:33:38.040> use<01:33:38.840> create<01:33:39.679> user<01:33:40.480> account 01:33:41.669 --> 01:33:41.679 align:start position:0% export const use create user account 01:33:41.679 --> 01:33:44.550 align:start position:0% export const use create user account mutation<01:33:42.679> it's<01:33:42.800> a<01:33:42.960> long<01:33:43.280> name<01:33:43.760> I<01:33:43.880> know<01:33:44.280> but<01:33:44.400> we 01:33:44.550 --> 01:33:44.560 align:start position:0% mutation it's a long name I know but we 01:33:44.560 --> 01:33:47.390 align:start position:0% mutation it's a long name I know but we try<01:33:44.800> to<01:33:45.000> make<01:33:45.280> them<01:33:45.719> as<01:33:45.960> meaningful<01:33:46.920> as 01:33:47.390 --> 01:33:47.400 align:start position:0% try to make them as meaningful as 01:33:47.400 --> 01:33:50.270 align:start position:0% try to make them as meaningful as possible<01:33:48.400> it's<01:33:48.560> an<01:33:48.719> arrow<01:33:49.119> function<01:33:49.880> that 01:33:50.270 --> 01:33:50.280 align:start position:0% possible it's an arrow function that 01:33:50.280 --> 01:33:53.149 align:start position:0% possible it's an arrow function that returns<01:33:50.880> a<01:33:51.080> call<01:33:51.639> to<01:33:51.920> use 01:33:53.149 --> 01:33:53.159 align:start position:0% returns a call to use 01:33:53.159 --> 01:33:56.430 align:start position:0% returns a call to use mutation<01:33:54.159> that<01:33:54.360> then<01:33:54.600> gets<01:33:54.760> an<01:33:55.040> object<01:33:55.440> in<01:33:56.280> and 01:33:56.430 --> 01:33:56.440 align:start position:0% mutation that then gets an object in and 01:33:56.440 --> 01:33:58.030 align:start position:0% mutation that then gets an object in and then<01:33:56.560> we<01:33:56.639> want<01:33:56.760> to<01:33:57.000> pass<01:33:57.320> the<01:33:57.440> mutation 01:33:58.030 --> 01:33:58.040 align:start position:0% then we want to pass the mutation 01:33:58.040 --> 01:34:01.109 align:start position:0% then we want to pass the mutation function<01:33:58.639> so<01:33:58.920> what<01:33:59.040> are<01:33:59.199> we<01:33:59.520> actually<01:34:00.119> doing 01:34:01.109 --> 01:34:01.119 align:start position:0% function so what are we actually doing 01:34:01.119 --> 01:34:03.070 align:start position:0% function so what are we actually doing and<01:34:01.280> in<01:34:01.480> this<01:34:01.719> case<01:34:02.199> it's<01:34:02.400> going<01:34:02.520> to<01:34:02.679> be<01:34:02.880> an 01:34:03.070 --> 01:34:03.080 align:start position:0% and in this case it's going to be an 01:34:03.080 --> 01:34:05.510 align:start position:0% and in this case it's going to be an arrow<01:34:03.480> function<01:34:04.280> that's<01:34:04.480> going<01:34:04.600> to<01:34:04.960> return<01:34:05.280> a 01:34:05.510 --> 01:34:05.520 align:start position:0% arrow function that's going to return a 01:34:05.520 --> 01:34:09.830 align:start position:0% arrow function that's going to return a call<01:34:06.040> to<01:34:06.239> our<01:34:06.560> create<01:34:07.320> user<01:34:08.000> account<01:34:08.840> function 01:34:09.830 --> 01:34:09.840 align:start position:0% call to our create user account function 01:34:09.840 --> 01:34:12.030 align:start position:0% call to our create user account function that<01:34:10.000> we<01:34:10.119> have<01:34:10.320> created<01:34:10.719> not<01:34:11.000> that<01:34:11.239> long<01:34:11.440> ago 01:34:12.030 --> 01:34:12.040 align:start position:0% that we have created not that long ago 01:34:12.040 --> 01:34:13.390 align:start position:0% that we have created not that long ago within 01:34:13.390 --> 01:34:13.400 align:start position:0% within 01:34:13.400 --> 01:34:15.709 align:start position:0% within upright<01:34:14.400> SL 01:34:15.709 --> 01:34:15.719 align:start position:0% upright SL 01:34:15.719 --> 01:34:18.669 align:start position:0% upright SL API<01:34:16.719> and<01:34:16.960> it's<01:34:17.119> going<01:34:17.280> to<01:34:17.440> get<01:34:17.600> the<01:34:17.760> user<01:34:18.480> right 01:34:18.669 --> 01:34:18.679 align:start position:0% API and it's going to get the user right 01:34:18.679 --> 01:34:21.669 align:start position:0% API and it's going to get the user right here<01:34:19.080> as<01:34:19.239> its<01:34:19.480> first<01:34:19.840> and<01:34:20.040> only<01:34:20.520> parameter<01:34:21.560> and 01:34:21.669 --> 01:34:21.679 align:start position:0% here as its first and only parameter and 01:34:21.679 --> 01:34:23.390 align:start position:0% here as its first and only parameter and that<01:34:21.840> user<01:34:22.119> is<01:34:22.280> coming<01:34:22.679> right<01:34:22.880> here<01:34:23.199> through 01:34:23.390 --> 01:34:23.400 align:start position:0% that user is coming right here through 01:34:23.400 --> 01:34:25.270 align:start position:0% that user is coming right here through the<01:34:23.560> function<01:34:24.239> which<01:34:24.360> is<01:34:24.480> going<01:34:24.639> to<01:34:24.760> be<01:34:24.920> of<01:34:25.040> a 01:34:25.270 --> 01:34:25.280 align:start position:0% the function which is going to be of a 01:34:25.280 --> 01:34:28.990 align:start position:0% the function which is going to be of a type<01:34:25.960> I<01:34:26.760> new<01:34:27.360> user<01:34:28.000> which<01:34:28.159> we<01:34:28.239> can<01:34:28.440> import<01:34:28.760> from 01:34:28.990 --> 01:34:29.000 align:start position:0% type I new user which we can import from 01:34:29.000 --> 01:34:32.030 align:start position:0% type I new user which we can import from types<01:34:29.840> so<01:34:30.080> essentially<01:34:30.600> what<01:34:30.760> we've<01:34:31.000> done<01:34:31.600> is 01:34:32.030 --> 01:34:32.040 align:start position:0% types so essentially what we've done is 01:34:32.040 --> 01:34:34.430 align:start position:0% types so essentially what we've done is we've<01:34:32.400> initialized<01:34:33.360> a<01:34:33.560> new<01:34:33.800> mutation 01:34:34.430 --> 01:34:34.440 align:start position:0% we've initialized a new mutation 01:34:34.440 --> 01:34:37.990 align:start position:0% we've initialized a new mutation function<01:34:35.119> so<01:34:35.360> that<01:34:35.600> now<01:34:36.520> react<01:34:36.960> query<01:34:37.719> also 01:34:37.990 --> 01:34:38.000 align:start position:0% function so that now react query also 01:34:38.000 --> 01:34:41.149 align:start position:0% function so that now react query also knows<01:34:38.360> what<01:34:38.520> we<01:34:38.600> are<01:34:39.000> doing<01:34:40.000> now<01:34:40.520> we<01:34:40.600> can<01:34:40.840> use 01:34:41.149 --> 01:34:41.159 align:start position:0% knows what we are doing now we can use 01:34:41.159 --> 01:34:43.629 align:start position:0% knows what we are doing now we can use this<01:34:41.480> use<01:34:41.840> create<01:34:42.119> user<01:34:42.440> account<01:34:42.760> mutation 01:34:43.629 --> 01:34:43.639 align:start position:0% this use create user account mutation 01:34:43.639 --> 01:34:46.149 align:start position:0% this use create user account mutation within<01:34:44.040> our<01:34:44.280> signup<01:34:44.800> form<01:34:45.800> and<01:34:45.920> you<01:34:46.040> might 01:34:46.149 --> 01:34:46.159 align:start position:0% within our signup form and you might 01:34:46.159 --> 01:34:47.950 align:start position:0% within our signup form and you might have<01:34:46.280> seen<01:34:46.560> this<01:34:46.800> right<01:34:47.000> here<01:34:47.239> I<01:34:47.320> was<01:34:47.520> testing 01:34:47.950 --> 01:34:47.960 align:start position:0% have seen this right here I was testing 01:34:47.960 --> 01:34:50.430 align:start position:0% have seen this right here I was testing that<01:34:48.199> but<01:34:48.360> let's<01:34:48.560> create<01:34:48.760> it<01:34:48.920> from<01:34:49.440> scratch 01:34:50.430 --> 01:34:50.440 align:start position:0% that but let's create it from scratch 01:34:50.440 --> 01:34:52.550 align:start position:0% that but let's create it from scratch right<01:34:50.639> here<01:34:50.920> at<01:34:51.040> the<01:34:51.239> top<01:34:51.719> we<01:34:51.800> can<01:34:51.920> do<01:34:52.080> it<01:34:52.239> even 01:34:52.550 --> 01:34:52.560 align:start position:0% right here at the top we can do it even 01:34:52.560 --> 01:34:56.430 align:start position:0% right here at the top we can do it even above<01:34:53.360> the<01:34:53.520> form<01:34:54.360> we<01:34:54.480> can<01:34:54.639> say<01:34:55.159> const<01:34:56.159> get 01:34:56.430 --> 01:34:56.440 align:start position:0% above the form we can say const get 01:34:56.440 --> 01:34:59.270 align:start position:0% above the form we can say const get something<01:34:56.960> an<01:34:57.199> object<01:34:57.560> out<01:34:57.679> of<01:34:57.880> it<01:34:58.400> and<01:34:58.639> call<01:34:59.040> a 01:34:59.270 --> 01:34:59.280 align:start position:0% something an object out of it and call a 01:34:59.280 --> 01:35:04.030 align:start position:0% something an object out of it and call a use<01:35:00.040> create<01:35:01.040> user<01:35:01.840> account<01:35:02.719> mutation<01:35:03.719> just 01:35:04.030 --> 01:35:04.040 align:start position:0% use create user account mutation just 01:35:04.040 --> 01:35:07.590 align:start position:0% use create user account mutation just like<01:35:04.280> so<01:35:05.080> as<01:35:05.199> a<01:35:05.800> hook<01:35:06.800> we<01:35:06.920> can<01:35:07.080> immediately 01:35:07.590 --> 01:35:07.600 align:start position:0% like so as a hook we can immediately 01:35:07.600 --> 01:35:09.229 align:start position:0% like so as a hook we can immediately import<01:35:07.920> it<01:35:08.119> from 01:35:09.229 --> 01:35:09.239 align:start position:0% import it from 01:35:09.239 --> 01:35:13.310 align:start position:0% import it from addlib<01:35:10.239> SL<01:35:10.760> react<01:35:11.199> query<01:35:12.000> forqueries<01:35:13.000> and 01:35:13.310 --> 01:35:13.320 align:start position:0% addlib SL react query forqueries and 01:35:13.320 --> 01:35:15.629 align:start position:0% addlib SL react query forqueries and mutations<01:35:14.320> there<01:35:14.440> we 01:35:15.629 --> 01:35:15.639 align:start position:0% mutations there we 01:35:15.639 --> 01:35:19.229 align:start position:0% mutations there we go<01:35:16.639> and<01:35:16.880> now<01:35:17.520> what<01:35:17.679> do<01:35:17.800> we<01:35:18.000> get<01:35:18.239> back<01:35:18.880> well<01:35:19.080> we 01:35:19.229 --> 01:35:19.239 align:start position:0% go and now what do we get back well we 01:35:19.239 --> 01:35:22.950 align:start position:0% go and now what do we get back well we get<01:35:19.520> back<01:35:20.159> mutate<01:35:21.159> a 01:35:22.950 --> 01:35:22.960 align:start position:0% get back mutate a 01:35:22.960 --> 01:35:26.750 align:start position:0% get back mutate a sync<01:35:23.960> as<01:35:24.080> well<01:35:24.280> as<01:35:24.520> is<01:35:25.040> loading<01:35:26.040> the<01:35:26.199> mutate 01:35:26.750 --> 01:35:26.760 align:start position:0% sync as well as is loading the mutate 01:35:26.760 --> 01:35:29.990 align:start position:0% sync as well as is loading the mutate async<01:35:27.760> if<01:35:27.880> I<01:35:28.000> can<01:35:28.159> spell<01:35:28.400> it<01:35:28.600> properly<01:35:29.600> is<01:35:29.800> the 01:35:29.990 --> 01:35:30.000 align:start position:0% async if I can spell it properly is the 01:35:30.000 --> 01:35:31.870 align:start position:0% async if I can spell it properly is the actual<01:35:30.400> function<01:35:30.920> that<01:35:31.040> we're<01:35:31.199> calling<01:35:31.679> right 01:35:31.870 --> 01:35:31.880 align:start position:0% actual function that we're calling right 01:35:31.880 --> 01:35:35.070 align:start position:0% actual function that we're calling right here<01:35:32.560> in<01:35:32.800> this<01:35:33.000> case<01:35:33.560> it<01:35:33.679> is<01:35:33.840> the<01:35:34.040> create<01:35:34.560> user 01:35:35.070 --> 01:35:35.080 align:start position:0% here in this case it is the create user 01:35:35.080 --> 01:35:37.629 align:start position:0% here in this case it is the create user account<01:35:35.800> function<01:35:36.600> that<01:35:36.719> we<01:35:36.880> have<01:35:37.040> created 01:35:37.629 --> 01:35:37.639 align:start position:0% account function that we have created 01:35:37.639 --> 01:35:40.229 align:start position:0% account function that we have created not<01:35:37.960> that<01:35:38.159> long<01:35:38.400> ago<01:35:39.159> that<01:35:39.480> creates<01:35:39.880> the<01:35:40.000> user 01:35:40.229 --> 01:35:40.239 align:start position:0% not that long ago that creates the user 01:35:40.239 --> 01:35:42.910 align:start position:0% not that long ago that creates the user in<01:35:40.360> the<01:35:40.719> authentication<01:35:41.719> and<01:35:41.960> also<01:35:42.320> saves<01:35:42.800> the 01:35:42.910 --> 01:35:42.920 align:start position:0% in the authentication and also saves the 01:35:42.920 --> 01:35:46.629 align:start position:0% in the authentication and also saves the user<01:35:43.400> in<01:35:43.520> the<01:35:44.119> database<01:35:45.119> so<01:35:45.960> now<01:35:46.400> we're 01:35:46.629 --> 01:35:46.639 align:start position:0% user in the database so now we're 01:35:46.639 --> 01:35:49.149 align:start position:0% user in the database so now we're calling<01:35:47.040> that<01:35:47.239> as<01:35:47.360> a<01:35:47.560> hook<01:35:48.480> and<01:35:48.679> it's<01:35:48.880> giving 01:35:49.149 --> 01:35:49.159 align:start position:0% calling that as a hook and it's giving 01:35:49.159 --> 01:35:51.870 align:start position:0% calling that as a hook and it's giving us<01:35:49.440> this<01:35:49.600> mutate<01:35:50.040> async<01:35:50.560> function<01:35:51.440> but<01:35:51.560> we<01:35:51.679> can 01:35:51.870 --> 01:35:51.880 align:start position:0% us this mutate async function but we can 01:35:51.880 --> 01:35:54.870 align:start position:0% us this mutate async function but we can rename<01:35:52.320> it<01:35:52.560> so<01:35:52.760> we<01:35:52.920> know<01:35:53.199> what<01:35:53.320> it<01:35:53.560> means<01:35:54.560> this 01:35:54.870 --> 01:35:54.880 align:start position:0% rename it so we know what it means this 01:35:54.880 --> 01:35:58.229 align:start position:0% rename it so we know what it means this is<01:35:55.040> going<01:35:55.239> to<01:35:55.480> create<01:35:56.119> a<01:35:56.360> new<01:35:57.000> user<01:35:57.679> account<01:35:58.119> so 01:35:58.229 --> 01:35:58.239 align:start position:0% is going to create a new user account so 01:35:58.239 --> 01:36:01.750 align:start position:0% is going to create a new user account so we<01:35:58.360> can<01:35:58.480> say<01:35:58.760> create<01:35:59.520> user<01:36:00.320> account<01:36:01.320> so<01:36:01.600> this 01:36:01.750 --> 01:36:01.760 align:start position:0% we can say create user account so this 01:36:01.760 --> 01:36:03.990 align:start position:0% we can say create user account so this syntax<01:36:02.199> simply<01:36:02.600> renames<01:36:03.320> this<01:36:03.520> mutate 01:36:03.990 --> 01:36:04.000 align:start position:0% syntax simply renames this mutate 01:36:04.000 --> 01:36:06.870 align:start position:0% syntax simply renames this mutate function<01:36:04.560> into<01:36:04.840> create<01:36:05.159> user<01:36:05.600> account<01:36:06.600> and<01:36:06.800> we 01:36:06.870 --> 01:36:06.880 align:start position:0% function into create user account and we 01:36:06.880 --> 01:36:10.310 align:start position:0% function into create user account and we can<01:36:07.080> also<01:36:07.440> rename<01:36:07.960> is<01:36:08.199> loading<01:36:09.000> to<01:36:09.840> is 01:36:10.310 --> 01:36:10.320 align:start position:0% can also rename is loading to is 01:36:10.320 --> 01:36:13.950 align:start position:0% can also rename is loading to is creating<01:36:11.119> user<01:36:11.679> so<01:36:11.840> it<01:36:12.000> makes<01:36:12.239> more<01:36:12.800> sense<01:36:13.800> and 01:36:13.950 --> 01:36:13.960 align:start position:0% creating user so it makes more sense and 01:36:13.960 --> 01:36:16.390 align:start position:0% creating user so it makes more sense and we<01:36:14.119> no<01:36:14.320> longer<01:36:14.639> need<01:36:14.920> this<01:36:15.080> fake<01:36:15.719> is<01:36:15.880> loading 01:36:16.390 --> 01:36:16.400 align:start position:0% we no longer need this fake is loading 01:36:16.400 --> 01:36:18.390 align:start position:0% we no longer need this fake is loading right<01:36:16.600> here<01:36:16.960> so<01:36:17.119> we<01:36:17.239> can<01:36:17.400> remove<01:36:17.719> it<01:36:18.199> and<01:36:18.320> we 01:36:18.390 --> 01:36:18.400 align:start position:0% right here so we can remove it and we 01:36:18.400 --> 01:36:21.430 align:start position:0% right here so we can remove it and we can<01:36:18.600> immediately<01:36:19.159> use<01:36:19.679> is<01:36:20.080> creating<01:36:20.560> user 01:36:21.430 --> 01:36:21.440 align:start position:0% can immediately use is creating user 01:36:21.440 --> 01:36:24.390 align:start position:0% can immediately use is creating user right<01:36:21.600> here<01:36:21.800> at<01:36:21.960> the<01:36:22.280> bottom<01:36:23.280> there<01:36:23.440> we<01:36:23.639> go 01:36:24.390 --> 01:36:24.400 align:start position:0% right here at the bottom there we go 01:36:24.400 --> 01:36:27.510 align:start position:0% right here at the bottom there we go that's<01:36:24.600> our<01:36:24.800> new<01:36:25.080> is<01:36:25.280> loading<01:36:26.280> so<01:36:26.560> react<01:36:26.960> query 01:36:27.510 --> 01:36:27.520 align:start position:0% that's our new is loading so react query 01:36:27.520 --> 01:36:30.629 align:start position:0% that's our new is loading so react query provides<01:36:27.960> this<01:36:28.119> out<01:36:28.280> of<01:36:28.400> the<01:36:28.560> box<01:36:28.880> as<01:36:29.239> well<01:36:30.239> now 01:36:30.629 --> 01:36:30.639 align:start position:0% provides this out of the box as well now 01:36:30.639 --> 01:36:32.750 align:start position:0% provides this out of the box as well now right<01:36:30.840> now<01:36:31.199> it<01:36:31.320> says<01:36:31.639> is<01:36:31.880> loading<01:36:32.320> is<01:36:32.480> not 01:36:32.750 --> 01:36:32.760 align:start position:0% right now it says is loading is not 01:36:32.760 --> 01:36:34.709 align:start position:0% right now it says is loading is not defined<01:36:33.159> or<01:36:33.400> does<01:36:33.560> not<01:36:33.840> exist<01:36:34.360> but<01:36:34.520> don't 01:36:34.709 --> 01:36:34.719 align:start position:0% defined or does not exist but don't 01:36:34.719 --> 01:36:36.669 align:start position:0% defined or does not exist but don't worry<01:36:34.920> we're<01:36:35.080> going<01:36:35.159> to<01:36:35.320> fix<01:36:35.600> this<01:36:35.800> soon<01:36:36.440> for 01:36:36.669 --> 01:36:36.679 align:start position:0% worry we're going to fix this soon for 01:36:36.679 --> 01:36:38.310 align:start position:0% worry we're going to fix this soon for now<01:36:36.920> it's<01:36:37.119> important<01:36:37.639> that<01:36:37.800> we<01:36:37.960> have<01:36:38.159> this 01:36:38.310 --> 01:36:38.320 align:start position:0% now it's important that we have this 01:36:38.320 --> 01:36:40.590 align:start position:0% now it's important that we have this create<01:36:38.719> user<01:36:39.080> account<01:36:39.560> which<01:36:39.679> we<01:36:39.800> can<01:36:40.000> call 01:36:40.590 --> 01:36:40.600 align:start position:0% create user account which we can call 01:36:40.600 --> 01:36:42.470 align:start position:0% create user account which we can call and<01:36:40.760> we<01:36:40.880> no<01:36:41.040> longer<01:36:41.320> need<01:36:41.440> to<01:36:41.560> use<01:36:41.719> it<01:36:41.960> directly 01:36:42.470 --> 01:36:42.480 align:start position:0% and we no longer need to use it directly 01:36:42.480 --> 01:36:45.109 align:start position:0% and we no longer need to use it directly from<01:36:42.840> aight<01:36:43.560> because<01:36:43.880> this<01:36:44.040> mutation<01:36:44.880> is 01:36:45.109 --> 01:36:45.119 align:start position:0% from aight because this mutation is 01:36:45.119 --> 01:36:47.669 align:start position:0% from aight because this mutation is actually<01:36:45.600> calling<01:36:46.360> create<01:36:46.880> user<01:36:47.320> account 01:36:47.669 --> 01:36:47.679 align:start position:0% actually calling create user account 01:36:47.679 --> 01:36:50.510 align:start position:0% actually calling create user account from<01:36:47.920> aight<01:36:48.679> for<01:36:48.960> us<01:36:49.480> it's<01:36:49.679> kind<01:36:49.800> of<01:36:49.920> a<01:36:50.119> level 01:36:50.510 --> 01:36:50.520 align:start position:0% from aight for us it's kind of a level 01:36:50.520 --> 01:36:52.669 align:start position:0% from aight for us it's kind of a level in<01:36:50.719> between<01:36:51.480> the<01:36:51.639> app<01:36:51.960> right<01:36:52.159> in<01:36:52.280> our<01:36:52.440> front 01:36:52.669 --> 01:36:52.679 align:start position:0% in between the app right in our front 01:36:52.679 --> 01:36:55.470 align:start position:0% in between the app right in our front end<01:36:53.159> to<01:36:53.400> ensure<01:36:54.000> that<01:36:54.239> we<01:36:54.440> have<01:36:54.719> easier<01:36:55.199> time 01:36:55.470 --> 01:36:55.480 align:start position:0% end to ensure that we have easier time 01:36:55.480 --> 01:36:58.470 align:start position:0% end to ensure that we have easier time fetching<01:36:55.920> data<01:36:56.400> on<01:36:56.639> react<01:36:57.480> and<01:36:57.800> querying<01:36:58.320> and 01:36:58.470 --> 01:36:58.480 align:start position:0% fetching data on react and querying and 01:36:58.480 --> 01:37:01.550 align:start position:0% fetching data on react and querying and mutating<01:36:58.960> the<01:36:59.119> data<01:36:59.920> as<01:37:00.119> well<01:37:00.280> as<01:37:00.520> caching<01:37:00.920> it 01:37:01.550 --> 01:37:01.560 align:start position:0% mutating the data as well as caching it 01:37:01.560 --> 01:37:04.030 align:start position:0% mutating the data as well as caching it so<01:37:01.840> now<01:37:02.320> we<01:37:02.520> have<01:37:02.920> this<01:37:03.360> and<01:37:03.480> we're<01:37:03.679> calling 01:37:04.030 --> 01:37:04.040 align:start position:0% so now we have this and we're calling 01:37:04.040 --> 01:37:05.870 align:start position:0% so now we have this and we're calling the<01:37:04.199> create<01:37:04.520> user<01:37:04.880> account<01:37:05.280> as<01:37:05.400> we<01:37:05.560> were 01:37:05.870 --> 01:37:05.880 align:start position:0% the create user account as we were 01:37:05.880 --> 01:37:08.550 align:start position:0% the create user account as we were before<01:37:06.560> but<01:37:06.760> now<01:37:07.159> this<01:37:07.320> is<01:37:07.440> a<01:37:07.600> mutation<01:37:08.280> from 01:37:08.550 --> 01:37:08.560 align:start position:0% before but now this is a mutation from 01:37:08.560 --> 01:37:12.030 align:start position:0% before but now this is a mutation from react<01:37:09.040> query<01:37:09.719> now<01:37:10.040> we<01:37:10.119> can<01:37:10.360> also<01:37:10.760> do<01:37:11.119> a<01:37:11.360> session 01:37:12.030 --> 01:37:12.040 align:start position:0% react query now we can also do a session 01:37:12.040 --> 01:37:14.270 align:start position:0% react query now we can also do a session which<01:37:12.159> is<01:37:12.280> the<01:37:12.520> sign<01:37:12.800> in<01:37:13.199> account<01:37:14.040> which<01:37:14.159> is 01:37:14.270 --> 01:37:14.280 align:start position:0% which is the sign in account which is 01:37:14.280 --> 01:37:16.990 align:start position:0% which is the sign in account which is going<01:37:14.480> to<01:37:14.639> be<01:37:15.119> yet<01:37:15.440> another<01:37:15.800> mutation<01:37:16.800> so 01:37:16.990 --> 01:37:17.000 align:start position:0% going to be yet another mutation so 01:37:17.000 --> 01:37:20.310 align:start position:0% going to be yet another mutation so let's<01:37:17.239> go<01:37:17.440> to<01:37:17.760> our<01:37:18.320> mutations<01:37:19.320> right<01:37:19.560> here<01:37:20.199> and 01:37:20.310 --> 01:37:20.320 align:start position:0% let's go to our mutations right here and 01:37:20.320 --> 01:37:22.030 align:start position:0% let's go to our mutations right here and we<01:37:20.400> can<01:37:20.560> create<01:37:20.840> another<01:37:21.360> one<01:37:21.679> just<01:37:21.840> by 01:37:22.030 --> 01:37:22.040 align:start position:0% we can create another one just by 01:37:22.040 --> 01:37:24.669 align:start position:0% we can create another one just by duplicating<01:37:22.639> this<01:37:22.760> one<01:37:23.080> below<01:37:24.080> we<01:37:24.199> can<01:37:24.440> call 01:37:24.669 --> 01:37:24.679 align:start position:0% duplicating this one below we can call 01:37:24.679 --> 01:37:29.790 align:start position:0% duplicating this one below we can call it<01:37:25.360> use<01:37:26.000> sign<01:37:26.360> in<01:37:26.800> account<01:37:27.239> mutation<01:37:28.080> so<01:37:28.760> use 01:37:29.790 --> 01:37:29.800 align:start position:0% it use sign in account mutation so use 01:37:29.800 --> 01:37:33.790 align:start position:0% it use sign in account mutation so use sign<01:37:30.800> in<01:37:31.920> account<01:37:32.920> and<01:37:33.159> now<01:37:33.320> that<01:37:33.440> I<01:37:33.600> think 01:37:33.790 --> 01:37:33.800 align:start position:0% sign in account and now that I think 01:37:33.800 --> 01:37:35.669 align:start position:0% sign in account and now that I think about<01:37:34.000> it<01:37:34.280> we<01:37:34.400> don't<01:37:34.639> have<01:37:34.760> to<01:37:34.960> add<01:37:35.199> mutation 01:37:35.669 --> 01:37:35.679 align:start position:0% about it we don't have to add mutation 01:37:35.679 --> 01:37:37.550 align:start position:0% about it we don't have to add mutation at<01:37:35.800> the<01:37:35.880> end<01:37:36.040> of<01:37:36.199> every<01:37:36.440> single<01:37:36.719> one<01:37:37.119> so<01:37:37.320> we<01:37:37.400> can 01:37:37.550 --> 01:37:37.560 align:start position:0% at the end of every single one so we can 01:37:37.560 --> 01:37:40.709 align:start position:0% at the end of every single one so we can simply<01:37:37.920> fix<01:37:38.239> this<01:37:38.480> right<01:37:38.840> here<01:37:39.840> and<01:37:40.040> modify<01:37:40.480> it 01:37:40.709 --> 01:37:40.719 align:start position:0% simply fix this right here and modify it 01:37:40.719 --> 01:37:44.109 align:start position:0% simply fix this right here and modify it right<01:37:40.920> here<01:37:41.280> at<01:37:41.400> the<01:37:41.840> top<01:37:42.840> as<01:37:43.000> well<01:37:43.199> as<01:37:43.480> in<01:37:43.599> the 01:37:44.109 --> 01:37:44.119 align:start position:0% right here at the top as well as in the 01:37:44.119 --> 01:37:47.149 align:start position:0% right here at the top as well as in the import<01:37:45.119> so<01:37:45.400> now<01:37:45.880> if<01:37:45.960> we<01:37:46.119> go<01:37:46.400> back<01:37:46.679> we<01:37:46.800> have<01:37:46.960> the 01:37:47.149 --> 01:37:47.159 align:start position:0% import so now if we go back we have the 01:37:47.159 --> 01:37:49.870 align:start position:0% import so now if we go back we have the use<01:37:47.639> signin<01:37:48.199> account<01:37:48.960> and<01:37:49.239> here<01:37:49.560> what<01:37:49.679> we<01:37:49.800> want 01:37:49.870 --> 01:37:49.880 align:start position:0% use signin account and here what we want 01:37:49.880 --> 01:37:52.750 align:start position:0% use signin account and here what we want to<01:37:50.040> do<01:37:50.639> is<01:37:50.880> have<01:37:51.239> a<01:37:51.400> mutation<01:37:51.960> function<01:37:52.560> that's 01:37:52.750 --> 01:37:52.760 align:start position:0% to do is have a mutation function that's 01:37:52.760 --> 01:37:55.229 align:start position:0% to do is have a mutation function that's going<01:37:52.920> to<01:37:53.040> get<01:37:53.199> the<01:37:53.360> user<01:37:54.119> but<01:37:54.280> in<01:37:54.480> this<01:37:54.679> case 01:37:55.229 --> 01:37:55.239 align:start position:0% going to get the user but in this case 01:37:55.239 --> 01:37:57.950 align:start position:0% going to get the user but in this case the<01:37:55.360> user<01:37:55.760> is<01:37:55.920> going<01:37:56.080> to<01:37:56.239> be<01:37:56.440> just<01:37:56.639> the<01:37:56.960> email 01:37:57.950 --> 01:37:57.960 align:start position:0% the user is going to be just the email 01:37:57.960 --> 01:38:01.510 align:start position:0% the user is going to be just the email of<01:37:58.119> a<01:37:58.320> type<01:37:58.719> string<01:37:59.719> as<01:37:59.920> well<01:38:00.239> as<01:38:00.400> a<01:38:00.719> password 01:38:01.510 --> 01:38:01.520 align:start position:0% of a type string as well as a password 01:38:01.520 --> 01:38:02.990 align:start position:0% of a type string as well as a password of<01:38:01.639> a<01:38:01.840> type 01:38:02.990 --> 01:38:03.000 align:start position:0% of a type 01:38:03.000 --> 01:38:05.470 align:start position:0% of a type string<01:38:04.000> we<01:38:04.080> can<01:38:04.280> put<01:38:04.440> this<01:38:04.520> in<01:38:04.639> a<01:38:04.800> new<01:38:05.000> line<01:38:05.320> so 01:38:05.470 --> 01:38:05.480 align:start position:0% string we can put this in a new line so 01:38:05.480 --> 01:38:08.270 align:start position:0% string we can put this in a new line so it<01:38:05.599> makes<01:38:05.800> a<01:38:05.920> bit<01:38:06.119> more<01:38:06.560> sense<01:38:07.560> and<01:38:07.760> now<01:38:08.119> of 01:38:08.270 --> 01:38:08.280 align:start position:0% it makes a bit more sense and now of 01:38:08.280 --> 01:38:09.790 align:start position:0% it makes a bit more sense and now of course<01:38:08.480> we're<01:38:08.639> not<01:38:08.840> going<01:38:08.920> to<01:38:09.080> call<01:38:09.360> the<01:38:09.520> same 01:38:09.790 --> 01:38:09.800 align:start position:0% course we're not going to call the same 01:38:09.800 --> 01:38:12.470 align:start position:0% course we're not going to call the same function<01:38:10.199> once<01:38:10.800> again<01:38:11.800> which<01:38:11.920> is<01:38:12.040> the<01:38:12.199> create 01:38:12.470 --> 01:38:12.480 align:start position:0% function once again which is the create 01:38:12.480 --> 01:38:14.870 align:start position:0% function once again which is the create user<01:38:12.840> account<01:38:13.719> in<01:38:13.960> this<01:38:14.199> case<01:38:14.480> we're<01:38:14.639> going<01:38:14.719> to 01:38:14.870 --> 01:38:14.880 align:start position:0% user account in this case we're going to 01:38:14.880 --> 01:38:18.629 align:start position:0% user account in this case we're going to call<01:38:15.599> a<01:38:15.920> sign<01:38:16.440> in<01:38:17.000> account<01:38:18.000> and<01:38:18.159> we<01:38:18.280> want<01:38:18.400> to 01:38:18.629 --> 01:38:18.639 align:start position:0% call a sign in account and we want to 01:38:18.639 --> 01:38:22.070 align:start position:0% call a sign in account and we want to pass<01:38:19.000> the<01:38:19.280> user<01:38:20.280> and<01:38:20.639> this<01:38:20.880> sign<01:38:21.400> in<01:38:21.639> account 01:38:22.070 --> 01:38:22.080 align:start position:0% pass the user and this sign in account 01:38:22.080 --> 01:38:25.910 align:start position:0% pass the user and this sign in account will<01:38:22.400> create<01:38:22.880> in<01:38:23.159> aide<01:38:23.920> so<01:38:24.119> let's<01:38:24.320> go<01:38:24.480> to<01:38:24.719> aite 01:38:25.910 --> 01:38:25.920 align:start position:0% will create in aide so let's go to aite 01:38:25.920 --> 01:38:30.070 align:start position:0% will create in aide so let's go to aite API<01:38:26.920> we<01:38:27.119> now<01:38:27.400> have<01:38:28.199> create<01:38:28.520> user<01:38:28.880> account<01:38:29.760> save 01:38:30.070 --> 01:38:30.080 align:start position:0% API we now have create user account save 01:38:30.080 --> 01:38:31.070 align:start position:0% API we now have create user account save user<01:38:30.320> to 01:38:31.070 --> 01:38:31.080 align:start position:0% user to 01:38:31.080 --> 01:38:33.910 align:start position:0% user to DB<01:38:32.080> but<01:38:32.440> right<01:38:32.679> below<01:38:33.000> it<01:38:33.199> we're<01:38:33.400> going<01:38:33.560> to 01:38:33.910 --> 01:38:33.920 align:start position:0% DB but right below it we're going to 01:38:33.920 --> 01:38:39.510 align:start position:0% DB but right below it we're going to export<01:38:35.040> async<01:38:36.239> function<01:38:37.239> sign<01:38:37.840> in<01:38:38.520> account 01:38:39.510 --> 01:38:39.520 align:start position:0% export async function sign in account 01:38:39.520 --> 01:38:41.589 align:start position:0% export async function sign in account that's<01:38:39.719> going<01:38:39.920> to<01:38:40.040> get<01:38:40.199> the<01:38:40.360> user<01:38:41.360> which<01:38:41.480> is 01:38:41.589 --> 01:38:41.599 align:start position:0% that's going to get the user which is 01:38:41.599 --> 01:38:44.910 align:start position:0% that's going to get the user which is going<01:38:41.800> to<01:38:42.119> have<01:38:42.520> a<01:38:42.840> email<01:38:43.400> of<01:38:43.560> a<01:38:43.760> type<01:38:44.040> string 01:38:44.910 --> 01:38:44.920 align:start position:0% going to have a email of a type string 01:38:44.920 --> 01:38:47.709 align:start position:0% going to have a email of a type string as<01:38:45.159> well<01:38:45.440> as<01:38:45.760> a<01:38:46.040> password<01:38:46.760> of<01:38:46.920> a<01:38:47.119> type<01:38:47.360> string 01:38:47.709 --> 01:38:47.719 align:start position:0% as well as a password of a type string 01:38:47.719 --> 01:38:49.870 align:start position:0% as well as a password of a type string as<01:38:47.840> well<01:38:48.480> and<01:38:48.639> then<01:38:49.000> it's<01:38:49.159> going<01:38:49.320> to<01:38:49.520> have<01:38:49.679> a 01:38:49.870 --> 01:38:49.880 align:start position:0% as well and then it's going to have a 01:38:49.880 --> 01:38:51.910 align:start position:0% as well and then it's going to have a try<01:38:50.239> and<01:38:50.520> catch<01:38:50.800> block 01:38:51.910 --> 01:38:51.920 align:start position:0% try and catch block 01:38:51.920 --> 01:38:54.709 align:start position:0% try and catch block here<01:38:52.159> we<01:38:52.280> can<01:38:52.440> simply<01:38:52.760> kolck<01:38:53.520> the<01:38:53.639> error<01:38:54.560> and 01:38:54.709 --> 01:38:54.719 align:start position:0% here we can simply kolck the error and 01:38:54.719 --> 01:38:57.430 align:start position:0% here we can simply kolck the error and in<01:38:54.880> the<01:38:55.040> try<01:38:55.639> we<01:38:55.719> can<01:38:55.920> create<01:38:56.280> a<01:38:56.520> new<01:38:56.960> email 01:38:57.430 --> 01:38:57.440 align:start position:0% in the try we can create a new email 01:38:57.440 --> 01:39:00.750 align:start position:0% in the try we can create a new email session<01:38:58.239> by<01:38:58.400> saying<01:38:58.760> cons<01:38:59.239> session<01:39:00.159> is<01:39:00.440> equal 01:39:00.750 --> 01:39:00.760 align:start position:0% session by saying cons session is equal 01:39:00.760 --> 01:39:05.709 align:start position:0% session by saying cons session is equal to<01:39:01.840> await<01:39:03.119> account.<01:39:04.119> create<01:39:04.639> session<01:39:05.520> and 01:39:05.709 --> 01:39:05.719 align:start position:0% to await account. create session and 01:39:05.719 --> 01:39:07.910 align:start position:0% to await account. create session and again<01:39:06.040> this<01:39:06.159> is<01:39:06.320> another<01:39:06.599> utility<01:39:07.480> provided 01:39:07.910 --> 01:39:07.920 align:start position:0% again this is another utility provided 01:39:07.920 --> 01:39:11.870 align:start position:0% again this is another utility provided to<01:39:08.159> us<01:39:08.679> by<01:39:08.960> aight<01:39:09.800> it's<01:39:10.119> create<01:39:10.679> email<01:39:11.159> session 01:39:11.870 --> 01:39:11.880 align:start position:0% to us by aight it's create email session 01:39:11.880 --> 01:39:15.629 align:start position:0% to us by aight it's create email session to<01:39:12.239> which<01:39:12.679> we<01:39:12.840> have<01:39:12.960> to<01:39:13.199> pass<01:39:13.520> user.<01:39:14.440> email<01:39:15.440> as 01:39:15.629 --> 01:39:15.639 align:start position:0% to which we have to pass user. email as 01:39:15.639 --> 01:39:18.390 align:start position:0% to which we have to pass user. email as well<01:39:16.080> as<01:39:16.320> the<01:39:16.520> password<01:39:17.159> by<01:39:17.280> saying<01:39:17.599> user. 01:39:18.390 --> 01:39:18.400 align:start position:0% well as the password by saying user. 01:39:18.400 --> 01:39:21.109 align:start position:0% well as the password by saying user. password<01:39:19.199> and<01:39:19.400> then<01:39:19.679> we<01:39:19.800> can<01:39:20.159> return<01:39:20.679> this 01:39:21.109 --> 01:39:21.119 align:start position:0% password and then we can return this 01:39:21.119 --> 01:39:24.109 align:start position:0% password and then we can return this session<01:39:21.800> so<01:39:22.040> once<01:39:22.320> again<01:39:23.000> we<01:39:23.159> have<01:39:23.360> created<01:39:23.840> an 01:39:24.109 --> 01:39:24.119 align:start position:0% session so once again we have created an 01:39:24.119 --> 01:39:26.629 align:start position:0% session so once again we have created an App<01:39:24.920> function<01:39:25.920> that's<01:39:26.159> then<01:39:26.320> getting 01:39:26.629 --> 01:39:26.639 align:start position:0% App function that's then getting 01:39:26.639 --> 01:39:29.390 align:start position:0% App function that's then getting utilized<01:39:27.480> by<01:39:27.800> react<01:39:28.239> query<01:39:28.920> and<01:39:29.119> we<01:39:29.199> can 01:39:29.390 --> 01:39:29.400 align:start position:0% utilized by react query and we can 01:39:29.400 --> 01:39:32.589 align:start position:0% utilized by react query and we can import<01:39:29.760> it<01:39:30.040> right<01:39:30.239> here<01:39:30.639> from<01:39:30.960> aight<01:39:31.520> API<01:39:32.400> so 01:39:32.589 --> 01:39:32.599 align:start position:0% import it right here from aight API so 01:39:32.599 --> 01:39:34.669 align:start position:0% import it right here from aight API so now<01:39:32.920> this<01:39:33.040> one<01:39:33.199> is<01:39:33.320> for<01:39:33.480> creating<01:39:33.840> the<01:39:33.960> user 01:39:34.669 --> 01:39:34.679 align:start position:0% now this one is for creating the user 01:39:34.679 --> 01:39:36.629 align:start position:0% now this one is for creating the user and<01:39:34.920> this<01:39:35.040> one<01:39:35.360> is<01:39:35.480> for<01:39:35.719> signing<01:39:36.159> into<01:39:36.440> the 01:39:36.629 --> 01:39:36.639 align:start position:0% and this one is for signing into the 01:39:36.639 --> 01:39:38.790 align:start position:0% and this one is for signing into the account<01:39:37.280> and<01:39:37.440> now<01:39:37.599> we<01:39:37.719> can<01:39:37.840> repeat<01:39:38.280> this<01:39:38.599> with 01:39:38.790 --> 01:39:38.800 align:start position:0% account and now we can repeat this with 01:39:38.800 --> 01:39:40.669 align:start position:0% account and now we can repeat this with the<01:39:38.960> other<01:39:39.239> hook<01:39:39.719> that<01:39:39.840> we<01:39:40.000> have<01:39:40.280> right<01:39:40.480> here 01:39:40.669 --> 01:39:40.679 align:start position:0% the other hook that we have right here 01:39:40.679 --> 01:39:44.189 align:start position:0% the other hook that we have right here in<01:39:40.800> our<01:39:41.000> signup<01:39:41.400> form<01:39:42.320> we<01:39:42.440> can<01:39:42.560> say<01:39:43.040> const<01:39:44.040> we 01:39:44.189 --> 01:39:44.199 align:start position:0% in our signup form we can say const we 01:39:44.199 --> 01:39:46.510 align:start position:0% in our signup form we can say const we get<01:39:44.400> a<01:39:44.800> mutate 01:39:46.510 --> 01:39:46.520 align:start position:0% get a mutate 01:39:46.520 --> 01:39:48.790 align:start position:0% get a mutate async<01:39:47.520> which<01:39:47.639> is<01:39:47.760> going<01:39:47.920> to<01:39:48.080> be<01:39:48.239> equal<01:39:48.520> to<01:39:48.639> a 01:39:48.790 --> 01:39:48.800 align:start position:0% async which is going to be equal to a 01:39:48.800 --> 01:39:51.910 align:start position:0% async which is going to be equal to a function<01:39:49.119> of<01:39:49.360> sign<01:39:49.679> in<01:39:50.119> account<01:39:51.400> and<01:39:51.560> we<01:39:51.679> get 01:39:51.910 --> 01:39:51.920 align:start position:0% function of sign in account and we get 01:39:51.920 --> 01:39:55.189 align:start position:0% function of sign in account and we get is<01:39:52.119> loading<01:39:52.760> which<01:39:52.880> is<01:39:53.080> equal<01:39:53.360> to<01:39:53.639> is<01:39:54.080> signing 01:39:55.189 --> 01:39:55.199 align:start position:0% is loading which is equal to is signing 01:39:55.199 --> 01:39:57.790 align:start position:0% is loading which is equal to is signing in<01:39:56.199> and<01:39:56.400> once<01:39:56.599> we<01:39:56.760> get<01:39:56.960> that<01:39:57.280> we<01:39:57.360> can<01:39:57.520> say 01:39:57.790 --> 01:39:57.800 align:start position:0% in and once we get that we can say 01:39:57.800 --> 01:40:01.229 align:start position:0% in and once we get that we can say that's<01:39:58.080> equal<01:39:58.360> to<01:39:59.119> use<01:39:59.639> sign<01:40:00.000> in<01:40:00.400> account 01:40:01.229 --> 01:40:01.239 align:start position:0% that's equal to use sign in account 01:40:01.239 --> 01:40:04.189 align:start position:0% that's equal to use sign in account which<01:40:01.400> we<01:40:01.520> have<01:40:01.639> to<01:40:01.840> import<01:40:02.520> from<01:40:03.040> react<01:40:03.599> query 01:40:04.189 --> 01:40:04.199 align:start position:0% which we have to import from react query 01:40:04.199 --> 01:40:06.830 align:start position:0% which we have to import from react query queries<01:40:04.719> and<01:40:05.000> mutations<01:40:05.960> and<01:40:06.119> now<01:40:06.320> we<01:40:06.400> can<01:40:06.560> use 01:40:06.830 --> 01:40:06.840 align:start position:0% queries and mutations and now we can use 01:40:06.840 --> 01:40:10.430 align:start position:0% queries and mutations and now we can use this<01:40:07.080> function<01:40:07.760> right<01:40:08.000> here<01:40:09.000> await<01:40:09.760> sign<01:40:10.080> in 01:40:10.430 --> 01:40:10.440 align:start position:0% this function right here await sign in 01:40:10.440 --> 01:40:12.870 align:start position:0% this function right here await sign in account<01:40:11.119> to<01:40:11.440> which<01:40:11.920> we<01:40:12.080> have<01:40:12.199> to<01:40:12.440> pass<01:40:12.679> the 01:40:12.870 --> 01:40:12.880 align:start position:0% account to which we have to pass the 01:40:12.880 --> 01:40:16.350 align:start position:0% account to which we have to pass the email<01:40:13.560> which<01:40:13.679> is<01:40:13.800> going<01:40:14.000> to<01:40:14.159> be<01:40:14.719> values.<01:40:15.719> mail 01:40:16.350 --> 01:40:16.360 align:start position:0% email which is going to be values. mail 01:40:16.360 --> 01:40:18.790 align:start position:0% email which is going to be values. mail right<01:40:16.599> here<01:40:17.360> and<01:40:17.520> then<01:40:17.800> password<01:40:18.520> which<01:40:18.639> is 01:40:18.790 --> 01:40:18.800 align:start position:0% right here and then password which is 01:40:18.800 --> 01:40:22.270 align:start position:0% right here and then password which is going<01:40:18.960> to<01:40:19.119> be<01:40:19.960> values.<01:40:21.040> password<01:40:21.760> and<01:40:21.920> all<01:40:22.080> of 01:40:22.270 --> 01:40:22.280 align:start position:0% going to be values. password and all of 01:40:22.280 --> 01:40:25.030 align:start position:0% going to be values. password and all of this<01:40:22.400> is<01:40:22.560> coming<01:40:22.960> from<01:40:23.239> our<01:40:23.639> form<01:40:24.639> once<01:40:24.840> we 01:40:25.030 --> 01:40:25.040 align:start position:0% this is coming from our form once we 01:40:25.040 --> 01:40:27.189 align:start position:0% this is coming from our form once we have<01:40:25.280> that<01:40:25.599> we<01:40:25.679> can<01:40:25.840> check<01:40:26.080> if<01:40:26.239> session<01:40:26.639> exists 01:40:27.189 --> 01:40:27.199 align:start position:0% have that we can check if session exists 01:40:27.199 --> 01:40:29.990 align:start position:0% have that we can check if session exists by<01:40:27.320> saying<01:40:27.719> if<01:40:28.040> no<01:40:28.440> session<01:40:29.440> we<01:40:29.560> want<01:40:29.679> to 01:40:29.990 --> 01:40:30.000 align:start position:0% by saying if no session we want to 01:40:30.000 --> 01:40:33.390 align:start position:0% by saying if no session we want to return<01:40:30.280> a<01:40:30.480> new<01:40:30.760> toast<01:40:31.480> saying<01:40:32.040> sign<01:40:32.360> in<01:40:32.639> failed 01:40:33.390 --> 01:40:33.400 align:start position:0% return a new toast saying sign in failed 01:40:33.400 --> 01:40:36.470 align:start position:0% return a new toast saying sign in failed please<01:40:33.719> try<01:40:34.119> again<01:40:35.000> and<01:40:35.239> bear<01:40:35.560> with<01:40:35.719> me<01:40:36.199> I<01:40:36.280> know 01:40:36.470 --> 01:40:36.480 align:start position:0% please try again and bear with me I know 01:40:36.480 --> 01:40:37.910 align:start position:0% please try again and bear with me I know this<01:40:36.599> is<01:40:36.719> taking<01:40:37.080> some<01:40:37.320> time<01:40:37.679> but 01:40:37.910 --> 01:40:37.920 align:start position:0% this is taking some time but 01:40:37.920 --> 01:40:39.589 align:start position:0% this is taking some time but authentication<01:40:38.719> and<01:40:38.920> creating<01:40:39.239> user 01:40:39.589 --> 01:40:39.599 align:start position:0% authentication and creating user 01:40:39.599 --> 01:40:41.629 align:start position:0% authentication and creating user accounts<01:40:40.199> is<01:40:40.360> one<01:40:40.520> of<01:40:40.639> the<01:40:40.760> most<01:40:41.040> complicated 01:40:41.629 --> 01:40:41.639 align:start position:0% accounts is one of the most complicated 01:40:41.639 --> 01:40:44.189 align:start position:0% accounts is one of the most complicated parts<01:40:41.880> of<01:40:42.119> every<01:40:42.360> single<01:40:42.800> application<01:40:43.800> now 01:40:44.189 --> 01:40:44.199 align:start position:0% parts of every single application now 01:40:44.199 --> 01:40:46.229 align:start position:0% parts of every single application now after<01:40:44.440> we<01:40:44.599> have<01:40:44.800> the<01:40:45.040> session<01:40:45.760> we<01:40:45.920> have<01:40:46.040> to 01:40:46.229 --> 01:40:46.239 align:start position:0% after we have the session we have to 01:40:46.239 --> 01:40:49.350 align:start position:0% after we have the session we have to store<01:40:46.639> that<01:40:46.880> session<01:40:47.520> in<01:40:47.760> our<01:40:48.080> react<01:40:48.639> context 01:40:49.350 --> 01:40:49.360 align:start position:0% store that session in our react context 01:40:49.360 --> 01:40:51.669 align:start position:0% store that session in our react context at<01:40:49.520> all<01:40:49.880> times<01:40:50.400> we<01:40:50.520> need<01:40:50.679> to<01:40:50.960> know<01:40:51.320> that<01:40:51.480> we 01:40:51.669 --> 01:40:51.679 align:start position:0% at all times we need to know that we 01:40:51.679 --> 01:40:55.109 align:start position:0% at all times we need to know that we have<01:40:51.960> a<01:40:52.199> logged<01:40:52.560> in<01:40:52.920> user<01:40:53.880> so<01:40:54.159> for<01:40:54.440> that<01:40:54.639> reason 01:40:55.109 --> 01:40:55.119 align:start position:0% have a logged in user so for that reason 01:40:55.119 --> 01:40:57.589 align:start position:0% have a logged in user so for that reason we<01:40:55.239> can<01:40:55.440> create<01:40:55.800> a<01:40:56.000> new<01:40:56.239> folder<01:40:57.199> right<01:40:57.400> here 01:40:57.589 --> 01:40:57.599 align:start position:0% we can create a new folder right here 01:40:57.599 --> 01:40:59.470 align:start position:0% we can create a new folder right here within<01:40:57.840> the<01:40:58.000> source<01:40:58.679> which<01:40:58.880> is<01:40:59.000> going<01:40:59.159> to<01:40:59.280> be 01:40:59.470 --> 01:40:59.480 align:start position:0% within the source which is going to be 01:40:59.480 --> 01:41:00.629 align:start position:0% within the source which is going to be called 01:41:00.629 --> 01:41:00.639 align:start position:0% called 01:41:00.639 --> 01:41:03.270 align:start position:0% called context<01:41:01.639> within<01:41:01.920> the<01:41:02.119> context<01:41:02.719> we<01:41:02.800> can<01:41:03.000> create 01:41:03.270 --> 01:41:03.280 align:start position:0% context within the context we can create 01:41:03.280 --> 01:41:08.030 align:start position:0% context within the context we can create a<01:41:03.480> new<01:41:03.840> file<01:41:04.840> called<01:41:05.320> oth<01:41:06.320> context. 01:41:08.030 --> 01:41:08.040 align:start position:0% a new file called oth context. 01:41:08.040 --> 01:41:10.830 align:start position:0% a new file called oth context. TSX<01:41:09.040> there<01:41:09.360> we<01:41:09.480> can<01:41:09.639> run 01:41:10.830 --> 01:41:10.840 align:start position:0% TSX there we can run 01:41:10.840 --> 01:41:13.229 align:start position:0% TSX there we can run RFC<01:41:11.840> and<01:41:12.000> we'll<01:41:12.199> need<01:41:12.320> to<01:41:12.520> import<01:41:13.000> some 01:41:13.229 --> 01:41:13.239 align:start position:0% RFC and we'll need to import some 01:41:13.239 --> 01:41:15.350 align:start position:0% RFC and we'll need to import some utilities<01:41:13.920> for<01:41:14.159> creating<01:41:14.560> context<01:41:15.119> from 01:41:15.350 --> 01:41:15.360 align:start position:0% utilities for creating context from 01:41:15.360 --> 01:41:20.550 align:start position:0% utilities for creating context from react<01:41:16.280> such<01:41:16.480> as<01:41:16.760> create<01:41:17.679> context<01:41:18.679> use<01:41:19.560> context 01:41:20.550 --> 01:41:20.560 align:start position:0% react such as create context use context 01:41:20.560 --> 01:41:25.270 align:start position:0% react such as create context use context use<01:41:20.920> use<01:41:21.280> effect<01:41:22.280> as<01:41:22.440> well<01:41:22.679> as<01:41:23.080> use<01:41:24.040> State<01:41:25.040> now 01:41:25.270 --> 01:41:25.280 align:start position:0% use use effect as well as use State now 01:41:25.280 --> 01:41:27.189 align:start position:0% use use effect as well as use State now we<01:41:25.360> need<01:41:25.480> to<01:41:25.679> Define<01:41:26.080> how<01:41:26.239> an<01:41:26.400> empty<01:41:26.760> user<01:41:27.080> is 01:41:27.189 --> 01:41:27.199 align:start position:0% we need to Define how an empty user is 01:41:27.199 --> 01:41:29.589 align:start position:0% we need to Define how an empty user is going<01:41:27.360> to<01:41:27.560> look<01:41:27.800> like<01:41:28.280> so<01:41:28.400> we<01:41:28.520> can<01:41:28.639> say<01:41:28.960> export 01:41:29.589 --> 01:41:29.599 align:start position:0% going to look like so we can say export 01:41:29.599 --> 01:41:33.189 align:start position:0% going to look like so we can say export const<01:41:30.560> initial<01:41:31.159> uncore<01:41:31.800> user<01:41:32.400> is<01:41:32.560> equal<01:41:32.800> to<01:41:32.960> an 01:41:33.189 --> 01:41:33.199 align:start position:0% const initial uncore user is equal to an 01:41:33.199 --> 01:41:36.750 align:start position:0% const initial uncore user is equal to an object<01:41:34.119> where<01:41:34.440> the<01:41:34.679> ID<01:41:35.360> is<01:41:35.480> equal<01:41:35.760> to<01:41:35.840> an<01:41:35.960> empty 01:41:36.750 --> 01:41:36.760 align:start position:0% object where the ID is equal to an empty 01:41:36.760 --> 01:41:40.510 align:start position:0% object where the ID is equal to an empty string<01:41:37.760> name<01:41:38.239> is<01:41:38.400> equal<01:41:38.639> to<01:41:38.760> an<01:41:38.880> empty<01:41:39.520> string 01:41:40.510 --> 01:41:40.520 align:start position:0% string name is equal to an empty string 01:41:40.520 --> 01:41:43.950 align:start position:0% string name is equal to an empty string username<01:41:41.320> is<01:41:41.480> equal<01:41:41.800> to<01:41:42.119> an<01:41:42.320> empty<01:41:42.960> string 01:41:43.950 --> 01:41:43.960 align:start position:0% username is equal to an empty string 01:41:43.960 --> 01:41:47.709 align:start position:0% username is equal to an empty string email<01:41:44.560> is<01:41:44.760> again<01:41:45.159> an<01:41:45.320> empty<01:41:45.639> string<01:41:46.159> as<01:41:46.719> well 01:41:47.709 --> 01:41:47.719 align:start position:0% email is again an empty string as well 01:41:47.719 --> 01:41:51.350 align:start position:0% email is again an empty string as well image<01:41:48.159> URL<01:41:48.960> is<01:41:49.080> an<01:41:49.239> empty<01:41:49.599> string<01:41:50.599> and<01:41:50.840> and<01:41:51.080> a 01:41:51.350 --> 01:41:51.360 align:start position:0% image URL is an empty string and and a 01:41:51.360 --> 01:41:54.270 align:start position:0% image URL is an empty string and and a bio<01:41:52.040> is<01:41:52.239> also<01:41:52.599> an<01:41:52.760> empty<01:41:53.080> string<01:41:53.920> so 01:41:54.270 --> 01:41:54.280 align:start position:0% bio is also an empty string so 01:41:54.280 --> 01:41:55.910 align:start position:0% bio is also an empty string so everything<01:41:54.719> is 01:41:55.910 --> 01:41:55.920 align:start position:0% everything is 01:41:55.920 --> 01:41:58.629 align:start position:0% everything is empty<01:41:56.920> after<01:41:57.239> that<01:41:57.480> we<01:41:57.599> have<01:41:57.719> to<01:41:57.880> declare<01:41:58.440> the 01:41:58.629 --> 01:41:58.639 align:start position:0% empty after that we have to declare the 01:41:58.639 --> 01:42:02.070 align:start position:0% empty after that we have to declare the initial<01:41:59.400> of<01:42:00.080> state<01:42:00.760> so<01:42:00.920> we<01:42:01.000> can<01:42:01.159> say<01:42:01.440> initial 01:42:02.070 --> 01:42:02.080 align:start position:0% initial of state so we can say initial 01:42:02.080 --> 01:42:06.270 align:start position:0% initial of state so we can say initial undor<01:42:02.679> state<01:42:03.480> is<01:42:03.719> equal<01:42:04.040> to<01:42:04.840> an<01:42:05.159> object<01:42:06.080> where 01:42:06.270 --> 01:42:06.280 align:start position:0% undor state is equal to an object where 01:42:06.280 --> 01:42:10.149 align:start position:0% undor state is equal to an object where the<01:42:06.440> user<01:42:07.080> is<01:42:07.320> equal<01:42:07.639> to<01:42:07.840> the<01:42:08.000> initial<01:42:08.840> user<01:42:09.840> is 01:42:10.149 --> 01:42:10.159 align:start position:0% the user is equal to the initial user is 01:42:10.159 --> 01:42:14.270 align:start position:0% the user is equal to the initial user is loading<01:42:10.880> is<01:42:11.119> set<01:42:11.480> to<01:42:11.719> false<01:42:12.599> is<01:42:13.280> authenticated 01:42:14.270 --> 01:42:14.280 align:start position:0% loading is set to false is authenticated 01:42:14.280 --> 01:42:16.790 align:start position:0% loading is set to false is authenticated is<01:42:14.480> by<01:42:14.800> default<01:42:15.119> set<01:42:15.320> to<01:42:15.599> false<01:42:16.599> and<01:42:16.719> then 01:42:16.790 --> 01:42:16.800 align:start position:0% is by default set to false and then 01:42:16.800 --> 01:42:18.470 align:start position:0% is by default set to false and then we're<01:42:16.960> going<01:42:17.040> to<01:42:17.199> also<01:42:17.520> have<01:42:17.719> the<01:42:17.880> function<01:42:18.239> to 01:42:18.470 --> 01:42:18.480 align:start position:0% we're going to also have the function to 01:42:18.480 --> 01:42:21.870 align:start position:0% we're going to also have the function to set<01:42:18.840> the<01:42:18.960> authenticated<01:42:19.639> user<01:42:20.520> so<01:42:20.920> set<01:42:21.159> user 01:42:21.870 --> 01:42:21.880 align:start position:0% set the authenticated user so set user 01:42:21.880 --> 01:42:24.310 align:start position:0% set the authenticated user so set user is<01:42:22.080> equal<01:42:22.360> to<01:42:22.520> a<01:42:22.679> function<01:42:23.560> set<01:42:24.040> is 01:42:24.310 --> 01:42:24.320 align:start position:0% is equal to a function set is 01:42:24.320 --> 01:42:26.229 align:start position:0% is equal to a function set is authenticated<01:42:25.280> this<01:42:25.360> is<01:42:25.480> for<01:42:25.679> setting<01:42:25.960> up<01:42:26.119> a 01:42:26.229 --> 01:42:26.239 align:start position:0% authenticated this is for setting up a 01:42:26.239 --> 01:42:28.390 align:start position:0% authenticated this is for setting up a Boolean<01:42:26.800> value<01:42:27.520> which<01:42:27.639> is<01:42:27.800> also<01:42:28.040> going<01:42:28.159> to<01:42:28.320> be 01:42:28.390 --> 01:42:28.400 align:start position:0% Boolean value which is also going to be 01:42:28.400 --> 01:42:30.750 align:start position:0% Boolean value which is also going to be a<01:42:28.560> function<01:42:29.560> and<01:42:29.800> then<01:42:30.159> we're<01:42:30.320> going<01:42:30.440> to<01:42:30.560> have 01:42:30.750 --> 01:42:30.760 align:start position:0% a function and then we're going to have 01:42:30.760 --> 01:42:33.830 align:start position:0% a function and then we're going to have a<01:42:30.920> check<01:42:31.599> off<01:42:32.119> user<01:42:33.000> which<01:42:33.119> is<01:42:33.239> going<01:42:33.400> to<01:42:33.520> be<01:42:33.639> an 01:42:33.830 --> 01:42:33.840 align:start position:0% a check off user which is going to be an 01:42:33.840 --> 01:42:36.950 align:start position:0% a check off user which is going to be an async<01:42:34.440> function<01:42:35.440> that's<01:42:35.639> going<01:42:35.760> to<01:42:36.119> return 01:42:36.950 --> 01:42:36.960 align:start position:0% async function that's going to return 01:42:36.960 --> 01:42:39.910 align:start position:0% async function that's going to return either<01:42:37.199> a<01:42:37.440> false<01:42:38.239> or<01:42:38.560> a<01:42:38.800> true<01:42:39.480> which<01:42:39.639> is<01:42:39.760> a 01:42:39.910 --> 01:42:39.920 align:start position:0% either a false or a true which is a 01:42:39.920 --> 01:42:44.070 align:start position:0% either a false or a true which is a Boolean<01:42:40.440> value<01:42:41.400> just<01:42:41.920> like<01:42:42.400> so<01:42:43.400> why<01:42:43.599> we<01:42:43.800> have 01:42:44.070 --> 01:42:44.080 align:start position:0% Boolean value just like so why we have 01:42:44.080 --> 01:42:46.310 align:start position:0% Boolean value just like so why we have this<01:42:44.480> to<01:42:44.800> know<01:42:45.199> whether<01:42:45.400> we<01:42:45.560> have<01:42:45.679> a<01:42:45.840> logged<01:42:46.119> in 01:42:46.310 --> 01:42:46.320 align:start position:0% this to know whether we have a logged in 01:42:46.320 --> 01:42:49.709 align:start position:0% this to know whether we have a logged in user<01:42:46.800> at<01:42:47.000> all<01:42:47.480> times<01:42:48.480> and<01:42:48.679> now<01:42:49.000> we<01:42:49.119> can<01:42:49.320> declare 01:42:49.709 --> 01:42:49.719 align:start position:0% user at all times and now we can declare 01:42:49.719 --> 01:42:52.390 align:start position:0% user at all times and now we can declare our<01:42:50.000> context<01:42:50.599> but<01:42:50.760> by<01:42:50.880> saying<01:42:51.199> const<01:42:51.920> O 01:42:52.390 --> 01:42:52.400 align:start position:0% our context but by saying const O 01:42:52.400 --> 01:42:56.149 align:start position:0% our context but by saying const O context<01:42:53.239> is<01:42:53.480> equal<01:42:53.800> to<01:42:54.400> create<01:42:55.040> context<01:42:56.040> we 01:42:56.149 --> 01:42:56.159 align:start position:0% context is equal to create context we 01:42:56.159 --> 01:42:58.470 align:start position:0% context is equal to create context we can<01:42:56.320> Define<01:42:56.639> the<01:42:56.880> type<01:42:57.199> of<01:42:57.360> that<01:42:57.679> context<01:42:58.320> by 01:42:58.470 --> 01:42:58.480 align:start position:0% can Define the type of that context by 01:42:58.480 --> 01:43:00.550 align:start position:0% can Define the type of that context by providing<01:42:59.000> this<01:42:59.199> syntax<01:43:00.199> and<01:43:00.360> then 01:43:00.550 --> 01:43:00.560 align:start position:0% providing this syntax and then 01:43:00.560 --> 01:43:03.430 align:start position:0% providing this syntax and then referencing<01:43:01.159> the<01:43:01.400> I<01:43:01.920> context<01:43:02.480> type<01:43:03.159> which<01:43:03.280> is 01:43:03.430 --> 01:43:03.440 align:start position:0% referencing the I context type which is 01:43:03.440 --> 01:43:07.030 align:start position:0% referencing the I context type which is coming<01:43:03.719> from<01:43:04.199> addtype<01:43:05.400> if<01:43:06.400> you<01:43:06.560> look<01:43:06.760> into 01:43:07.030 --> 01:43:07.040 align:start position:0% coming from addtype if you look into 01:43:07.040 --> 01:43:09.229 align:start position:0% coming from addtype if you look into this<01:43:07.480> this<01:43:07.560> is<01:43:07.719> simply<01:43:08.040> declaring<01:43:08.520> the<01:43:08.719> types 01:43:09.229 --> 01:43:09.239 align:start position:0% this this is simply declaring the types 01:43:09.239 --> 01:43:10.870 align:start position:0% this this is simply declaring the types of<01:43:09.440> everything<01:43:09.760> we<01:43:09.920> have<01:43:10.080> now 01:43:10.870 --> 01:43:10.880 align:start position:0% of everything we have now 01:43:10.880 --> 01:43:13.950 align:start position:0% of everything we have now discussed<01:43:11.880> and<01:43:12.199> finally<01:43:12.760> we<01:43:12.880> need<01:43:13.040> to<01:43:13.199> set<01:43:13.480> it 01:43:13.950 --> 01:43:13.960 align:start position:0% discussed and finally we need to set it 01:43:13.960 --> 01:43:17.189 align:start position:0% discussed and finally we need to set it to<01:43:14.199> the<01:43:14.400> initial<01:43:15.440> State<01:43:16.440> now<01:43:16.760> instead<01:43:17.040> of 01:43:17.189 --> 01:43:17.199 align:start position:0% to the initial State now instead of 01:43:17.199 --> 01:43:19.750 align:start position:0% to the initial State now instead of calling<01:43:17.560> this<01:43:17.800> component<01:43:18.360> o<01:43:18.760> context<01:43:19.480> we<01:43:19.560> can 01:43:19.750 --> 01:43:19.760 align:start position:0% calling this component o context we can 01:43:19.760 --> 01:43:21.430 align:start position:0% calling this component o context we can call<01:43:20.000> it<01:43:20.199> o 01:43:21.430 --> 01:43:21.440 align:start position:0% call it o 01:43:21.440 --> 01:43:23.629 align:start position:0% call it o provider<01:43:22.440> because<01:43:22.760> that's<01:43:22.920> going<01:43:23.080> to<01:43:23.280> wrap 01:43:23.629 --> 01:43:23.639 align:start position:0% provider because that's going to wrap 01:43:23.639 --> 01:43:26.510 align:start position:0% provider because that's going to wrap our<01:43:23.880> entire<01:43:24.400> app<01:43:24.760> and<01:43:25.080> provide<01:43:25.760> the<01:43:26.000> access<01:43:26.320> to 01:43:26.510 --> 01:43:26.520 align:start position:0% our entire app and provide the access to 01:43:26.520 --> 01:43:29.350 align:start position:0% our entire app and provide the access to the<01:43:27.040> context<01:43:28.040> every<01:43:28.320> context<01:43:28.800> needs<01:43:29.000> to<01:43:29.159> have 01:43:29.350 --> 01:43:29.360 align:start position:0% the context every context needs to have 01:43:29.360 --> 01:43:32.149 align:start position:0% the context every context needs to have children<01:43:30.360> because<01:43:30.599> it<01:43:30.800> wraps<01:43:31.239> the<01:43:31.360> entire<01:43:31.760> app 01:43:32.149 --> 01:43:32.159 align:start position:0% children because it wraps the entire app 01:43:32.159 --> 01:43:34.709 align:start position:0% children because it wraps the entire app and<01:43:32.320> then<01:43:32.520> displays<01:43:33.080> whatever<01:43:33.400> is<01:43:33.639> within<01:43:33.880> it 01:43:34.709 --> 01:43:34.719 align:start position:0% and then displays whatever is within it 01:43:34.719 --> 01:43:37.189 align:start position:0% and then displays whatever is within it we<01:43:34.840> can<01:43:35.040> also<01:43:35.280> Define<01:43:35.599> the<01:43:35.840> type<01:43:36.159> of<01:43:36.320> children 01:43:37.189 --> 01:43:37.199 align:start position:0% we can also Define the type of children 01:43:37.199 --> 01:43:40.709 align:start position:0% we can also Define the type of children to<01:43:37.360> be<01:43:37.560> equal<01:43:37.840> to<01:43:38.239> a<01:43:38.679> react.<01:43:39.679> node<01:43:40.480> and<01:43:40.599> I 01:43:40.709 --> 01:43:40.719 align:start position:0% to be equal to a react. node and I 01:43:40.719 --> 01:43:42.709 align:start position:0% to be equal to a react. node and I believe<01:43:40.960> it's<01:43:41.159> called<01:43:41.480> react<01:43:42.000> node<01:43:42.480> so<01:43:42.599> we 01:43:42.709 --> 01:43:42.719 align:start position:0% believe it's called react node so we 01:43:42.719 --> 01:43:45.189 align:start position:0% believe it's called react node so we have<01:43:42.840> to<01:43:43.040> add<01:43:43.280> that<01:43:43.520> here<01:43:44.280> so<01:43:44.480> now<01:43:44.840> what<01:43:44.920> do<01:43:45.080> we 01:43:45.189 --> 01:43:45.199 align:start position:0% have to add that here so now what do we 01:43:45.199 --> 01:43:47.550 align:start position:0% have to add that here so now what do we do<01:43:45.560> right<01:43:45.760> here<01:43:46.159> within<01:43:46.440> it<01:43:46.960> well<01:43:47.159> we<01:43:47.239> want<01:43:47.360> to 01:43:47.550 --> 01:43:47.560 align:start position:0% do right here within it well we want to 01:43:47.560 --> 01:43:50.030 align:start position:0% do right here within it well we want to define<01:43:48.000> the<01:43:48.239> state<01:43:48.760> of<01:43:48.960> this<01:43:49.119> user<01:43:49.719> so<01:43:49.880> that's 01:43:50.030 --> 01:43:50.040 align:start position:0% define the state of this user so that's 01:43:50.040 --> 01:43:52.510 align:start position:0% define the state of this user so that's going<01:43:50.199> to<01:43:50.280> be<01:43:50.440> us<01:43:50.679> use<01:43:51.000> State<01:43:51.360> snippet<01:43:52.119> called 01:43:52.510 --> 01:43:52.520 align:start position:0% going to be us use State snippet called 01:43:52.520 --> 01:43:56.189 align:start position:0% going to be us use State snippet called user<01:43:53.239> set<01:43:53.639> user<01:43:54.159> as<01:43:54.360> well<01:43:55.159> and<01:43:55.360> at<01:43:55.520> the<01:43:55.719> start 01:43:56.189 --> 01:43:56.199 align:start position:0% user set user as well and at the start 01:43:56.199 --> 01:43:58.870 align:start position:0% user set user as well and at the start it's<01:43:56.400> going<01:43:56.560> to<01:43:56.679> be<01:43:56.920> equal<01:43:57.239> to<01:43:57.800> the<01:43:58.080> initial 01:43:58.870 --> 01:43:58.880 align:start position:0% it's going to be equal to the initial 01:43:58.880 --> 01:44:01.070 align:start position:0% it's going to be equal to the initial user<01:43:59.679> variable<01:44:00.159> that<01:44:00.280> we<01:44:00.400> have<01:44:00.560> declared 01:44:01.070 --> 01:44:01.080 align:start position:0% user variable that we have declared 01:44:01.080 --> 01:44:03.790 align:start position:0% user variable that we have declared before<01:44:01.840> and<01:44:01.960> we<01:44:02.040> can<01:44:02.280> also<01:44:02.560> give<01:44:02.679> it<01:44:02.920> a<01:44:03.159> context 01:44:03.790 --> 01:44:03.800 align:start position:0% before and we can also give it a context 01:44:03.800 --> 01:44:08.430 align:start position:0% before and we can also give it a context or<01:44:04.040> a<01:44:04.280> type<01:44:04.960> of<01:44:05.360> I<01:44:06.320> user<01:44:07.320> which<01:44:07.520> we<01:44:07.639> can<01:44:07.920> import 01:44:08.430 --> 01:44:08.440 align:start position:0% or a type of I user which we can import 01:44:08.440 --> 01:44:10.669 align:start position:0% or a type of I user which we can import from<01:44:08.880> types<01:44:09.760> so<01:44:09.960> this<01:44:10.040> is<01:44:10.239> just<01:44:10.360> so<01:44:10.520> our 01:44:10.669 --> 01:44:10.679 align:start position:0% from types so this is just so our 01:44:10.679 --> 01:44:13.030 align:start position:0% from types so this is just so our typescript<01:44:11.199> knows<01:44:11.679> exactly<01:44:12.239> how<01:44:12.440> our<01:44:12.599> user<01:44:12.880> is 01:44:13.030 --> 01:44:13.040 align:start position:0% typescript knows exactly how our user is 01:44:13.040 --> 01:44:14.830 align:start position:0% typescript knows exactly how our user is going<01:44:13.199> to<01:44:13.360> look<01:44:13.599> like<01:44:14.080> we're<01:44:14.239> going<01:44:14.360> to<01:44:14.480> also 01:44:14.830 --> 01:44:14.840 align:start position:0% going to look like we're going to also 01:44:14.840 --> 01:44:17.270 align:start position:0% going to look like we're going to also need<01:44:15.080> States<01:44:15.480> for<01:44:15.800> loading<01:44:16.639> so<01:44:16.760> we<01:44:16.880> can<01:44:17.000> say 01:44:17.270 --> 01:44:17.280 align:start position:0% need States for loading so we can say 01:44:17.280 --> 01:44:21.430 align:start position:0% need States for loading so we can say use<01:44:17.800> state<01:44:18.719> is<01:44:19.080> loading<01:44:20.080> set<01:44:20.440> is<01:44:20.639> is<01:44:20.800> loading 01:44:21.430 --> 01:44:21.440 align:start position:0% use state is loading set is is loading 01:44:21.440 --> 01:44:24.550 align:start position:0% use state is loading set is is loading so<01:44:21.599> we<01:44:21.679> can<01:44:21.880> write<01:44:22.119> here<01:44:22.639> declare<01:44:23.480> that<01:44:24.400> and 01:44:24.550 --> 01:44:24.560 align:start position:0% so we can write here declare that and 01:44:24.560 --> 01:44:27.229 align:start position:0% so we can write here declare that and then<01:44:24.800> at<01:44:24.960> the<01:44:25.119> start<01:44:25.440> it's<01:44:25.560> going<01:44:25.719> to<01:44:25.880> be<01:44:26.239> false 01:44:27.229 --> 01:44:27.239 align:start position:0% then at the start it's going to be false 01:44:27.239 --> 01:44:29.550 align:start position:0% then at the start it's going to be false and<01:44:27.360> we<01:44:27.480> can<01:44:27.639> repeat<01:44:28.040> this<01:44:28.199> as<01:44:28.360> well<01:44:28.880> for 01:44:29.550 --> 01:44:29.560 align:start position:0% and we can repeat this as well for 01:44:29.560 --> 01:44:31.750 align:start position:0% and we can repeat this as well for another<01:44:29.920> one<01:44:30.599> use 01:44:31.750 --> 01:44:31.760 align:start position:0% another one use 01:44:31.760 --> 01:44:35.950 align:start position:0% another one use state<01:44:32.760> which<01:44:32.880> is<01:44:33.040> going<01:44:33.199> to<01:44:33.360> be<01:44:33.960> is 01:44:35.950 --> 01:44:35.960 align:start position:0% state which is going to be is 01:44:35.960 --> 01:44:39.030 align:start position:0% state which is going to be is authenticated<01:44:36.960> set<01:44:37.400> is<01:44:37.880> authenticated<01:44:38.880> at 01:44:39.030 --> 01:44:39.040 align:start position:0% authenticated set is authenticated at 01:44:39.040 --> 01:44:41.270 align:start position:0% authenticated set is authenticated at the<01:44:39.159> start<01:44:39.520> set<01:44:39.760> to<01:44:39.960> false<01:44:40.560> because<01:44:40.840> we<01:44:41.000> don't 01:44:41.270 --> 01:44:41.280 align:start position:0% the start set to false because we don't 01:44:41.280 --> 01:44:44.270 align:start position:0% the start set to false because we don't yet<01:44:41.520> have<01:44:41.719> users<01:44:42.400> that<01:44:42.480> are<01:44:42.639> logged<01:44:43.159> in<01:44:44.159> what 01:44:44.270 --> 01:44:44.280 align:start position:0% yet have users that are logged in what 01:44:44.280 --> 01:44:46.229 align:start position:0% yet have users that are logged in what are<01:44:44.400> we<01:44:44.520> going<01:44:44.719> to<01:44:44.840> do<01:44:45.080> then<01:44:45.760> well<01:44:45.960> we're<01:44:46.119> going 01:44:46.229 --> 01:44:46.239 align:start position:0% are we going to do then well we're going 01:44:46.239 --> 01:44:49.109 align:start position:0% are we going to do then well we're going to<01:44:46.440> wrap<01:44:46.960> everything<01:44:47.560> in<01:44:47.679> our<01:44:47.880> o<01:44:48.280> context 01:44:49.109 --> 01:44:49.119 align:start position:0% to wrap everything in our o context 01:44:49.119 --> 01:44:52.830 align:start position:0% to wrap everything in our o context that's<01:44:49.280> going<01:44:49.440> to<01:44:49.599> look<01:44:49.840> like<01:44:50.080> this<01:44:50.840> of 01:44:52.830 --> 01:44:52.840 align:start position:0% that's going to look like this of 01:44:52.840 --> 01:44:56.109 align:start position:0% that's going to look like this of context.<01:44:53.880> provider<01:44:54.880> and<01:44:55.119> we<01:44:55.239> need<01:44:55.360> to<01:44:55.599> pass<01:44:55.800> it 01:44:56.109 --> 01:44:56.119 align:start position:0% context. provider and we need to pass it 01:44:56.119 --> 01:44:58.790 align:start position:0% context. provider and we need to pass it the<01:44:56.320> value<01:44:56.920> so<01:44:57.119> the<01:44:57.280> value<01:44:57.760> will<01:44:57.920> be<01:44:58.119> equal<01:44:58.520> to 01:44:58.790 --> 01:44:58.800 align:start position:0% the value so the value will be equal to 01:44:58.800 --> 01:45:01.390 align:start position:0% the value so the value will be equal to value<01:44:59.639> and<01:44:59.800> we<01:44:59.880> can<01:45:00.080> declare<01:45:01.040> what<01:45:01.159> we're 01:45:01.390 --> 01:45:01.400 align:start position:0% value and we can declare what we're 01:45:01.400 --> 01:45:03.430 align:start position:0% value and we can declare what we're passing<01:45:01.840> right<01:45:02.000> here<01:45:02.199> on<01:45:02.360> the<01:45:02.560> top<01:45:03.000> by<01:45:03.119> saying 01:45:03.430 --> 01:45:03.440 align:start position:0% passing right here on the top by saying 01:45:03.440 --> 01:45:06.149 align:start position:0% passing right here on the top by saying const<01:45:03.960> value<01:45:04.480> is<01:45:04.639> equal<01:45:04.880> to<01:45:05.040> an<01:45:05.239> object<01:45:05.960> that's 01:45:06.149 --> 01:45:06.159 align:start position:0% const value is equal to an object that's 01:45:06.159 --> 01:45:08.709 align:start position:0% const value is equal to an object that's going<01:45:06.280> to<01:45:06.440> have<01:45:06.639> the<01:45:06.840> user<01:45:07.840> the<01:45:08.040> set<01:45:08.360> user 01:45:08.709 --> 01:45:08.719 align:start position:0% going to have the user the set user 01:45:08.719 --> 01:45:11.270 align:start position:0% going to have the user the set user function<01:45:09.320> which<01:45:09.480> we<01:45:09.560> will<01:45:09.760> declare<01:45:10.159> soon<01:45:11.119> it's 01:45:11.270 --> 01:45:11.280 align:start position:0% function which we will declare soon it's 01:45:11.280 --> 01:45:13.790 align:start position:0% function which we will declare soon it's also<01:45:11.520> going<01:45:11.639> to<01:45:11.800> have<01:45:11.960> the<01:45:12.119> is<01:45:12.599> loading<01:45:13.599> it's 01:45:13.790 --> 01:45:13.800 align:start position:0% also going to have the is loading it's 01:45:13.800 --> 01:45:16.189 align:start position:0% also going to have the is loading it's going<01:45:13.960> to<01:45:14.119> have<01:45:14.320> the<01:45:14.599> is 01:45:16.189 --> 01:45:16.199 align:start position:0% going to have the is 01:45:16.199 --> 01:45:18.629 align:start position:0% going to have the is authenticated<01:45:17.199> it<01:45:17.320> will<01:45:17.560> have<01:45:17.800> the<01:45:18.040> set<01:45:18.440> is 01:45:18.629 --> 01:45:18.639 align:start position:0% authenticated it will have the set is 01:45:18.639 --> 01:45:21.350 align:start position:0% authenticated it will have the set is authenticated<01:45:19.360> as<01:45:19.520> well<01:45:20.639> and<01:45:20.800> it's<01:45:20.960> going<01:45:21.119> to 01:45:21.350 --> 01:45:21.360 align:start position:0% authenticated as well and it's going to 01:45:21.360 --> 01:45:24.910 align:start position:0% authenticated as well and it's going to have<01:45:21.679> a<01:45:21.880> function<01:45:22.320> called<01:45:22.719> check<01:45:23.400> o<01:45:23.920> user 01:45:24.910 --> 01:45:24.920 align:start position:0% have a function called check o user 01:45:24.920 --> 01:45:27.589 align:start position:0% have a function called check o user which<01:45:25.119> we<01:45:25.199> can<01:45:25.440> Define<01:45:26.119> right<01:45:26.360> here<01:45:26.960> const 01:45:27.589 --> 01:45:27.599 align:start position:0% which we can Define right here const 01:45:27.599 --> 01:45:32.030 align:start position:0% which we can Define right here const check<01:45:28.239> o<01:45:28.840> user<01:45:29.760> is<01:45:30.000> equal<01:45:30.360> to<01:45:31.040> a<01:45:31.280> function 01:45:32.030 --> 01:45:32.040 align:start position:0% check o user is equal to a function 01:45:32.040 --> 01:45:34.589 align:start position:0% check o user is equal to a function right<01:45:32.320> here<01:45:33.320> and<01:45:33.480> now<01:45:33.599> we're<01:45:33.920> passing<01:45:34.320> that 01:45:34.589 --> 01:45:34.599 align:start position:0% right here and now we're passing that 01:45:34.599 --> 01:45:37.629 align:start position:0% right here and now we're passing that value<01:45:35.159> to<01:45:35.360> our<01:45:35.719> provider<01:45:36.719> also<01:45:37.239> we<01:45:37.400> need<01:45:37.520> to 01:45:37.629 --> 01:45:37.639 align:start position:0% value to our provider also we need to 01:45:37.639 --> 01:45:40.430 align:start position:0% value to our provider also we need to render<01:45:38.000> the<01:45:38.119> children<01:45:38.760> within<01:45:39.040> it<01:45:39.560> right<01:45:39.760> here 01:45:40.430 --> 01:45:40.440 align:start position:0% render the children within it right here 01:45:40.440 --> 01:45:41.910 align:start position:0% render the children within it right here now<01:45:40.639> of<01:45:40.800> course<01:45:41.080> the<01:45:41.239> value<01:45:41.480> is<01:45:41.599> going<01:45:41.760> to 01:45:41.910 --> 01:45:41.920 align:start position:0% now of course the value is going to 01:45:41.920 --> 01:45:43.830 align:start position:0% now of course the value is going to complain<01:45:42.599> because<01:45:43.000> there's<01:45:43.199> going<01:45:43.360> to<01:45:43.480> be<01:45:43.639> a 01:45:43.830 --> 01:45:43.840 align:start position:0% complain because there's going to be a 01:45:43.840 --> 01:45:46.109 align:start position:0% complain because there's going to be a mismatch<01:45:44.520> between<01:45:44.840> the<01:45:45.000> types<01:45:45.679> but<01:45:45.880> we'll 01:45:46.109 --> 01:45:46.119 align:start position:0% mismatch between the types but we'll 01:45:46.119 --> 01:45:48.550 align:start position:0% mismatch between the types but we'll solve<01:45:46.480> that<01:45:46.679> really<01:45:46.920> soon<01:45:47.520> once<01:45:47.719> we<01:45:47.920> utilize 01:45:48.550 --> 01:45:48.560 align:start position:0% solve that really soon once we utilize 01:45:48.560 --> 01:45:51.310 align:start position:0% solve that really soon once we utilize the<01:45:48.760> check<01:45:49.239> off<01:45:49.599> user<01:45:50.000> function<01:45:50.719> so<01:45:51.040> what<01:45:51.159> is 01:45:51.310 --> 01:45:51.320 align:start position:0% the check off user function so what is 01:45:51.320 --> 01:45:53.229 align:start position:0% the check off user function so what is this<01:45:51.480> function<01:45:51.760> going<01:45:51.920> to<01:45:52.080> do<01:45:52.880> well<01:45:53.080> it's 01:45:53.229 --> 01:45:53.239 align:start position:0% this function going to do well it's 01:45:53.239 --> 01:45:55.830 align:start position:0% this function going to do well it's going<01:45:53.400> to<01:45:53.520> be<01:45:53.679> an<01:45:53.840> async<01:45:54.639> function<01:45:55.639> that's 01:45:55.830 --> 01:45:55.840 align:start position:0% going to be an async function that's 01:45:55.840 --> 01:45:59.510 align:start position:0% going to be an async function that's going<01:45:56.000> to<01:45:56.159> have<01:45:56.360> a<01:45:56.599> try<01:45:57.040> and<01:45:57.440> catch<01:45:58.320> Block<01:45:59.320> in 01:45:59.510 --> 01:45:59.520 align:start position:0% going to have a try and catch Block in 01:45:59.520 --> 01:46:04.030 align:start position:0% going to have a try and catch Block in the<01:45:59.719> catch<01:46:00.440> we<01:46:00.560> can<01:46:00.760> simply<01:46:01.119> say<01:46:01.840> console.<01:46:03.040> log 01:46:04.030 --> 01:46:04.040 align:start position:0% the catch we can simply say console. log 01:46:04.040 --> 01:46:06.910 align:start position:0% the catch we can simply say console. log error<01:46:04.840> and<01:46:05.000> we<01:46:05.080> can<01:46:05.360> return<01:46:05.599> a<01:46:05.760> false<01:46:06.480> meaning 01:46:06.910 --> 01:46:06.920 align:start position:0% error and we can return a false meaning 01:46:06.920 --> 01:46:09.390 align:start position:0% error and we can return a false meaning user<01:46:07.239> is<01:46:07.400> not<01:46:07.880> authenticated<01:46:08.880> we<01:46:08.960> can<01:46:09.119> also 01:46:09.390 --> 01:46:09.400 align:start position:0% user is not authenticated we can also 01:46:09.400 --> 01:46:12.629 align:start position:0% user is not authenticated we can also have<01:46:09.560> a<01:46:09.760> finally<01:46:10.639> clause<01:46:11.639> which<01:46:11.760> is<01:46:11.920> going<01:46:12.080> to 01:46:12.629 --> 01:46:12.639 align:start position:0% have a finally clause which is going to 01:46:12.639 --> 01:46:15.109 align:start position:0% have a finally clause which is going to set<01:46:13.000> is<01:46:13.239> loading<01:46:13.719> to<01:46:13.960> false<01:46:14.560> meaning<01:46:14.880> we're 01:46:15.109 --> 01:46:15.119 align:start position:0% set is loading to false meaning we're 01:46:15.119 --> 01:46:17.629 align:start position:0% set is loading to false meaning we're done<01:46:15.360> with<01:46:15.520> loading<01:46:16.280> but<01:46:16.440> in<01:46:16.560> the<01:46:16.760> try<01:46:17.320> we'll 01:46:17.629 --> 01:46:17.639 align:start position:0% done with loading but in the try we'll 01:46:17.639 --> 01:46:19.669 align:start position:0% done with loading but in the try we'll actually<01:46:18.040> try<01:46:18.520> to<01:46:18.760> get<01:46:18.920> to<01:46:19.119> the<01:46:19.280> currently 01:46:19.669 --> 01:46:19.679 align:start position:0% actually try to get to the currently 01:46:19.679 --> 01:46:21.950 align:start position:0% actually try to get to the currently logged<01:46:20.000> in<01:46:20.119> user<01:46:20.639> account<01:46:21.239> so<01:46:21.440> we<01:46:21.520> can<01:46:21.679> say 01:46:21.950 --> 01:46:21.960 align:start position:0% logged in user account so we can say 01:46:21.960 --> 01:46:27.629 align:start position:0% logged in user account so we can say const<01:46:22.920> current<01:46:23.719> account<01:46:24.719> is<01:46:25.040> equal<01:46:25.360> to<01:46:26.639> await 01:46:27.629 --> 01:46:27.639 align:start position:0% const current account is equal to await 01:46:27.639 --> 01:46:31.750 align:start position:0% const current account is equal to await get<01:46:28.480> current<01:46:29.400> user<01:46:30.400> and<01:46:30.679> this<01:46:30.920> is<01:46:31.080> a<01:46:31.320> function 01:46:31.750 --> 01:46:31.760 align:start position:0% get current user and this is a function 01:46:31.760 --> 01:46:35.070 align:start position:0% get current user and this is a function will<01:46:32.000> create<01:46:32.440> directly<01:46:33.199> within<01:46:33.639> aite<01:46:34.639> so 01:46:35.070 --> 01:46:35.080 align:start position:0% will create directly within aite so 01:46:35.080 --> 01:46:38.669 align:start position:0% will create directly within aite so let's<01:46:35.360> go<01:46:35.560> to<01:46:36.280> aite<01:46:37.280> API<01:46:37.960> that's<01:46:38.159> going<01:46:38.320> to<01:46:38.440> be 01:46:38.669 --> 01:46:38.679 align:start position:0% let's go to aite API that's going to be 01:46:38.679 --> 01:46:41.310 align:start position:0% let's go to aite API that's going to be right<01:46:38.920> here<01:46:39.599> and<01:46:39.719> let's<01:46:39.960> go<01:46:40.199> below<01:46:40.800> the<01:46:41.000> sign 01:46:41.310 --> 01:46:41.320 align:start position:0% right here and let's go below the sign 01:46:41.320 --> 01:46:46.629 align:start position:0% right here and let's go below the sign in<01:46:41.840> account<01:46:42.840> export<01:46:44.000> async<01:46:45.000> function<01:46:45.960> get 01:46:46.629 --> 01:46:46.639 align:start position:0% in account export async function get 01:46:46.639 --> 01:46:49.669 align:start position:0% in account export async function get current<01:46:47.440> user<01:46:48.280> and<01:46:48.480> we<01:46:48.560> can<01:46:48.719> open<01:46:49.000> up<01:46:49.199> a<01:46:49.360> try 01:46:49.669 --> 01:46:49.679 align:start position:0% current user and we can open up a try 01:46:49.679 --> 01:46:52.310 align:start position:0% current user and we can open up a try and<01:46:49.920> catch<01:46:50.159> block<01:46:50.400> block<01:46:50.880> as<01:46:51.000> we<01:46:51.199> always<01:46:51.480> do<01:46:52.159> in 01:46:52.310 --> 01:46:52.320 align:start position:0% and catch block block as we always do in 01:46:52.320 --> 01:46:56.709 align:start position:0% and catch block block as we always do in the<01:46:52.520> catch<01:46:53.320> simply<01:46:54.560> console.log<01:46:55.560> the<01:46:55.760> error 01:46:56.709 --> 01:46:56.719 align:start position:0% the catch simply console.log the error 01:46:56.719 --> 01:46:58.910 align:start position:0% the catch simply console.log the error and<01:46:57.000> here<01:46:57.360> we<01:46:57.480> can<01:46:57.599> say<01:46:57.880> const<01:46:58.360> current 01:46:58.910 --> 01:46:58.920 align:start position:0% and here we can say const current 01:46:58.920 --> 01:47:04.550 align:start position:0% and here we can say const current account<01:46:59.920> is<01:47:00.239> equal<01:47:00.599> to<01:47:01.639> await<01:47:02.880> account.<01:47:03.880> getet 01:47:04.550 --> 01:47:04.560 align:start position:0% account is equal to await account. getet 01:47:04.560 --> 01:47:07.030 align:start position:0% account is equal to await account. getet and<01:47:04.719> then<01:47:05.040> we<01:47:05.159> can<01:47:05.400> check<01:47:06.040> if<01:47:06.400> that<01:47:06.639> current 01:47:07.030 --> 01:47:07.040 align:start position:0% and then we can check if that current 01:47:07.040 --> 01:47:08.990 align:start position:0% and then we can check if that current account<01:47:07.320> doesn't<01:47:07.719> exist<01:47:08.400> we<01:47:08.480> can<01:47:08.679> simply 01:47:08.990 --> 01:47:09.000 align:start position:0% account doesn't exist we can simply 01:47:09.000 --> 01:47:11.830 align:start position:0% account doesn't exist we can simply throw<01:47:09.239> a<01:47:09.400> new<01:47:09.599> error<01:47:10.520> but<01:47:10.760> if<01:47:10.880> it<01:47:11.040> does<01:47:11.360> exist 01:47:11.830 --> 01:47:11.840 align:start position:0% throw a new error but if it does exist 01:47:11.840 --> 01:47:14.030 align:start position:0% throw a new error but if it does exist we<01:47:11.920> can<01:47:12.080> try<01:47:12.280> to<01:47:12.480> retrieve<01:47:13.320> that<01:47:13.599> current 01:47:14.030 --> 01:47:14.040 align:start position:0% we can try to retrieve that current 01:47:14.040 --> 01:47:17.910 align:start position:0% we can try to retrieve that current account<01:47:14.800> by<01:47:14.960> saying<01:47:15.360> const<01:47:16.199> current<01:47:16.639> user<01:47:17.639> is 01:47:17.910 --> 01:47:17.920 align:start position:0% account by saying const current user is 01:47:17.920 --> 01:47:20.830 align:start position:0% account by saying const current user is equal<01:47:18.239> to<01:47:18.840> a<01:47:19.119> wait<01:47:19.920> datab 01:47:20.830 --> 01:47:20.840 align:start position:0% equal to a wait datab 01:47:20.840 --> 01:47:24.790 align:start position:0% equal to a wait datab bases.<01:47:21.840> list<01:47:22.960> documents<01:47:23.960> so<01:47:24.199> here<01:47:24.400> we<01:47:24.520> need<01:47:24.639> to 01:47:24.790 --> 01:47:24.800 align:start position:0% bases. list documents so here we need to 01:47:24.800 --> 01:47:26.830 align:start position:0% bases. list documents so here we need to pass<01:47:25.000> the<01:47:25.159> database<01:47:25.639> ID<01:47:26.280> from<01:47:26.480> which<01:47:26.639> we<01:47:26.719> want 01:47:26.830 --> 01:47:26.840 align:start position:0% pass the database ID from which we want 01:47:26.840 --> 01:47:28.790 align:start position:0% pass the database ID from which we want to<01:47:27.000> read<01:47:27.560> The<01:47:27.719> Collection<01:47:28.119> ID<01:47:28.440> from<01:47:28.599> which<01:47:28.719> we 01:47:28.790 --> 01:47:28.800 align:start position:0% to read The Collection ID from which we 01:47:28.800 --> 01:47:30.910 align:start position:0% to read The Collection ID from which we want<01:47:28.920> to<01:47:29.080> read<01:47:29.639> and<01:47:29.760> then<01:47:29.920> the<01:47:30.080> query<01:47:30.639> of<01:47:30.800> what 01:47:30.910 --> 01:47:30.920 align:start position:0% want to read and then the query of what 01:47:30.920 --> 01:47:32.870 align:start position:0% want to read and then the query of what we're<01:47:31.080> trying<01:47:31.320> to<01:47:31.480> fetch<01:47:32.119> so<01:47:32.280> we<01:47:32.400> need<01:47:32.520> to<01:47:32.679> get 01:47:32.870 --> 01:47:32.880 align:start position:0% we're trying to fetch so we need to get 01:47:32.880 --> 01:47:35.550 align:start position:0% we're trying to fetch so we need to get a<01:47:33.040> list<01:47:33.320> of<01:47:33.480> all<01:47:33.760> user<01:47:34.199> documents<01:47:34.679> in<01:47:34.800> a<01:47:34.960> given 01:47:35.550 --> 01:47:35.560 align:start position:0% a list of all user documents in a given 01:47:35.560 --> 01:47:37.910 align:start position:0% a list of all user documents in a given collection<01:47:36.560> first<01:47:36.920> we<01:47:37.000> need<01:47:37.159> to<01:47:37.360> pass<01:47:37.679> the 01:47:37.910 --> 01:47:37.920 align:start position:0% collection first we need to pass the 01:47:37.920 --> 01:47:40.109 align:start position:0% collection first we need to pass the aite 01:47:40.109 --> 01:47:40.119 align:start position:0% aite 01:47:40.119 --> 01:47:43.910 align:start position:0% aite config<01:47:41.119> database<01:47:42.000> ID<01:47:43.000> then<01:47:43.199> we<01:47:43.320> need<01:47:43.480> to<01:47:43.639> pass 01:47:43.910 --> 01:47:43.920 align:start position:0% config database ID then we need to pass 01:47:43.920 --> 01:47:48.950 align:start position:0% config database ID then we need to pass the<01:47:44.080> app<01:47:44.840> config<01:47:45.840> do<01:47:46.320> user<01:47:47.000> collection<01:47:47.800> ID<01:47:48.800> and 01:47:48.950 --> 01:47:48.960 align:start position:0% the app config do user collection ID and 01:47:48.960 --> 01:47:50.709 align:start position:0% the app config do user collection ID and then<01:47:49.119> we<01:47:49.239> need<01:47:49.360> to<01:47:49.599> pass<01:47:50.000> what<01:47:50.320> we're<01:47:50.480> trying 01:47:50.709 --> 01:47:50.719 align:start position:0% then we need to pass what we're trying 01:47:50.719 --> 01:47:53.870 align:start position:0% then we need to pass what we're trying to<01:47:50.880> fetch<01:47:51.840> which<01:47:52.000> is<01:47:52.199> a<01:47:52.440> query<01:47:53.119> of<01:47:53.280> a<01:47:53.480> type 01:47:53.870 --> 01:47:53.880 align:start position:0% to fetch which is a query of a type 01:47:53.880 --> 01:47:56.270 align:start position:0% to fetch which is a query of a type array<01:47:54.880> so<01:47:55.040> we<01:47:55.159> can<01:47:55.280> say 01:47:56.270 --> 01:47:56.280 align:start position:0% array so we can say 01:47:56.280 --> 01:47:59.430 align:start position:0% array so we can say query.<01:47:57.280> equal<01:47:57.960> we<01:47:58.119> want<01:47:58.320> to<01:47:58.440> get<01:47:58.599> the<01:47:58.800> account 01:47:59.430 --> 01:47:59.440 align:start position:0% query. equal we want to get the account 01:47:59.440 --> 01:48:03.070 align:start position:0% query. equal we want to get the account ID<01:48:00.440> and<01:48:00.679> we<01:48:00.800> want<01:48:00.960> to<01:48:01.159> get<01:48:01.520> only<01:48:01.880> the<01:48:02.080> current 01:48:03.070 --> 01:48:03.080 align:start position:0% ID and we want to get only the current 01:48:03.080 --> 01:48:07.310 align:start position:0% ID and we want to get only the current account<01:48:04.080> do<01:48:04.560> dollar<01:48:04.960> sign<01:48:05.280> ID<01:48:06.280> and<01:48:06.480> this<01:48:06.639> query 01:48:07.310 --> 01:48:07.320 align:start position:0% account do dollar sign ID and this query 01:48:07.320 --> 01:48:10.070 align:start position:0% account do dollar sign ID and this query is<01:48:07.560> coming<01:48:07.960> from<01:48:08.520> aight<01:48:09.199> so<01:48:09.360> we<01:48:09.440> can<01:48:09.599> import<01:48:09.920> it 01:48:10.070 --> 01:48:10.080 align:start position:0% is coming from aight so we can import it 01:48:10.080 --> 01:48:12.270 align:start position:0% is coming from aight so we can import it at<01:48:10.199> the<01:48:10.400> top<01:48:11.080> finally<01:48:11.520> we<01:48:11.639> can<01:48:11.760> do<01:48:11.960> another 01:48:12.270 --> 01:48:12.280 align:start position:0% at the top finally we can do another 01:48:12.280 --> 01:48:14.669 align:start position:0% at the top finally we can do another check<01:48:12.760> saying<01:48:13.159> if<01:48:13.400> there's<01:48:13.719> no<01:48:14.280> current 01:48:14.669 --> 01:48:14.679 align:start position:0% check saying if there's no current 01:48:14.679 --> 01:48:16.750 align:start position:0% check saying if there's no current account<01:48:15.119> or<01:48:15.360> current<01:48:15.639> user<01:48:16.040> this<01:48:16.239> time<01:48:16.599> we're 01:48:16.750 --> 01:48:16.760 align:start position:0% account or current user this time we're 01:48:16.760 --> 01:48:18.790 align:start position:0% account or current user this time we're going<01:48:16.880> to<01:48:16.960> throw<01:48:17.159> an<01:48:17.320> error<01:48:18.119> but<01:48:18.320> if<01:48:18.440> we<01:48:18.639> have 01:48:18.790 --> 01:48:18.800 align:start position:0% going to throw an error but if we have 01:48:18.800 --> 01:48:21.229 align:start position:0% going to throw an error but if we have it<01:48:19.239> we<01:48:19.360> can<01:48:19.679> return<01:48:20.040> a<01:48:20.400> current 01:48:21.229 --> 01:48:21.239 align:start position:0% it we can return a current 01:48:21.239 --> 01:48:24.030 align:start position:0% it we can return a current user.<01:48:22.440> documents 01:48:24.030 --> 01:48:24.040 align:start position:0% user. documents 01:48:24.040 --> 01:48:27.229 align:start position:0% user. documents zero<01:48:25.040> there<01:48:25.199> we<01:48:25.400> go<01:48:26.000> so<01:48:26.199> now<01:48:26.400> we<01:48:26.560> have<01:48:26.719> the<01:48:26.960> get 01:48:27.229 --> 01:48:27.239 align:start position:0% zero there we go so now we have the get 01:48:27.239 --> 01:48:29.950 align:start position:0% zero there we go so now we have the get current<01:48:27.599> user<01:48:28.239> function<01:48:29.159> which<01:48:29.360> we<01:48:29.480> can<01:48:29.679> now 01:48:29.950 --> 01:48:29.960 align:start position:0% current user function which we can now 01:48:29.960 --> 01:48:33.070 align:start position:0% current user function which we can now use<01:48:30.560> within<01:48:30.840> our<01:48:31.080> OD<01:48:31.480> context<01:48:32.440> by<01:48:32.679> simply 01:48:33.070 --> 01:48:33.080 align:start position:0% use within our OD context by simply 01:48:33.080 --> 01:48:37.510 align:start position:0% use within our OD context by simply importing<01:48:33.560> it<01:48:33.840> from<01:48:34.080> lib<01:48:34.599> ight<01:48:35.679> API<01:48:36.679> so<01:48:37.000> here 01:48:37.510 --> 01:48:37.520 align:start position:0% importing it from lib ight API so here 01:48:37.520 --> 01:48:40.550 align:start position:0% importing it from lib ight API so here now<01:48:37.719> we<01:48:37.880> check<01:48:38.320> if<01:48:39.000> the<01:48:39.159> current<01:48:39.560> account 01:48:40.550 --> 01:48:40.560 align:start position:0% now we check if the current account 01:48:40.560 --> 01:48:43.910 align:start position:0% now we check if the current account exists<01:48:41.560> in<01:48:41.800> that<01:48:42.080> case<01:48:42.480> we<01:48:42.599> want<01:48:42.760> to<01:48:43.040> set<01:48:43.440> our 01:48:43.910 --> 01:48:43.920 align:start position:0% exists in that case we want to set our 01:48:43.920 --> 01:48:46.629 align:start position:0% exists in that case we want to set our user<01:48:44.520> so<01:48:44.679> we<01:48:44.760> can<01:48:44.880> say<01:48:45.119> set<01:48:45.440> user<01:48:46.280> and<01:48:46.400> then<01:48:46.520> we 01:48:46.629 --> 01:48:46.639 align:start position:0% user so we can say set user and then we 01:48:46.639 --> 01:48:49.189 align:start position:0% user so we can say set user and then we set<01:48:46.880> the<01:48:47.040> ID<01:48:47.639> to<01:48:47.800> be<01:48:48.000> equal<01:48:48.280> to<01:48:48.440> the<01:48:48.599> current 01:48:49.189 --> 01:48:49.199 align:start position:0% set the ID to be equal to the current 01:48:49.199 --> 01:48:53.350 align:start position:0% set the ID to be equal to the current account<01:48:50.520> dollar<01:48:50.840> sign<01:48:51.360> ID<01:48:52.360> the<01:48:52.560> name<01:48:52.960> to<01:48:53.159> be 01:48:53.350 --> 01:48:53.360 align:start position:0% account dollar sign ID the name to be 01:48:53.360 --> 01:48:57.390 align:start position:0% account dollar sign ID the name to be current 01:48:57.390 --> 01:48:57.400 align:start position:0% 01:48:57.400 --> 01:48:59.950 align:start position:0% accountname<01:48:58.400> username<01:48:59.159> to<01:48:59.360> be<01:48:59.520> equal<01:48:59.800> to 01:48:59.950 --> 01:48:59.960 align:start position:0% accountname username to be equal to 01:48:59.960 --> 01:49:02.950 align:start position:0% accountname username to be equal to current<01:49:00.360> account. 01:49:02.950 --> 01:49:02.960 align:start position:0% current account. 01:49:02.960 --> 01:49:05.830 align:start position:0% current account. username<01:49:03.960> email<01:49:04.599> to<01:49:04.800> be<01:49:05.000> equal<01:49:05.280> to<01:49:05.480> current 01:49:05.830 --> 01:49:05.840 align:start position:0% username email to be equal to current 01:49:05.840 --> 01:49:09.350 align:start position:0% username email to be equal to current account.<01:49:06.560> email<01:49:07.560> image<01:49:07.880> URL<01:49:08.440> to<01:49:08.639> be<01:49:08.800> equal<01:49:09.080> to 01:49:09.350 --> 01:49:09.360 align:start position:0% account. email image URL to be equal to 01:49:09.360 --> 01:49:12.550 align:start position:0% account. email image URL to be equal to current<01:49:09.760> account<01:49:10.639> dot<01:49:11.639> that's<01:49:11.840> going<01:49:12.040> to<01:49:12.199> be 01:49:12.550 --> 01:49:12.560 align:start position:0% current account dot that's going to be 01:49:12.560 --> 01:49:15.950 align:start position:0% current account dot that's going to be image<01:49:13.360> URL<01:49:14.360> and<01:49:14.480> then<01:49:14.719> bio<01:49:15.159> to<01:49:15.320> be<01:49:15.520> equal<01:49:15.760> to 01:49:15.950 --> 01:49:15.960 align:start position:0% image URL and then bio to be equal to 01:49:15.960 --> 01:49:19.310 align:start position:0% image URL and then bio to be equal to current<01:49:16.320> account.<01:49:17.679> bio<01:49:18.679> of<01:49:18.840> course<01:49:19.080> what<01:49:19.199> you 01:49:19.310 --> 01:49:19.320 align:start position:0% current account. bio of course what you 01:49:19.320 --> 01:49:20.510 align:start position:0% current account. bio of course what you could<01:49:19.440> have<01:49:19.599> done<01:49:19.840> is<01:49:20.199> you<01:49:20.280> could<01:49:20.360> have 01:49:20.510 --> 01:49:20.520 align:start position:0% could have done is you could have 01:49:20.520 --> 01:49:23.470 align:start position:0% could have done is you could have destructured<01:49:21.400> all<01:49:21.560> of<01:49:21.760> these<01:49:22.040> values<01:49:22.880> from 01:49:23.470 --> 01:49:23.480 align:start position:0% destructured all of these values from 01:49:23.480 --> 01:49:25.950 align:start position:0% destructured all of these values from the<01:49:23.599> current<01:49:24.000> account<01:49:24.800> right<01:49:25.080> here<01:49:25.560> by<01:49:25.679> using 01:49:25.950 --> 01:49:25.960 align:start position:0% the current account right here by using 01:49:25.960 --> 01:49:27.910 align:start position:0% the current account right here by using the<01:49:26.080> destructuring<01:49:26.760> assignment<01:49:27.639> and<01:49:27.760> then 01:49:27.910 --> 01:49:27.920 align:start position:0% the destructuring assignment and then 01:49:27.920 --> 01:49:31.109 align:start position:0% the destructuring assignment and then pasting<01:49:28.320> them<01:49:29.000> here<01:49:30.000> you<01:49:30.159> also<01:49:30.360> need<01:49:30.520> to<01:49:30.760> add 01:49:31.109 --> 01:49:31.119 align:start position:0% pasting them here you also need to add 01:49:31.119 --> 01:49:32.830 align:start position:0% pasting them here you also need to add commas<01:49:31.719> to<01:49:31.880> the 01:49:32.830 --> 01:49:32.840 align:start position:0% commas to the 01:49:32.840 --> 01:49:36.149 align:start position:0% commas to the end<01:49:33.840> and<01:49:34.040> if<01:49:34.159> you<01:49:34.320> did<01:49:34.599> that<01:49:35.400> you<01:49:35.520> can<01:49:35.719> also<01:49:35.960> put 01:49:36.149 --> 01:49:36.159 align:start position:0% end and if you did that you can also put 01:49:36.159 --> 01:49:38.189 align:start position:0% end and if you did that you can also put it<01:49:36.280> all<01:49:36.440> in<01:49:36.639> one<01:49:36.840> line<01:49:37.320> as<01:49:37.440> it's<01:49:37.639> not<01:49:37.840> taking 01:49:38.189 --> 01:49:38.199 align:start position:0% it all in one line as it's not taking 01:49:38.199 --> 01:49:39.470 align:start position:0% it all in one line as it's not taking too<01:49:38.400> much 01:49:39.470 --> 01:49:39.480 align:start position:0% too much 01:49:39.480 --> 01:49:42.189 align:start position:0% too much space<01:49:40.480> and<01:49:40.639> now<01:49:40.960> you<01:49:41.119> don't<01:49:41.360> have<01:49:41.480> to<01:49:41.599> mention 01:49:42.189 --> 01:49:42.199 align:start position:0% space and now you don't have to mention 01:49:42.199 --> 01:49:45.109 align:start position:0% space and now you don't have to mention current<01:49:42.599> account<01:49:43.239> every<01:49:43.639> single<01:49:44.000> time<01:49:44.960> so 01:49:45.109 --> 01:49:45.119 align:start position:0% current account every single time so 01:49:45.119 --> 01:49:46.950 align:start position:0% current account every single time so it's<01:49:45.239> going<01:49:45.400> to<01:49:45.560> look<01:49:45.920> a<01:49:46.040> bit<01:49:46.239> cleaner<01:49:46.719> like 01:49:46.950 --> 01:49:46.960 align:start position:0% it's going to look a bit cleaner like 01:49:46.960 --> 01:49:49.830 align:start position:0% it's going to look a bit cleaner like this<01:49:47.760> and<01:49:47.920> for<01:49:48.199> other<01:49:48.520> properties<01:49:49.440> you<01:49:49.599> don't 01:49:49.830 --> 01:49:49.840 align:start position:0% this and for other properties you don't 01:49:49.840 --> 01:49:52.470 align:start position:0% this and for other properties you don't even<01:49:50.280> have<01:49:50.440> to<01:49:50.679> say<01:49:51.400> what<01:49:51.560> it<01:49:51.719> is<01:49:52.040> if<01:49:52.159> the<01:49:52.280> name 01:49:52.470 --> 01:49:52.480 align:start position:0% even have to say what it is if the name 01:49:52.480 --> 01:49:54.750 align:start position:0% even have to say what it is if the name is<01:49:52.679> the<01:49:52.800> same<01:49:53.440> which<01:49:53.560> in<01:49:53.719> all<01:49:53.880> of<01:49:54.080> these<01:49:54.280> cases 01:49:54.750 --> 01:49:54.760 align:start position:0% is the same which in all of these cases 01:49:54.760 --> 01:49:58.390 align:start position:0% is the same which in all of these cases is<01:49:55.239> so<01:49:55.400> you<01:49:55.520> can<01:49:55.719> simply<01:49:56.119> keep<01:49:56.639> the<01:49:56.840> key<01:49:57.400> name 01:49:58.390 --> 01:49:58.400 align:start position:0% is so you can simply keep the key name 01:49:58.400 --> 01:50:00.189 align:start position:0% is so you can simply keep the key name here<01:49:58.719> since<01:49:58.920> we<01:49:59.040> no<01:49:59.199> longer<01:49:59.560> have<01:49:59.800> access<01:50:00.040> to 01:50:00.189 --> 01:50:00.199 align:start position:0% here since we no longer have access to 01:50:00.199 --> 01:50:02.149 align:start position:0% here since we no longer have access to the<01:50:00.360> entire<01:50:00.719> current<01:50:01.119> account<01:50:01.760> we<01:50:01.880> can<01:50:02.000> just 01:50:02.149 --> 01:50:02.159 align:start position:0% the entire current account we can just 01:50:02.159 --> 01:50:03.270 align:start position:0% the entire current account we can just refer<01:50:02.480> to<01:50:02.599> the 01:50:03.270 --> 01:50:03.280 align:start position:0% refer to the 01:50:03.280 --> 01:50:06.550 align:start position:0% refer to the ID<01:50:04.280> and<01:50:04.440> then<01:50:04.800> all<01:50:05.000> of<01:50:05.199> this<01:50:05.440> also<01:50:05.719> fits<01:50:06.119> in<01:50:06.280> one 01:50:06.550 --> 01:50:06.560 align:start position:0% ID and then all of this also fits in one 01:50:06.560 --> 01:50:08.790 align:start position:0% ID and then all of this also fits in one line<01:50:06.920> so<01:50:07.080> we<01:50:07.199> can<01:50:07.320> put<01:50:07.520> it<01:50:07.639> in<01:50:07.760> one<01:50:08.040> line<01:50:08.520> like 01:50:08.790 --> 01:50:08.800 align:start position:0% line so we can put it in one line like 01:50:08.800 --> 01:50:12.270 align:start position:0% line so we can put it in one line like so<01:50:09.800> this<01:50:09.960> is<01:50:10.280> in<01:50:10.480> my<01:50:10.719> opinion<01:50:11.119> a<01:50:11.239> bit<01:50:11.480> easier<01:50:11.800> to 01:50:12.270 --> 01:50:12.280 align:start position:0% so this is in my opinion a bit easier to 01:50:12.280 --> 01:50:14.310 align:start position:0% so this is in my opinion a bit easier to understand<01:50:12.560> what<01:50:12.679> we're<01:50:12.880> doing<01:50:13.760> but<01:50:14.080> we<01:50:14.199> have 01:50:14.310 --> 01:50:14.320 align:start position:0% understand what we're doing but we have 01:50:14.320 --> 01:50:16.229 align:start position:0% understand what we're doing but we have to<01:50:14.440> be<01:50:14.599> careful<01:50:15.199> and<01:50:15.360> typescript<01:50:15.880> comes<01:50:16.000> in 01:50:16.229 --> 01:50:16.239 align:start position:0% to be careful and typescript comes in 01:50:16.239 --> 01:50:18.189 align:start position:0% to be careful and typescript comes in really<01:50:16.520> handy<01:50:16.880> here<01:50:17.320> if<01:50:17.480> I<01:50:17.599> wasn't<01:50:17.880> using 01:50:18.189 --> 01:50:18.199 align:start position:0% really handy here if I wasn't using 01:50:18.199 --> 01:50:20.430 align:start position:0% really handy here if I wasn't using typescript<01:50:18.840> I<01:50:18.880> would<01:50:19.080> do<01:50:19.199> it<01:50:19.599> exactly<01:50:20.199> like 01:50:20.430 --> 01:50:20.440 align:start position:0% typescript I would do it exactly like 01:50:20.440 --> 01:50:22.750 align:start position:0% typescript I would do it exactly like this<01:50:21.080> I<01:50:21.199> would<01:50:21.400> destructure<01:50:22.040> everything<01:50:22.599> and 01:50:22.750 --> 01:50:22.760 align:start position:0% this I would destructure everything and 01:50:22.760 --> 01:50:25.270 align:start position:0% this I would destructure everything and get<01:50:22.920> the<01:50:23.199> values<01:50:24.199> but<01:50:24.400> if<01:50:24.480> you<01:50:24.639> read<01:50:24.920> this<01:50:25.080> in 01:50:25.270 --> 01:50:25.280 align:start position:0% get the values but if you read this in 01:50:25.280 --> 01:50:27.270 align:start position:0% get the values but if you read this in typescript<01:50:25.880> it's<01:50:26.000> going<01:50:26.159> to<01:50:26.280> say<01:50:26.639> property 01:50:27.270 --> 01:50:27.280 align:start position:0% typescript it's going to say property 01:50:27.280 --> 01:50:30.189 align:start position:0% typescript it's going to say property dollar<01:50:27.639> sign<01:50:28.040> ID<01:50:29.040> as<01:50:29.199> well<01:50:29.400> as<01:50:29.560> all<01:50:29.800> the<01:50:29.960> other 01:50:30.189 --> 01:50:30.199 align:start position:0% dollar sign ID as well as all the other 01:50:30.199 --> 01:50:34.070 align:start position:0% dollar sign ID as well as all the other ones<01:50:30.920> do<01:50:31.159> not<01:50:31.520> exist<01:50:31.960> on<01:50:32.199> type<01:50:32.560> document<01:50:33.280> or 01:50:34.070 --> 01:50:34.080 align:start position:0% ones do not exist on type document or 01:50:34.080 --> 01:50:36.350 align:start position:0% ones do not exist on type document or undefined<01:50:35.080> so<01:50:35.239> if<01:50:35.320> you<01:50:35.480> look<01:50:35.719> into<01:50:35.960> the<01:50:36.159> get 01:50:36.350 --> 01:50:36.360 align:start position:0% undefined so if you look into the get 01:50:36.360 --> 01:50:38.990 align:start position:0% undefined so if you look into the get current<01:50:36.679> user<01:50:37.440> you<01:50:37.560> can<01:50:37.760> notice<01:50:38.199> that<01:50:38.520> here 01:50:38.990 --> 01:50:39.000 align:start position:0% current user you can notice that here 01:50:39.000 --> 01:50:41.189 align:start position:0% current user you can notice that here it's<01:50:39.280> great<01:50:40.000> it's<01:50:40.159> returning<01:50:40.639> all<01:50:40.800> of<01:50:40.960> these 01:50:41.189 --> 01:50:41.199 align:start position:0% it's great it's returning all of these 01:50:41.199 --> 01:50:43.790 align:start position:0% it's great it's returning all of these values<01:50:42.199> but<01:50:42.400> in<01:50:42.520> the<01:50:42.760> catch<01:50:43.480> it's<01:50:43.639> not 01:50:43.790 --> 01:50:43.800 align:start position:0% values but in the catch it's not 01:50:43.800 --> 01:50:46.510 align:start position:0% values but in the catch it's not returning<01:50:44.360> anything<01:50:45.320> so<01:50:45.599> if<01:50:45.800> this<01:50:46.000> function 01:50:46.510 --> 01:50:46.520 align:start position:0% returning anything so if this function 01:50:46.520 --> 01:50:48.910 align:start position:0% returning anything so if this function fails<01:50:47.520> then<01:50:48.040> these<01:50:48.280> values<01:50:48.560> will<01:50:48.719> be 01:50:48.910 --> 01:50:48.920 align:start position:0% fails then these values will be 01:50:48.920 --> 01:50:51.750 align:start position:0% fails then these values will be undefined<01:50:49.800> and<01:50:50.040> and<01:50:50.119> they'll<01:50:50.400> cause<01:50:50.880> an<01:50:51.079> error 01:50:51.750 --> 01:50:51.760 align:start position:0% undefined and and they'll cause an error 01:50:51.760 --> 01:50:53.830 align:start position:0% undefined and and they'll cause an error so<01:50:52.000> in<01:50:52.239> this<01:50:52.480> case<01:50:52.679> to<01:50:52.840> make<01:50:53.000> our<01:50:53.239> application 01:50:53.830 --> 01:50:53.840 align:start position:0% so in this case to make our application 01:50:53.840 --> 01:50:56.149 align:start position:0% so in this case to make our application less<01:50:54.079> error<01:50:54.480> prone<01:50:55.199> I<01:50:55.280> would<01:50:55.560> actually<01:50:55.920> get 01:50:56.149 --> 01:50:56.159 align:start position:0% less error prone I would actually get 01:50:56.159 --> 01:50:58.229 align:start position:0% less error prone I would actually get back<01:50:56.400> a<01:50:56.599> bit<01:50:57.119> and<01:50:57.239> I<01:50:57.360> wouldn't<01:50:57.639> D<01:50:57.880> structure 01:50:58.229 --> 01:50:58.239 align:start position:0% back a bit and I wouldn't D structure 01:50:58.239 --> 01:51:00.510 align:start position:0% back a bit and I wouldn't D structure the<01:50:58.400> value<01:50:59.239> although<01:50:59.719> it's<01:50:59.880> taking<01:51:00.199> a<01:51:00.320> bit 01:51:00.510 --> 01:51:00.520 align:start position:0% the value although it's taking a bit 01:51:00.520 --> 01:51:02.910 align:start position:0% the value although it's taking a bit more<01:51:00.800> space<01:51:01.520> and<01:51:01.719> maybe<01:51:02.000> includes<01:51:02.360> a<01:51:02.520> bit<01:51:02.679> more 01:51:02.910 --> 01:51:02.920 align:start position:0% more space and maybe includes a bit more 01:51:02.920 --> 01:51:05.629 align:start position:0% more space and maybe includes a bit more words<01:51:03.679> I<01:51:03.800> would<01:51:03.960> still<01:51:04.199> keep<01:51:04.360> it<01:51:04.560> like<01:51:04.760> this 01:51:05.629 --> 01:51:05.639 align:start position:0% words I would still keep it like this 01:51:05.639 --> 01:51:07.990 align:start position:0% words I would still keep it like this sometimes<01:51:06.079> more<01:51:06.320> words<01:51:06.639> is<01:51:06.800> not<01:51:07.119> bad<01:51:07.679> if<01:51:07.800> your 01:51:07.990 --> 01:51:08.000 align:start position:0% sometimes more words is not bad if your 01:51:08.000 --> 01:51:10.910 align:start position:0% sometimes more words is not bad if your application<01:51:08.719> is<01:51:08.880> more<01:51:09.199> robust<01:51:10.199> finally<01:51:10.679> if<01:51:10.800> we 01:51:10.910 --> 01:51:10.920 align:start position:0% application is more robust finally if we 01:51:10.920 --> 01:51:13.470 align:start position:0% application is more robust finally if we get<01:51:11.079> to<01:51:11.320> here<01:51:11.760> once<01:51:11.960> we<01:51:12.119> set<01:51:12.280> our<01:51:12.440> user<01:51:13.119> we<01:51:13.239> can 01:51:13.470 --> 01:51:13.480 align:start position:0% get to here once we set our user we can 01:51:13.480 --> 01:51:15.870 align:start position:0% get to here once we set our user we can also<01:51:14.000> set<01:51:14.159> the<01:51:14.320> authenticated<01:51:15.040> status<01:51:15.639> to 01:51:15.870 --> 01:51:15.880 align:start position:0% also set the authenticated status to 01:51:15.880 --> 01:51:20.149 align:start position:0% also set the authenticated status to true<01:51:16.760> and<01:51:17.360> return<01:51:18.360> true<01:51:18.760> as<01:51:18.920> well<01:51:19.599> if<01:51:19.719> we 01:51:20.149 --> 01:51:20.159 align:start position:0% true and return true as well if we 01:51:20.159 --> 01:51:21.790 align:start position:0% true and return true as well if we outside<01:51:20.480> of<01:51:20.639> this<01:51:20.840> block<01:51:21.280> we're<01:51:21.400> going<01:51:21.520> to 01:51:21.790 --> 01:51:21.800 align:start position:0% outside of this block we're going to 01:51:21.800 --> 01:51:22.910 align:start position:0% outside of this block we're going to return 01:51:22.910 --> 01:51:22.920 align:start position:0% return 01:51:22.920 --> 01:51:26.270 align:start position:0% return false<01:51:23.920> and<01:51:24.400> this<01:51:24.719> is<01:51:24.880> our<01:51:25.199> check<01:51:25.599> off<01:51:25.920> user 01:51:26.270 --> 01:51:26.280 align:start position:0% false and this is our check off user 01:51:26.280 --> 01:51:28.589 align:start position:0% false and this is our check off user function<01:51:27.159> now<01:51:27.560> this<01:51:27.760> has<01:51:28.000> to<01:51:28.079> be<01:51:28.199> called 01:51:28.589 --> 01:51:28.599 align:start position:0% function now this has to be called 01:51:28.599 --> 01:51:31.430 align:start position:0% function now this has to be called whenever<01:51:28.960> we<01:51:29.119> reload<01:51:29.599> our<01:51:29.880> page<01:51:30.679> and<01:51:30.840> for<01:51:31.119> that 01:51:31.430 --> 01:51:31.440 align:start position:0% whenever we reload our page and for that 01:51:31.440 --> 01:51:34.550 align:start position:0% whenever we reload our page and for that we<01:51:31.560> have<01:51:31.679> to<01:51:31.880> use<01:51:32.400> the<01:51:32.599> use<01:51:33.159> effect<01:51:34.119> so<01:51:34.280> we<01:51:34.360> can 01:51:34.550 --> 01:51:34.560 align:start position:0% we have to use the use effect so we can 01:51:34.560 --> 01:51:36.870 align:start position:0% we have to use the use effect so we can define<01:51:35.000> a<01:51:35.199> new<01:51:35.440> use<01:51:35.719> effect<01:51:36.079> hook<01:51:36.639> that's 01:51:36.870 --> 01:51:36.880 align:start position:0% define a new use effect hook that's 01:51:36.880 --> 01:51:39.950 align:start position:0% define a new use effect hook that's going<01:51:37.040> to<01:51:37.280> have<01:51:37.520> a<01:51:37.719> function<01:51:38.599> like<01:51:38.800> so<01:51:39.599> and<01:51:39.800> a 01:51:39.950 --> 01:51:39.960 align:start position:0% going to have a function like so and a 01:51:39.960 --> 01:51:42.830 align:start position:0% going to have a function like so and a dependency<01:51:40.440> array<01:51:40.960> like<01:51:41.199> this<01:51:41.840> empty<01:51:42.480> meaning 01:51:42.830 --> 01:51:42.840 align:start position:0% dependency array like this empty meaning 01:51:42.840 --> 01:51:44.589 align:start position:0% dependency array like this empty meaning it's<01:51:43.040> only<01:51:43.239> going<01:51:43.400> to<01:51:43.520> be<01:51:43.679> called<01:51:44.239> whenever 01:51:44.589 --> 01:51:44.599 align:start position:0% it's only going to be called whenever 01:51:44.599 --> 01:51:47.510 align:start position:0% it's only going to be called whenever the<01:51:44.800> app<01:51:45.119> reloads<01:51:46.119> here<01:51:46.560> we<01:51:46.679> can<01:51:46.880> look<01:51:47.159> into 01:51:47.510 --> 01:51:47.520 align:start position:0% the app reloads here we can look into 01:51:47.520 --> 01:51:51.149 align:start position:0% the app reloads here we can look into our<01:51:47.760> local<01:51:48.119> storage<01:51:48.760> so<01:51:48.960> we<01:51:49.040> can<01:51:49.159> say<01:51:49.480> if<01:51:50.079> local 01:51:51.149 --> 01:51:51.159 align:start position:0% our local storage so we can say if local 01:51:51.159 --> 01:51:54.390 align:start position:0% our local storage so we can say if local storage.<01:51:52.159> get<01:51:52.440> item<01:51:53.119> upright<01:51:53.560> called<01:51:53.880> it 01:51:54.390 --> 01:51:54.400 align:start position:0% storage. get item upright called it 01:51:54.400 --> 01:51:56.149 align:start position:0% storage. get item upright called it cookie 01:51:56.149 --> 01:51:56.159 align:start position:0% cookie 01:51:56.159 --> 01:51:59.589 align:start position:0% cookie foldback<01:51:57.159> is<01:51:57.560> triple<01:51:58.040> equal<01:51:58.320> to<01:51:58.880> a<01:51:59.040> string<01:51:59.480> of 01:51:59.589 --> 01:51:59.599 align:start position:0% foldback is triple equal to a string of 01:51:59.599 --> 01:52:03.990 align:start position:0% foldback is triple equal to a string of an<01:51:59.800> empty<01:52:00.400> array<01:52:01.320> or<01:52:02.040> it's<01:52:02.360> a<01:52:02.560> local<01:52:03.000> storage. 01:52:03.990 --> 01:52:04.000 align:start position:0% an empty array or it's a local storage. 01:52:04.000 --> 01:52:06.390 align:start position:0% an empty array or it's a local storage. getet<01:52:04.239> item<01:52:04.800> cookie<01:52:05.119> fullback<01:52:05.679> is<01:52:05.920> equal<01:52:06.199> to 01:52:06.390 --> 01:52:06.400 align:start position:0% getet item cookie fullback is equal to 01:52:06.400 --> 01:52:09.109 align:start position:0% getet item cookie fullback is equal to null<01:52:07.400> in<01:52:07.599> that<01:52:07.840> case<01:52:08.320> we<01:52:08.480> simply<01:52:08.760> want<01:52:08.920> to 01:52:09.109 --> 01:52:09.119 align:start position:0% null in that case we simply want to 01:52:09.119 --> 01:52:11.430 align:start position:0% null in that case we simply want to navigate<01:52:09.560> the<01:52:09.679> user<01:52:10.159> back<01:52:10.639> to<01:52:10.840> the<01:52:11.000> sign-in 01:52:11.430 --> 01:52:11.440 align:start position:0% navigate the user back to the sign-in 01:52:11.440 --> 01:52:14.149 align:start position:0% navigate the user back to the sign-in screen<01:52:12.159> so<01:52:12.440> in<01:52:12.639> that<01:52:12.880> case<01:52:13.239> we<01:52:13.360> can<01:52:13.560> import<01:52:14.000> a 01:52:14.149 --> 01:52:14.159 align:start position:0% screen so in that case we can import a 01:52:14.159 --> 01:52:18.870 align:start position:0% screen so in that case we can import a new<01:52:14.440> hook<01:52:14.880> at<01:52:15.040> the<01:52:15.360> top<01:52:16.639> import<01:52:17.639> use 01:52:18.870 --> 01:52:18.880 align:start position:0% new hook at the top import use 01:52:18.880 --> 01:52:21.990 align:start position:0% new hook at the top import use navigate<01:52:20.280> which<01:52:20.400> is<01:52:20.560> coming<01:52:20.920> from<01:52:21.520> react 01:52:21.990 --> 01:52:22.000 align:start position:0% navigate which is coming from react 01:52:22.000 --> 01:52:24.709 align:start position:0% navigate which is coming from react router<01:52:22.360> Dom<01:52:23.320> and<01:52:23.520> we<01:52:23.599> need<01:52:23.760> to<01:52:23.960> initialize<01:52:24.520> it 01:52:24.709 --> 01:52:24.719 align:start position:0% router Dom and we need to initialize it 01:52:24.719 --> 01:52:26.950 align:start position:0% router Dom and we need to initialize it right<01:52:24.880> here<01:52:25.040> at<01:52:25.159> the<01:52:25.360> top<01:52:26.040> by<01:52:26.199> saying<01:52:26.560> cons 01:52:26.950 --> 01:52:26.960 align:start position:0% right here at the top by saying cons 01:52:26.960 --> 01:52:30.030 align:start position:0% right here at the top by saying cons navigate<01:52:27.719> is<01:52:28.000> equal<01:52:28.239> to<01:52:28.400> use<01:52:28.880> navigate<01:52:29.880> and 01:52:30.030 --> 01:52:30.040 align:start position:0% navigate is equal to use navigate and 01:52:30.040 --> 01:52:35.470 align:start position:0% navigate is equal to use navigate and now<01:52:30.239> we<01:52:30.360> can<01:52:30.560> call<01:52:30.800> it<01:52:31.520> navigate<01:52:32.040> to<01:52:33.079> SL<01:52:34.280> in<01:52:35.280> and 01:52:35.470 --> 01:52:35.480 align:start position:0% now we can call it navigate to SL in and 01:52:35.480 --> 01:52:37.390 align:start position:0% now we can call it navigate to SL in and I<01:52:35.599> notied<01:52:35.960> that<01:52:36.079> I<01:52:36.199> didn't<01:52:36.480> close<01:52:37.000> the<01:52:37.159> local 01:52:37.390 --> 01:52:37.400 align:start position:0% I notied that I didn't close the local 01:52:37.400 --> 01:52:39.790 align:start position:0% I notied that I didn't close the local storage.<01:52:38.079> getet<01:52:38.280> item<01:52:38.880> so<01:52:39.159> here<01:52:39.400> I'm<01:52:39.520> going<01:52:39.599> to 01:52:39.790 --> 01:52:39.800 align:start position:0% storage. getet item so here I'm going to 01:52:39.800 --> 01:52:42.189 align:start position:0% storage. getet item so here I'm going to close<01:52:40.079> it<01:52:40.800> and<01:52:41.040> this<01:52:41.159> is<01:52:41.360> how<01:52:41.719> it's<01:52:41.920> supposed 01:52:42.189 --> 01:52:42.199 align:start position:0% close it and this is how it's supposed 01:52:42.199 --> 01:52:44.830 align:start position:0% close it and this is how it's supposed to<01:52:42.360> look<01:52:42.560> like<01:52:43.320> finally<01:52:43.920> whenever<01:52:44.280> we<01:52:44.440> reload 01:52:44.830 --> 01:52:44.840 align:start position:0% to look like finally whenever we reload 01:52:44.840 --> 01:52:48.629 align:start position:0% to look like finally whenever we reload the<01:52:45.000> page<01:52:45.520> we<01:52:45.599> want<01:52:45.760> to<01:52:46.040> recall<01:52:46.920> the<01:52:47.119> check<01:52:48.079> o 01:52:48.629 --> 01:52:48.639 align:start position:0% the page we want to recall the check o 01:52:48.639 --> 01:52:51.709 align:start position:0% the page we want to recall the check o user<01:52:49.079> function<01:52:49.880> we<01:52:49.960> have<01:52:50.119> created<01:52:50.560> above<01:52:51.520> so 01:52:51.709 --> 01:52:51.719 align:start position:0% user function we have created above so 01:52:51.719 --> 01:52:53.510 align:start position:0% user function we have created above so now<01:52:51.920> we<01:52:52.040> have<01:52:52.199> our<01:52:52.360> use<01:52:52.679> effect<01:52:53.119> we<01:52:53.239> have<01:52:53.360> our 01:52:53.510 --> 01:52:53.520 align:start position:0% now we have our use effect we have our 01:52:53.520 --> 01:52:55.870 align:start position:0% now we have our use effect we have our check<01:52:53.800> off<01:52:54.119> user<01:52:54.840> we're<01:52:55.079> passing<01:52:55.520> all<01:52:55.679> of 01:52:55.870 --> 01:52:55.880 align:start position:0% check off user we're passing all of 01:52:55.880 --> 01:52:58.229 align:start position:0% check off user we're passing all of these<01:52:56.079> as<01:52:56.320> values<01:52:57.159> and<01:52:57.360> we're<01:52:57.560> wrapping<01:52:58.040> our 01:52:58.229 --> 01:52:58.239 align:start position:0% these as values and we're wrapping our 01:52:58.239 --> 01:53:00.430 align:start position:0% these as values and we're wrapping our entire<01:52:58.639> application<01:52:59.560> with<01:52:59.800> all<01:53:00.000> of<01:53:00.199> these 01:53:00.430 --> 01:53:00.440 align:start position:0% entire application with all of these 01:53:00.440 --> 01:53:03.109 align:start position:0% entire application with all of these values<01:53:01.119> so<01:53:01.400> that<01:53:01.599> at<01:53:01.800> any<01:53:02.040> point<01:53:02.239> in<01:53:02.480> time<01:53:02.880> we 01:53:03.109 --> 01:53:03.119 align:start position:0% values so that at any point in time we 01:53:03.119 --> 01:53:05.270 align:start position:0% values so that at any point in time we completely<01:53:04.000> understand<01:53:04.560> whether<01:53:04.840> our<01:53:05.000> user 01:53:05.270 --> 01:53:05.280 align:start position:0% completely understand whether our user 01:53:05.280 --> 01:53:08.990 align:start position:0% completely understand whether our user is<01:53:05.440> logged<01:53:05.760> in<01:53:06.400> or<01:53:06.840> not<01:53:07.520> finally<01:53:08.079> we<01:53:08.199> can<01:53:08.480> also 01:53:08.990 --> 01:53:09.000 align:start position:0% is logged in or not finally we can also 01:53:09.000 --> 01:53:11.709 align:start position:0% is logged in or not finally we can also export<01:53:09.639> right<01:53:09.800> here<01:53:09.920> at<01:53:10.040> the<01:53:10.199> bottom<01:53:11.159> export 01:53:11.709 --> 01:53:11.719 align:start position:0% export right here at the bottom export 01:53:11.719 --> 01:53:15.910 align:start position:0% export right here at the bottom export const<01:53:12.599> use<01:53:13.599> user<01:53:14.520> context<01:53:15.360> this<01:53:15.480> is<01:53:15.599> going<01:53:15.760> to 01:53:15.910 --> 01:53:15.920 align:start position:0% const use user context this is going to 01:53:15.920 --> 01:53:17.870 align:start position:0% const use user context this is going to make<01:53:16.040> it<01:53:16.199> simple<01:53:16.520> for<01:53:16.719> us<01:53:16.840> to<01:53:17.040> call<01:53:17.679> this 01:53:17.870 --> 01:53:17.880 align:start position:0% make it simple for us to call this 01:53:17.880 --> 01:53:20.470 align:start position:0% make it simple for us to call this context<01:53:18.400> every<01:53:18.679> time<01:53:19.440> which<01:53:19.560> is<01:53:19.960> a<01:53:20.119> function 01:53:20.470 --> 01:53:20.480 align:start position:0% context every time which is a function 01:53:20.480 --> 01:53:24.430 align:start position:0% context every time which is a function call<01:53:21.440> to<01:53:21.719> use<01:53:22.159> context<01:53:23.119> and<01:53:23.280> then<01:53:23.400> we<01:53:23.639> pass<01:53:23.880> in 01:53:24.430 --> 01:53:24.440 align:start position:0% call to use context and then we pass in 01:53:24.440 --> 01:53:28.830 align:start position:0% call to use context and then we pass in the<01:53:24.679> O<01:53:25.440> context<01:53:26.440> great<01:53:27.400> so<01:53:27.679> now<01:53:28.239> we<01:53:28.360> have<01:53:28.560> this 01:53:28.830 --> 01:53:28.840 align:start position:0% the O context great so now we have this 01:53:28.840 --> 01:53:31.310 align:start position:0% the O context great so now we have this phenomenal<01:53:29.520> context<01:53:30.400> and<01:53:30.639> I<01:53:30.719> notice<01:53:31.079> that 01:53:31.310 --> 01:53:31.320 align:start position:0% phenomenal context and I notice that 01:53:31.320 --> 01:53:33.870 align:start position:0% phenomenal context and I notice that here<01:53:31.639> it<01:53:31.760> says<01:53:32.119> o<01:53:32.679> provider<01:53:33.400> which<01:53:33.520> is<01:53:33.679> not 01:53:33.870 --> 01:53:33.880 align:start position:0% here it says o provider which is not 01:53:33.880 --> 01:53:36.310 align:start position:0% here it says o provider which is not really<01:53:34.159> used<01:53:35.000> we<01:53:35.119> have<01:53:35.239> to<01:53:35.480> export<01:53:35.920> it<01:53:36.159> right 01:53:36.310 --> 01:53:36.320 align:start position:0% really used we have to export it right 01:53:36.320 --> 01:53:40.550 align:start position:0% really used we have to export it right here<01:53:36.880> export<01:53:37.480> default<01:53:38.199> o<01:53:38.639> provider<01:53:39.599> not<01:53:39.960> o 01:53:40.550 --> 01:53:40.560 align:start position:0% here export default o provider not o 01:53:40.560 --> 01:53:42.390 align:start position:0% here export default o provider not o context<01:53:41.560> and<01:53:41.719> I<01:53:41.800> want<01:53:41.920> to<01:53:42.079> point<01:53:42.280> your 01:53:42.390 --> 01:53:42.400 align:start position:0% context and I want to point your 01:53:42.400 --> 01:53:45.390 align:start position:0% context and I want to point your attention<01:53:42.719> to<01:53:43.079> something<01:53:44.079> this<01:53:44.400> is<01:53:44.560> a<01:53:44.800> complex 01:53:45.390 --> 01:53:45.400 align:start position:0% attention to something this is a complex 01:53:45.400 --> 01:53:47.950 align:start position:0% attention to something this is a complex app<01:53:46.159> the<01:53:46.360> files<01:53:46.639> are<01:53:46.880> also<01:53:47.199> complex<01:53:47.639> there's<01:53:47.800> a 01:53:47.950 --> 01:53:47.960 align:start position:0% app the files are also complex there's a 01:53:47.960 --> 01:53:50.229 align:start position:0% app the files are also complex there's a lot<01:53:48.079> of<01:53:48.280> logic<01:53:48.679> Happening<01:53:49.119> Here<01:53:49.760> and<01:53:49.960> although 01:53:50.229 --> 01:53:50.239 align:start position:0% lot of logic Happening Here and although 01:53:50.239 --> 01:53:52.189 align:start position:0% lot of logic Happening Here and although I<01:53:50.360> try<01:53:50.599> to<01:53:50.760> explain<01:53:51.239> everything<01:53:51.599> to<01:53:51.800> the<01:53:52.000> best 01:53:52.189 --> 01:53:52.199 align:start position:0% I try to explain everything to the best 01:53:52.199 --> 01:53:54.709 align:start position:0% I try to explain everything to the best of<01:53:52.360> my<01:53:52.520> ability<01:53:53.360> it's<01:53:53.639> possible<01:53:54.079> that<01:53:54.320> either 01:53:54.709 --> 01:53:54.719 align:start position:0% of my ability it's possible that either 01:53:54.719 --> 01:53:57.510 align:start position:0% of my ability it's possible that either I<01:53:55.159> or<01:53:55.360> maybe<01:53:55.679> you<01:53:56.119> miss<01:53:56.400> something<01:53:57.040> it's<01:53:57.239> easy 01:53:57.510 --> 01:53:57.520 align:start position:0% I or maybe you miss something it's easy 01:53:57.520 --> 01:54:00.350 align:start position:0% I or maybe you miss something it's easy to<01:53:57.719> make<01:53:57.840> a<01:53:58.000> typo<01:53:58.719> right<01:53:59.280> so<01:53:59.920> test<01:54:00.159> your 01:54:00.350 --> 01:54:00.360 align:start position:0% to make a typo right so test your 01:54:00.360 --> 01:54:01.830 align:start position:0% to make a typo right so test your application<01:54:00.880> thoroughly<01:54:01.440> we're<01:54:01.560> going<01:54:01.679> to 01:54:01.830 --> 01:54:01.840 align:start position:0% application thoroughly we're going to 01:54:01.840 --> 01:54:03.430 align:start position:0% application thoroughly we're going to test<01:54:02.000> it<01:54:02.280> together<01:54:02.599> after<01:54:02.880> we're<01:54:03.079> done<01:54:03.280> with 01:54:03.430 --> 01:54:03.440 align:start position:0% test it together after we're done with 01:54:03.440 --> 01:54:05.510 align:start position:0% test it together after we're done with this<01:54:03.840> authentication<01:54:04.840> and<01:54:05.079> if<01:54:05.239> something 01:54:05.510 --> 01:54:05.520 align:start position:0% this authentication and if something 01:54:05.520 --> 01:54:07.629 align:start position:0% this authentication and if something doesn't<01:54:05.880> work<01:54:06.480> the<01:54:06.679> complete<01:54:07.199> GitHub 01:54:07.629 --> 01:54:07.639 align:start position:0% doesn't work the complete GitHub 01:54:07.639 --> 01:54:09.510 align:start position:0% doesn't work the complete GitHub repository<01:54:08.400> is<01:54:08.560> going<01:54:08.719> to<01:54:08.840> be<01:54:09.040> down<01:54:09.239> in<01:54:09.360> the 01:54:09.510 --> 01:54:09.520 align:start position:0% repository is going to be down in the 01:54:09.520 --> 01:54:11.950 align:start position:0% repository is going to be down in the description<01:54:10.400> so<01:54:10.599> simply<01:54:10.920> refer<01:54:11.400> to<01:54:11.599> all<01:54:11.840> the 01:54:11.950 --> 01:54:11.960 align:start position:0% description so simply refer to all the 01:54:11.960 --> 01:54:14.350 align:start position:0% description so simply refer to all the finished<01:54:12.360> files<01:54:13.159> and<01:54:13.320> simply<01:54:13.760> override<01:54:14.239> the 01:54:14.350 --> 01:54:14.360 align:start position:0% finished files and simply override the 01:54:14.360 --> 01:54:16.270 align:start position:0% finished files and simply override the things<01:54:14.560> you<01:54:14.719> have<01:54:14.920> so<01:54:15.159> far<01:54:15.599> to<01:54:15.800> ensure<01:54:16.079> that 01:54:16.270 --> 01:54:16.280 align:start position:0% things you have so far to ensure that 01:54:16.280 --> 01:54:17.870 align:start position:0% things you have so far to ensure that everything<01:54:16.599> is<01:54:16.840> good<01:54:17.199> and<01:54:17.360> if<01:54:17.440> you're<01:54:17.599> still 01:54:17.870 --> 01:54:17.880 align:start position:0% everything is good and if you're still 01:54:17.880 --> 01:54:20.109 align:start position:0% everything is good and if you're still having<01:54:18.119> some<01:54:18.320> errors<01:54:19.040> or<01:54:19.239> disc<01:54:19.760> Community 01:54:20.109 --> 01:54:20.119 align:start position:0% having some errors or disc Community 01:54:20.119 --> 01:54:22.390 align:start position:0% having some errors or disc Community Link<01:54:20.440> is<01:54:20.599> going<01:54:20.760> to<01:54:20.880> be<01:54:21.079> down<01:54:21.719> and<01:54:21.960> we<01:54:22.119> have<01:54:22.239> a 01:54:22.390 --> 01:54:22.400 align:start position:0% Link is going to be down and we have a 01:54:22.400 --> 01:54:24.790 align:start position:0% Link is going to be down and we have a forum<01:54:23.000> specifically<01:54:23.480> for<01:54:23.719> this<01:54:23.880> video<01:54:24.480> for 01:54:24.790 --> 01:54:24.800 align:start position:0% forum specifically for this video for 01:54:24.800 --> 01:54:26.310 align:start position:0% forum specifically for this video for everybody<01:54:25.199> to<01:54:25.400> assist<01:54:25.679> you<01:54:26.000> with<01:54:26.159> the 01:54:26.310 --> 01:54:26.320 align:start position:0% everybody to assist you with the 01:54:26.320 --> 01:54:29.030 align:start position:0% everybody to assist you with the problems<01:54:26.599> you're<01:54:26.840> having<01:54:27.719> so<01:54:28.000> with<01:54:28.159> that<01:54:28.360> said 01:54:29.030 --> 01:54:29.040 align:start position:0% problems you're having so with that said 01:54:29.040 --> 01:54:31.790 align:start position:0% problems you're having so with that said let's<01:54:29.280> now<01:54:29.520> utilize<01:54:30.320> this<01:54:30.480> odd<01:54:30.960> context 01:54:31.790 --> 01:54:31.800 align:start position:0% let's now utilize this odd context 01:54:31.800 --> 01:54:35.109 align:start position:0% let's now utilize this odd context within<01:54:32.400> our<01:54:32.679> signup<01:54:33.280> form<01:54:34.280> right<01:54:34.520> here<01:54:34.880> we<01:54:35.000> can 01:54:35.109 --> 01:54:35.119 align:start position:0% within our signup form right here we can 01:54:35.119 --> 01:54:39.470 align:start position:0% within our signup form right here we can say<01:54:35.480> const<01:54:36.360> is<01:54:36.840> logged<01:54:37.280> in<01:54:38.239> is<01:54:38.440> equal<01:54:38.760> to<01:54:39.239> a 01:54:39.470 --> 01:54:39.480 align:start position:0% say const is logged in is equal to a 01:54:39.480 --> 01:54:42.990 align:start position:0% say const is logged in is equal to a wait<01:54:40.159> check<01:54:40.760> off<01:54:41.239> user<01:54:42.040> which<01:54:42.239> we<01:54:42.360> can<01:54:42.560> import 01:54:42.990 --> 01:54:43.000 align:start position:0% wait check off user which we can import 01:54:43.000 --> 01:54:45.629 align:start position:0% wait check off user which we can import from<01:54:43.159> our<01:54:43.520> context<01:54:44.520> so<01:54:44.840> right<01:54:45.079> here<01:54:45.400> we<01:54:45.520> can 01:54:45.629 --> 01:54:45.639 align:start position:0% from our context so right here we can 01:54:45.639 --> 01:54:49.910 align:start position:0% from our context so right here we can say<01:54:46.040> const<01:54:47.040> check<01:54:47.639> off<01:54:48.360> user<01:54:49.360> as<01:54:49.480> well<01:54:49.639> as<01:54:49.760> well 01:54:49.910 --> 01:54:49.920 align:start position:0% say const check off user as well as well 01:54:49.920 --> 01:54:52.910 align:start position:0% say const check off user as well as well as<01:54:50.239> is<01:54:50.520> loading<01:54:51.480> which<01:54:51.639> we<01:54:51.760> can<01:54:51.920> rename<01:54:52.280> to<01:54:52.560> is 01:54:52.910 --> 01:54:52.920 align:start position:0% as is loading which we can rename to is 01:54:52.920 --> 01:54:58.629 align:start position:0% as is loading which we can rename to is user<01:54:54.079> loading<01:54:55.079> is<01:54:55.320> equal<01:54:55.639> to<01:54:56.599> use<01:54:57.239> user 01:54:58.629 --> 01:54:58.639 align:start position:0% user loading is equal to use user 01:54:58.639 --> 01:55:01.550 align:start position:0% user loading is equal to use user context<01:54:59.639> like<01:54:59.880> so<01:55:00.440> and<01:55:00.560> we<01:55:00.679> can<01:55:00.880> import<01:55:01.280> it 01:55:01.550 --> 01:55:01.560 align:start position:0% context like so and we can import it 01:55:01.560 --> 01:55:05.990 align:start position:0% context like so and we can import it from<01:55:02.360> use<01:55:02.719> user<01:55:03.119> context<01:55:04.000> context<01:55:04.599> o<01:55:05.000> context 01:55:05.990 --> 01:55:06.000 align:start position:0% from use user context context o context 01:55:06.000 --> 01:55:08.430 align:start position:0% from use user context context o context there<01:55:06.119> we<01:55:06.320> go<01:55:06.920> so<01:55:07.199> now<01:55:07.520> we're<01:55:07.719> calling<01:55:08.119> it<01:55:08.320> and 01:55:08.430 --> 01:55:08.440 align:start position:0% there we go so now we're calling it and 01:55:08.440 --> 01:55:11.189 align:start position:0% there we go so now we're calling it and we're<01:55:08.599> getting<01:55:08.800> the<01:55:08.920> Boolean<01:55:09.520> value<01:55:09.960> back<01:55:10.679> is 01:55:11.189 --> 01:55:11.199 align:start position:0% we're getting the Boolean value back is 01:55:11.199 --> 01:55:14.589 align:start position:0% we're getting the Boolean value back is logged<01:55:11.719> in<01:55:12.320> finally<01:55:13.119> what<01:55:13.280> we<01:55:13.400> want<01:55:13.520> to<01:55:13.719> do<01:55:14.239> is 01:55:14.589 --> 01:55:14.599 align:start position:0% logged in finally what we want to do is 01:55:14.599 --> 01:55:19.069 align:start position:0% logged in finally what we want to do is if<01:55:15.440> is<01:55:15.840> logged<01:55:16.440> in<01:55:17.440> in<01:55:17.719> that<01:55:17.960> case<01:55:18.679> we<01:55:18.800> want<01:55:18.920> to 01:55:19.069 --> 01:55:19.079 align:start position:0% if is logged in in that case we want to 01:55:19.079 --> 01:55:21.950 align:start position:0% if is logged in in that case we want to call<01:55:19.360> the<01:55:19.679> form.<01:55:20.360> reset<01:55:21.040> so<01:55:21.159> we<01:55:21.280> want<01:55:21.400> to<01:55:21.599> reset 01:55:21.950 --> 01:55:21.960 align:start position:0% call the form. reset so we want to reset 01:55:21.960 --> 01:55:24.069 align:start position:0% call the form. reset so we want to reset the<01:55:22.079> form<01:55:22.840> and<01:55:23.000> we<01:55:23.119> want<01:55:23.239> to<01:55:23.360> call<01:55:23.639> that<01:55:23.800> same 01:55:24.069 --> 01:55:24.079 align:start position:0% the form and we want to call that same 01:55:24.079 --> 01:55:27.109 align:start position:0% the form and we want to call that same navigate<01:55:24.840> remember<01:55:25.560> from<01:55:25.920> react<01:55:26.360> router<01:55:26.920> so 01:55:27.109 --> 01:55:27.119 align:start position:0% navigate remember from react router so 01:55:27.119 --> 01:55:31.629 align:start position:0% navigate remember from react router so that's<01:55:27.320> going<01:55:27.480> to<01:55:27.760> be<01:55:28.199> link<01:55:28.920> but<01:55:29.119> also<01:55:29.520> use 01:55:31.629 --> 01:55:31.639 align:start position:0% that's going to be link but also use 01:55:31.639 --> 01:55:34.270 align:start position:0% that's going to be link but also use navigate<01:55:32.639> and<01:55:32.800> we<01:55:32.960> Define<01:55:33.239> it<01:55:33.480> right<01:55:33.679> here 01:55:34.270 --> 01:55:34.280 align:start position:0% navigate and we Define it right here 01:55:34.280 --> 01:55:38.629 align:start position:0% navigate and we Define it right here cons<01:55:35.199> navigate<01:55:36.199> is<01:55:36.480> equal<01:55:36.800> to<01:55:37.560> use 01:55:38.629 --> 01:55:38.639 align:start position:0% cons navigate is equal to use 01:55:38.639 --> 01:55:41.270 align:start position:0% cons navigate is equal to use navigate<01:55:39.639> and<01:55:39.800> now<01:55:40.040> we<01:55:40.119> want<01:55:40.239> to<01:55:40.440> navigate<01:55:41.040> to 01:55:41.270 --> 01:55:41.280 align:start position:0% navigate and now we want to navigate to 01:55:41.280 --> 01:55:43.990 align:start position:0% navigate and now we want to navigate to the<01:55:41.400> homepage<01:55:42.159> because<01:55:42.480> we<01:55:42.639> are<01:55:43.079> successfully 01:55:43.990 --> 01:55:44.000 align:start position:0% the homepage because we are successfully 01:55:44.000 --> 01:55:46.750 align:start position:0% the homepage because we are successfully logged<01:55:44.400> in<01:55:45.159> so<01:55:45.320> we<01:55:45.440> can<01:55:45.560> say 01:55:46.750 --> 01:55:46.760 align:start position:0% logged in so we can say 01:55:46.760 --> 01:55:50.470 align:start position:0% logged in so we can say navigate<01:55:47.760> to<01:55:48.320> forward<01:55:48.800> slash 01:55:50.470 --> 01:55:50.480 align:start position:0% navigate to forward slash 01:55:50.480 --> 01:55:53.270 align:start position:0% navigate to forward slash else<01:55:50.960> if<01:55:51.079> we're<01:55:51.320> not<01:55:51.560> successfully<01:55:52.119> logged<01:55:52.440> in 01:55:53.270 --> 01:55:53.280 align:start position:0% else if we're not successfully logged in 01:55:53.280 --> 01:55:56.350 align:start position:0% else if we're not successfully logged in we<01:55:53.400> can<01:55:53.599> again<01:55:53.840> show<01:55:54.199> a<01:55:54.400> toast<01:55:55.280> saying<01:55:55.880> sign<01:55:56.119> up 01:55:56.350 --> 01:55:56.360 align:start position:0% we can again show a toast saying sign up 01:55:56.360 --> 01:55:58.870 align:start position:0% we can again show a toast saying sign up failed<01:55:57.040> please<01:55:57.280> try<01:55:57.679> again<01:55:58.400> and<01:55:58.520> we<01:55:58.599> can 01:55:58.870 --> 01:55:58.880 align:start position:0% failed please try again and we can 01:55:58.880 --> 01:56:02.030 align:start position:0% failed please try again and we can immediately<01:55:59.880> return<01:56:00.119> it<01:56:00.840> and<01:56:01.159> this<01:56:01.719> is<01:56:01.840> our 01:56:02.030 --> 01:56:02.040 align:start position:0% immediately return it and this is our 01:56:02.040 --> 01:56:04.589 align:start position:0% immediately return it and this is our onsubmit<01:56:02.719> function<01:56:03.719> a<01:56:03.880> lot<01:56:04.040> of<01:56:04.199> things<01:56:04.360> were 01:56:04.589 --> 01:56:04.599 align:start position:0% onsubmit function a lot of things were 01:56:04.599 --> 01:56:06.830 align:start position:0% onsubmit function a lot of things were happening<01:56:05.000> in<01:56:05.159> the<01:56:05.280> meantime<01:56:06.159> we<01:56:06.320> worked<01:56:06.639> out 01:56:06.830 --> 01:56:06.840 align:start position:0% happening in the meantime we worked out 01:56:06.840 --> 01:56:09.069 align:start position:0% happening in the meantime we worked out our<01:56:07.079> database<01:56:07.719> we<01:56:07.880> worked<01:56:08.159> out<01:56:08.360> our<01:56:08.639> react 01:56:09.069 --> 01:56:09.079 align:start position:0% our database we worked out our react 01:56:09.079 --> 01:56:12.470 align:start position:0% our database we worked out our react query<01:56:09.920> ight<01:56:10.719> we<01:56:10.880> did<01:56:11.239> everything<01:56:12.079> also<01:56:12.360> we 01:56:12.470 --> 01:56:12.480 align:start position:0% query ight we did everything also we 01:56:12.480 --> 01:56:14.790 align:start position:0% query ight we did everything also we created<01:56:12.880> contact<01:56:13.280> in<01:56:13.400> the<01:56:13.560> meantime<01:56:14.239> so<01:56:14.520> a<01:56:14.639> lot 01:56:14.790 --> 01:56:14.800 align:start position:0% created contact in the meantime so a lot 01:56:14.800 --> 01:56:17.350 align:start position:0% created contact in the meantime so a lot of<01:56:14.960> stuff<01:56:15.199> has<01:56:15.360> happened<01:56:16.119> let's<01:56:16.360> go<01:56:16.520> ahead<01:56:17.119> and 01:56:17.350 --> 01:56:17.360 align:start position:0% of stuff has happened let's go ahead and 01:56:17.360 --> 01:56:19.589 align:start position:0% of stuff has happened let's go ahead and test<01:56:17.599> it<01:56:17.800> out<01:56:18.560> so<01:56:18.719> we<01:56:18.800> can<01:56:18.960> go<01:56:19.119> back<01:56:19.280> through 01:56:19.589 --> 01:56:19.599 align:start position:0% test it out so we can go back through 01:56:19.599 --> 01:56:21.629 align:start position:0% test it out so we can go back through application<01:56:20.560> I'm<01:56:20.719> sure<01:56:21.119> something's<01:56:21.520> going 01:56:21.629 --> 01:56:21.639 align:start position:0% application I'm sure something's going 01:56:21.639 --> 01:56:25.629 align:start position:0% application I'm sure something's going to<01:56:21.760> be<01:56:21.920> broken<01:56:22.639> so<01:56:22.800> let's<01:56:23.000> go<01:56:23.119> to 01:56:25.629 --> 01:56:25.639 align:start position:0% 01:56:25.639 --> 01:56:28.669 align:start position:0% inspect<01:56:26.639> console<01:56:27.639> and<01:56:27.760> let's<01:56:28.000> reload<01:56:28.440> the 01:56:28.669 --> 01:56:28.679 align:start position:0% inspect console and let's reload the 01:56:28.679 --> 01:56:31.950 align:start position:0% inspect console and let's reload the page<01:56:29.679> as<01:56:29.800> you<01:56:29.880> can<01:56:30.040> see<01:56:30.560> it's<01:56:30.760> saying<01:56:31.639> that<01:56:31.800> we 01:56:31.950 --> 01:56:31.960 align:start position:0% page as you can see it's saying that we 01:56:31.960 --> 01:56:33.310 align:start position:0% page as you can see it's saying that we have<01:56:32.079> an 01:56:33.310 --> 01:56:33.320 align:start position:0% have an 01:56:33.320 --> 01:56:36.470 align:start position:0% have an error<01:56:34.320> in<01:56:34.520> the<01:56:34.679> signup<01:56:35.040> form<01:56:36.040> saying<01:56:36.320> that 01:56:36.470 --> 01:56:36.480 align:start position:0% error in the signup form saying that 01:56:36.480 --> 01:56:39.270 align:start position:0% error in the signup form saying that there's<01:56:36.760> no<01:56:37.040> query<01:56:37.400> client<01:56:37.800> set<01:56:38.520> use<01:56:38.880> Query 01:56:39.270 --> 01:56:39.280 align:start position:0% there's no query client set use Query 01:56:39.280 --> 01:56:42.030 align:start position:0% there's no query client set use Query client<01:56:39.679> provider<01:56:40.320> to<01:56:40.520> set<01:56:40.800> one<01:56:41.599> the<01:56:41.719> reason 01:56:42.030 --> 01:56:42.040 align:start position:0% client provider to set one the reason 01:56:42.040 --> 01:56:43.910 align:start position:0% client provider to set one the reason why<01:56:42.159> we're<01:56:42.320> getting<01:56:42.560> this<01:56:42.719> error<01:56:43.400> is<01:56:43.679> because 01:56:43.910 --> 01:56:43.920 align:start position:0% why we're getting this error is because 01:56:43.920 --> 01:56:47.430 align:start position:0% why we're getting this error is because we<01:56:44.079> didn't<01:56:44.480> actually<01:56:44.880> utilize<01:56:45.599> our<01:56:45.920> o<01:56:46.719> nor<01:56:47.199> our 01:56:47.430 --> 01:56:47.440 align:start position:0% we didn't actually utilize our o nor our 01:56:47.440 --> 01:56:49.790 align:start position:0% we didn't actually utilize our o nor our react<01:56:47.880> query<01:56:48.400> in<01:56:48.520> our<01:56:48.800> app<01:56:49.280> with<01:56:49.480> we<01:56:49.560> simply 01:56:49.790 --> 01:56:49.800 align:start position:0% react query in our app with we simply 01:56:49.800 --> 01:56:52.550 align:start position:0% react query in our app with we simply wrote<01:56:50.119> some<01:56:50.320> code<01:56:50.679> in<01:56:50.840> some<01:56:51.199> files<01:56:52.119> but<01:56:52.239> to 01:56:52.550 --> 01:56:52.560 align:start position:0% wrote some code in some files but to 01:56:52.560 --> 01:56:55.069 align:start position:0% wrote some code in some files but to actually<01:56:52.920> utilize<01:56:53.400> it<01:56:53.880> we<01:56:54.000> have<01:56:54.119> to<01:56:54.320> go<01:56:54.679> way 01:56:55.069 --> 01:56:55.079 align:start position:0% actually utilize it we have to go way 01:56:55.079 --> 01:56:59.310 align:start position:0% actually utilize it we have to go way back<01:56:55.560> to<01:56:55.760> our<01:56:56.000> source<01:56:57.079> main.<01:56:58.079> TSX<01:56:58.960> and<01:56:59.079> we<01:56:59.239> have 01:56:59.310 --> 01:56:59.320 align:start position:0% back to our source main. TSX and we have 01:56:59.320 --> 01:57:01.830 align:start position:0% back to our source main. TSX and we have to<01:56:59.560> wrap<01:56:59.920> our<01:57:00.159> app<01:57:00.679> with<01:57:00.920> all<01:57:01.079> of<01:57:01.280> these 01:57:01.830 --> 01:57:01.840 align:start position:0% to wrap our app with all of these 01:57:01.840 --> 01:57:04.430 align:start position:0% to wrap our app with all of these providers<01:57:02.840> so<01:57:03.159> first<01:57:03.599> let's<01:57:03.800> wrap<01:57:04.119> it<01:57:04.280> with 01:57:04.430 --> 01:57:04.440 align:start position:0% providers so first let's wrap it with 01:57:04.440 --> 01:57:07.990 align:start position:0% providers so first let's wrap it with the<01:57:04.639> O<01:57:05.320> provider<01:57:06.320> which<01:57:06.440> is<01:57:06.599> coming<01:57:07.000> fromc 01:57:07.990 --> 01:57:08.000 align:start position:0% the O provider which is coming fromc 01:57:08.000 --> 01:57:11.109 align:start position:0% the O provider which is coming fromc context<01:57:08.800> o<01:57:09.400> context<01:57:10.400> and<01:57:10.520> then<01:57:10.639> we<01:57:10.760> can<01:57:10.960> put 01:57:11.109 --> 01:57:11.119 align:start position:0% context o context and then we can put 01:57:11.119 --> 01:57:13.790 align:start position:0% context o context and then we can put our<01:57:11.400> app<01:57:11.960> right<01:57:12.199> here<01:57:12.639> within<01:57:12.920> it<01:57:13.480> and 01:57:13.790 --> 01:57:13.800 align:start position:0% our app right here within it and 01:57:13.800 --> 01:57:16.910 align:start position:0% our app right here within it and indented<01:57:14.679> properly<01:57:15.679> this<01:57:15.880> is<01:57:16.040> the<01:57:16.199> context<01:57:16.760> we 01:57:16.910 --> 01:57:16.920 align:start position:0% indented properly this is the context we 01:57:16.920 --> 01:57:19.950 align:start position:0% indented properly this is the context we have<01:57:17.199> created<01:57:18.199> but<01:57:18.480> with<01:57:18.679> react<01:57:19.079> query<01:57:19.760> we 01:57:19.950 --> 01:57:19.960 align:start position:0% have created but with react query we 01:57:19.960 --> 01:57:22.870 align:start position:0% have created but with react query we also<01:57:20.239> have<01:57:20.360> to<01:57:20.560> create<01:57:20.960> our<01:57:21.159> own<01:57:21.679> context<01:57:22.679> so 01:57:22.870 --> 01:57:22.880 align:start position:0% also have to create our own context so 01:57:22.880 --> 01:57:26.750 align:start position:0% also have to create our own context so let's<01:57:23.159> go<01:57:23.360> into<01:57:23.920> lib<01:57:24.800> react<01:57:25.320> query<01:57:26.079> and<01:57:26.320> create 01:57:26.750 --> 01:57:26.760 align:start position:0% let's go into lib react query and create 01:57:26.760 --> 01:57:29.950 align:start position:0% let's go into lib react query and create a<01:57:27.000> query<01:57:28.440> provider. 01:57:29.950 --> 01:57:29.960 align:start position:0% a query provider. 01:57:29.960 --> 01:57:32.470 align:start position:0% a query provider. DSX<01:57:30.960> here<01:57:31.119> we<01:57:31.280> have<01:57:31.400> to<01:57:31.520> do<01:57:31.679> something<01:57:32.000> similar 01:57:32.470 --> 01:57:32.480 align:start position:0% DSX here we have to do something similar 01:57:32.480 --> 01:57:35.030 align:start position:0% DSX here we have to do something similar we've<01:57:32.679> done<01:57:32.880> with<01:57:33.000> our<01:57:33.199> own<01:57:33.840> context<01:57:34.840> by 01:57:35.030 --> 01:57:35.040 align:start position:0% we've done with our own context by 01:57:35.040 --> 01:57:37.390 align:start position:0% we've done with our own context by running 01:57:37.390 --> 01:57:37.400 align:start position:0% running 01:57:37.400 --> 01:57:40.470 align:start position:0% running rafc<01:57:38.400> instead<01:57:38.679> of<01:57:38.800> a<01:57:39.000> default<01:57:39.679> export<01:57:40.199> we<01:57:40.320> can 01:57:40.470 --> 01:57:40.480 align:start position:0% rafc instead of a default export we can 01:57:40.480 --> 01:57:43.030 align:start position:0% rafc instead of a default export we can simply<01:57:40.719> use<01:57:40.920> a<01:57:41.119> named<01:57:41.440> one<01:57:42.040> export<01:57:42.560> const 01:57:43.030 --> 01:57:43.040 align:start position:0% simply use a named one export const 01:57:43.040 --> 01:57:45.950 align:start position:0% simply use a named one export const query<01:57:43.480> provider<01:57:44.320> we<01:57:44.560> also<01:57:44.920> get<01:57:45.159> the<01:57:45.280> children 01:57:45.950 --> 01:57:45.960 align:start position:0% query provider we also get the children 01:57:45.960 --> 01:57:48.069 align:start position:0% query provider we also get the children right<01:57:46.199> here<01:57:47.079> because<01:57:47.320> we<01:57:47.400> need<01:57:47.560> to<01:57:47.639> show<01:57:47.920> the 01:57:48.069 --> 01:57:48.079 align:start position:0% right here because we need to show the 01:57:48.079 --> 01:57:50.069 align:start position:0% right here because we need to show the entire<01:57:48.480> app<01:57:48.719> within<01:57:48.960> it<01:57:49.520> which<01:57:49.639> is<01:57:49.760> going<01:57:49.960> to 01:57:50.069 --> 01:57:50.079 align:start position:0% entire app within it which is going to 01:57:50.079 --> 01:57:56.109 align:start position:0% entire app within it which is going to be<01:57:50.280> of<01:57:50.440> a<01:57:50.880> type<01:57:51.960> children<01:57:53.079> react.<01:57:54.079> react<01:57:55.119> node 01:57:56.109 --> 01:57:56.119 align:start position:0% be of a type children react. react node 01:57:56.119 --> 01:57:58.990 align:start position:0% be of a type children react. react node like<01:57:56.320> so<01:57:57.280> we<01:57:57.440> can<01:57:57.599> also<01:57:57.880> just<01:57:58.079> import<01:57:58.560> react 01:57:58.990 --> 01:57:59.000 align:start position:0% like so we can also just import react 01:57:59.000 --> 01:58:01.470 align:start position:0% like so we can also just import react node<01:57:59.599> at<01:57:59.760> the<01:57:59.960> top<01:58:00.639> that's<01:58:00.840> going<01:58:01.000> to<01:58:01.079> be<01:58:01.199> a<01:58:01.320> bit 01:58:01.470 --> 01:58:01.480 align:start position:0% node at the top that's going to be a bit 01:58:01.480 --> 01:58:04.550 align:start position:0% node at the top that's going to be a bit simpler<01:58:01.880> so<01:58:02.000> we<01:58:02.079> can<01:58:02.679> destructure<01:58:03.679> react<01:58:04.119> node 01:58:04.550 --> 01:58:04.560 align:start position:0% simpler so we can destructure react node 01:58:04.560 --> 01:58:07.310 align:start position:0% simpler so we can destructure react node from<01:58:05.119> react<01:58:06.119> and<01:58:06.320> now<01:58:06.599> it's<01:58:06.760> going<01:58:06.880> to<01:58:07.000> fit<01:58:07.159> in 01:58:07.310 --> 01:58:07.320 align:start position:0% from react and now it's going to fit in 01:58:07.320 --> 01:58:10.030 align:start position:0% from react and now it's going to fit in one<01:58:07.560> line<01:58:08.440> and<01:58:08.599> then<01:58:08.800> we<01:58:08.920> need<01:58:09.079> to 01:58:10.030 --> 01:58:10.040 align:start position:0% one line and then we need to 01:58:10.040 --> 01:58:13.149 align:start position:0% one line and then we need to return<01:58:11.239> query 01:58:13.149 --> 01:58:13.159 align:start position:0% return query 01:58:13.159 --> 01:58:15.109 align:start position:0% return query client 01:58:15.109 --> 01:58:15.119 align:start position:0% client 01:58:15.119 --> 01:58:18.790 align:start position:0% client provider<01:58:16.119> like<01:58:16.800> this<01:58:17.800> that<01:58:17.920> we<01:58:18.040> can<01:58:18.280> import 01:58:18.790 --> 01:58:18.800 align:start position:0% provider like this that we can import 01:58:18.800 --> 01:58:21.470 align:start position:0% provider like this that we can import from<01:58:19.040> t<01:58:19.480> stack<01:58:19.840> react 01:58:21.470 --> 01:58:21.480 align:start position:0% from t stack react 01:58:21.480 --> 01:58:24.390 align:start position:0% from t stack react query<01:58:22.480> it's<01:58:22.679> going<01:58:22.840> to<01:58:23.079> have<01:58:23.400> a<01:58:23.679> client 01:58:24.390 --> 01:58:24.400 align:start position:0% query it's going to have a client 01:58:24.400 --> 01:58:27.550 align:start position:0% query it's going to have a client property<01:58:25.199> equal<01:58:25.480> to<01:58:25.719> query<01:58:26.480> client<01:58:27.199> which<01:58:27.400> is 01:58:27.550 --> 01:58:27.560 align:start position:0% property equal to query client which is 01:58:27.560 --> 01:58:30.030 align:start position:0% property equal to query client which is once<01:58:27.800> again<01:58:28.079> coming<01:58:28.400> from<01:58:28.800> T<01:58:29.199> stack<01:58:29.599> react 01:58:30.030 --> 01:58:30.040 align:start position:0% once again coming from T stack react 01:58:30.040 --> 01:58:33.229 align:start position:0% once again coming from T stack react query<01:58:30.560> so<01:58:30.719> we<01:58:30.800> can<01:58:30.960> import<01:58:31.320> it<01:58:31.719> at<01:58:31.840> the<01:58:32.079> top<01:58:33.079> and 01:58:33.229 --> 01:58:33.239 align:start position:0% query so we can import it at the top and 01:58:33.239 --> 01:58:34.669 align:start position:0% query so we can import it at the top and I<01:58:33.400> believe<01:58:33.760> it<01:58:33.840> should<01:58:34.040> start<01:58:34.400> with<01:58:34.560> a 01:58:34.669 --> 01:58:34.679 align:start position:0% I believe it should start with a 01:58:34.679 --> 01:58:37.629 align:start position:0% I believe it should start with a lowercase<01:58:35.440> letter<01:58:35.920> so<01:58:36.079> it's<01:58:36.199> a<01:58:36.360> query<01:58:36.840> client 01:58:37.629 --> 01:58:37.639 align:start position:0% lowercase letter so it's a query client 01:58:37.639 --> 01:58:40.149 align:start position:0% lowercase letter so it's a query client like<01:58:37.840> so<01:58:38.480> and<01:58:38.639> it's<01:58:38.840> complaining<01:58:39.440> right<01:58:39.639> here 01:58:40.149 --> 01:58:40.159 align:start position:0% like so and it's complaining right here 01:58:40.159 --> 01:58:42.510 align:start position:0% like so and it's complaining right here that's<01:58:40.400> because<01:58:40.639> we<01:58:40.800> have<01:58:40.960> to<01:58:41.520> set<01:58:41.719> up<01:58:42.000> a<01:58:42.159> new 01:58:42.510 --> 01:58:42.520 align:start position:0% that's because we have to set up a new 01:58:42.520 --> 01:58:45.030 align:start position:0% that's because we have to set up a new instance<01:58:43.119> of<01:58:43.360> that<01:58:43.520> query<01:58:43.880> client<01:58:44.560> by<01:58:44.679> saying 01:58:45.030 --> 01:58:45.040 align:start position:0% instance of that query client by saying 01:58:45.040 --> 01:58:48.189 align:start position:0% instance of that query client by saying const<01:58:45.440> query<01:58:45.800> client<01:58:46.360> with<01:58:46.520> a<01:58:46.639> lowercase<01:58:47.280> Q<01:58:48.000> is 01:58:48.189 --> 01:58:48.199 align:start position:0% const query client with a lowercase Q is 01:58:48.199 --> 01:58:50.750 align:start position:0% const query client with a lowercase Q is equal<01:58:48.520> to<01:58:49.000> new<01:58:49.320> new<01:58:49.440> query<01:58:49.800> client<01:58:50.480> that<01:58:50.599> we 01:58:50.750 --> 01:58:50.760 align:start position:0% equal to new new query client that we 01:58:50.760 --> 01:58:52.750 align:start position:0% equal to new new query client that we call<01:58:51.000> like<01:58:51.239> this<01:58:51.960> and<01:58:52.079> then<01:58:52.239> we<01:58:52.400> pass<01:58:52.639> the 01:58:52.750 --> 01:58:52.760 align:start position:0% call like this and then we pass the 01:58:52.760 --> 01:58:55.750 align:start position:0% call like this and then we pass the lowercase<01:58:53.360> one<01:58:53.960> right<01:58:54.199> here<01:58:55.000> and<01:58:55.239> finally<01:58:55.679> we 01:58:55.750 --> 01:58:55.760 align:start position:0% lowercase one right here and finally we 01:58:55.760 --> 01:58:58.229 align:start position:0% lowercase one right here and finally we can<01:58:55.920> render<01:58:56.239> the<01:58:56.400> children<01:58:57.040> right<01:58:57.280> here<01:58:58.119> this 01:58:58.229 --> 01:58:58.239 align:start position:0% can render the children right here this 01:58:58.239 --> 01:59:00.270 align:start position:0% can render the children right here this is<01:58:58.400> similar<01:58:58.719> to<01:58:58.880> our<01:58:59.040> own<01:58:59.440> context<01:59:00.000> we<01:59:00.119> have 01:59:00.270 --> 01:59:00.280 align:start position:0% is similar to our own context we have 01:59:00.280 --> 01:59:03.030 align:start position:0% is similar to our own context we have created<01:59:00.800> before<01:59:01.800> so<01:59:02.040> now<01:59:02.280> going<01:59:02.599> back<01:59:02.719> to<01:59:02.880> our 01:59:03.030 --> 01:59:03.040 align:start position:0% created before so now going back to our 01:59:03.040 --> 01:59:05.270 align:start position:0% created before so now going back to our main<01:59:03.560> alongside<01:59:04.119> wrapping<01:59:04.480> it<01:59:04.599> in<01:59:04.719> the<01:59:04.880> O 01:59:05.270 --> 01:59:05.280 align:start position:0% main alongside wrapping it in the O 01:59:05.280 --> 01:59:07.510 align:start position:0% main alongside wrapping it in the O provider<01:59:05.960> we<01:59:06.040> can<01:59:06.280> also<01:59:06.599> wrap<01:59:06.880> it<01:59:07.079> in<01:59:07.280> the 01:59:07.510 --> 01:59:07.520 align:start position:0% provider we can also wrap it in the 01:59:07.520 --> 01:59:09.030 align:start position:0% provider we can also wrap it in the query 01:59:09.030 --> 01:59:09.040 align:start position:0% query 01:59:09.040 --> 01:59:11.830 align:start position:0% query provider<01:59:10.040> which<01:59:10.159> is<01:59:10.320> coming<01:59:10.599> from<01:59:10.880> lib<01:59:11.360> react 01:59:11.830 --> 01:59:11.840 align:start position:0% provider which is coming from lib react 01:59:11.840 --> 01:59:14.149 align:start position:0% provider which is coming from lib react query<01:59:12.400> query 01:59:14.149 --> 01:59:14.159 align:start position:0% query query 01:59:14.159 --> 01:59:16.990 align:start position:0% query query provider<01:59:15.159> and<01:59:15.320> we<01:59:15.400> can<01:59:15.639> put<01:59:16.079> all<01:59:16.239> of<01:59:16.480> this 01:59:16.990 --> 01:59:17.000 align:start position:0% provider and we can put all of this 01:59:17.000 --> 01:59:21.069 align:start position:0% provider and we can put all of this within<01:59:17.639> it<01:59:18.639> and<01:59:18.880> in<01:59:19.079> then<01:59:19.440> it<01:59:19.719> properly<01:59:20.719> so<01:59:20.920> now 01:59:21.069 --> 01:59:21.079 align:start position:0% within it and in then it properly so now 01:59:21.079 --> 01:59:22.790 align:start position:0% within it and in then it properly so now we're<01:59:21.360> properly<01:59:21.719> wrapping<01:59:22.079> our<01:59:22.320> app<01:59:22.560> with 01:59:22.790 --> 01:59:22.800 align:start position:0% we're properly wrapping our app with 01:59:22.800 --> 01:59:24.669 align:start position:0% we're properly wrapping our app with everything<01:59:23.159> we<01:59:23.280> need<01:59:23.840> and<01:59:24.000> we<01:59:24.119> can<01:59:24.360> again 01:59:24.669 --> 01:59:24.679 align:start position:0% everything we need and we can again 01:59:24.679 --> 01:59:27.310 align:start position:0% everything we need and we can again check<01:59:24.920> the<01:59:25.239> errors<01:59:26.239> now<01:59:26.480> the<01:59:26.599> error<01:59:26.840> is<01:59:26.960> saying 01:59:27.310 --> 01:59:27.320 align:start position:0% check the errors now the error is saying 01:59:27.320 --> 01:59:30.470 align:start position:0% check the errors now the error is saying that<01:59:27.520> is<01:59:27.800> creating<01:59:28.199> user<01:59:28.800> is<01:59:29.000> not<01:59:29.280> defined<01:59:30.159> add 01:59:30.470 --> 01:59:30.480 align:start position:0% that is creating user is not defined add 01:59:30.480 --> 01:59:33.910 align:start position:0% that is creating user is not defined add signup<01:59:30.920> form<01:59:31.800> so<01:59:32.119> let's<01:59:32.360> go<01:59:32.480> to<01:59:32.639> our<01:59:32.840> signup 01:59:33.910 --> 01:59:33.920 align:start position:0% signup form so let's go to our signup 01:59:33.920 --> 01:59:38.069 align:start position:0% signup form so let's go to our signup form<01:59:34.920> and<01:59:35.079> let's<01:59:35.320> search<01:59:35.639> for<01:59:36.360> is<01:59:36.639> creating 01:59:38.069 --> 01:59:38.079 align:start position:0% form and let's search for is creating 01:59:38.079 --> 01:59:41.149 align:start position:0% form and let's search for is creating user<01:59:39.079> that<01:59:39.280> is<01:59:39.560> creating<01:59:39.920> user<01:59:40.480> is<01:59:40.639> coming 01:59:41.149 --> 01:59:41.159 align:start position:0% user that is creating user is coming 01:59:41.159 --> 01:59:44.669 align:start position:0% user that is creating user is coming right<01:59:41.440> here<01:59:42.199> from<01:59:42.520> our<01:59:42.960> use<01:59:43.520> create<01:59:43.960> user 01:59:44.669 --> 01:59:44.679 align:start position:0% right here from our use create user 01:59:44.679 --> 01:59:47.950 align:start position:0% right here from our use create user account<01:59:45.679> so<01:59:46.119> why<01:59:46.480> would<01:59:46.679> this<01:59:46.880> is<01:59:47.159> loading<01:59:47.639> not 01:59:47.950 --> 01:59:47.960 align:start position:0% account so why would this is loading not 01:59:47.960 --> 01:59:50.149 align:start position:0% account so why would this is loading not be<01:59:48.239> there<01:59:49.079> if<01:59:49.239> it's<01:59:49.480> actually<01:59:49.719> saying<01:59:50.040> that 01:59:50.149 --> 01:59:50.159 align:start position:0% be there if it's actually saying that 01:59:50.159 --> 01:59:52.390 align:start position:0% be there if it's actually saying that it's<01:59:50.360> not<01:59:50.520> returning<01:59:51.079> the<01:59:51.199> is<01:59:51.360> loading 01:59:52.390 --> 01:59:52.400 align:start position:0% it's not returning the is loading 01:59:52.400 --> 01:59:54.990 align:start position:0% it's not returning the is loading property<01:59:53.400> well<01:59:53.719> this<01:59:53.840> is<01:59:54.000> coming<01:59:54.280> from<01:59:54.560> use 01:59:54.990 --> 01:59:55.000 align:start position:0% property well this is coming from use 01:59:55.000 --> 01:59:58.270 align:start position:0% property well this is coming from use create<01:59:55.360> user<01:59:55.960> account<01:59:56.960> and<01:59:57.320> that<01:59:57.800> is<01:59:58.079> a 01:59:58.270 --> 01:59:58.280 align:start position:0% create user account and that is a 01:59:58.280 --> 02:00:01.589 align:start position:0% create user account and that is a mutation<01:59:58.880> from<01:59:59.119> react<01:59:59.760> query<02:00:00.760> so<02:00:01.239> let's<02:00:01.480> go 02:00:01.589 --> 02:00:01.599 align:start position:0% mutation from react query so let's go 02:00:01.599 --> 02:00:05.030 align:start position:0% mutation from react query so let's go ahead<02:00:01.960> and<02:00:02.280> check<02:00:02.560> out<02:00:02.960> our<02:00:03.520> package 02:00:05.030 --> 02:00:05.040 align:start position:0% ahead and check out our package 02:00:05.040 --> 02:00:09.270 align:start position:0% ahead and check out our package Json<02:00:06.040> and<02:00:06.679> would<02:00:06.880> you<02:00:07.119> look<02:00:07.360> at<02:00:07.599> that<02:00:08.360> tanac 02:00:09.270 --> 02:00:09.280 align:start position:0% Json and would you look at that tanac 02:00:09.280 --> 02:00:11.790 align:start position:0% Json and would you look at that tanac just<02:00:09.599> recently<02:00:10.400> changed<02:00:10.920> its<02:00:11.159> version<02:00:11.560> to 02:00:11.790 --> 02:00:11.800 align:start position:0% just recently changed its version to 02:00:11.800 --> 02:00:13.589 align:start position:0% just recently changed its version to version 02:00:13.589 --> 02:00:13.599 align:start position:0% version 02:00:13.599 --> 02:00:16.109 align:start position:0% version 5.0.0<02:00:14.599> and<02:00:14.840> When<02:00:15.040> developing<02:00:15.560> these<02:00:15.800> projects 02:00:16.109 --> 02:00:16.119 align:start position:0% 5.0.0 and When developing these projects 02:00:16.119 --> 02:00:18.790 align:start position:0% 5.0.0 and When developing these projects for<02:00:16.320> JSM<02:00:17.199> they<02:00:17.400> take<02:00:17.719> a<02:00:17.880> couple<02:00:18.079> of<02:00:18.280> weeks<02:00:18.679> up 02:00:18.790 --> 02:00:18.800 align:start position:0% for JSM they take a couple of weeks up 02:00:18.800 --> 02:00:21.830 align:start position:0% for JSM they take a couple of weeks up to<02:00:18.920> a<02:00:19.239> couple<02:00:19.440> of<02:00:19.679> months<02:00:20.040> to<02:00:20.320> create<02:00:21.199> so<02:00:21.480> it's 02:00:21.830 --> 02:00:21.840 align:start position:0% to a couple of months to create so it's 02:00:21.840 --> 02:00:23.990 align:start position:0% to a couple of months to create so it's possible<02:00:22.360> that<02:00:22.520> our<02:00:22.719> development<02:00:23.320> version<02:00:23.880> is 02:00:23.990 --> 02:00:24.000 align:start position:0% possible that our development version is 02:00:24.000 --> 02:00:27.589 align:start position:0% possible that our development version is using<02:00:24.360> an<02:00:24.599> older<02:00:25.199> version<02:00:25.639> of<02:00:25.960> react<02:00:26.599> query 02:00:27.589 --> 02:00:27.599 align:start position:0% using an older version of react query 02:00:27.599 --> 02:00:29.270 align:start position:0% using an older version of react query this<02:00:27.719> is<02:00:27.920> actually<02:00:28.239> quite<02:00:28.480> exciting<02:00:28.840> for<02:00:29.000> you 02:00:29.270 --> 02:00:29.280 align:start position:0% this is actually quite exciting for you 02:00:29.280 --> 02:00:31.189 align:start position:0% this is actually quite exciting for you right<02:00:29.440> now<02:00:29.840> because<02:00:30.239> we're<02:00:30.400> going<02:00:30.480> to<02:00:30.639> do<02:00:30.840> some 02:00:31.189 --> 02:00:31.199 align:start position:0% right now because we're going to do some 02:00:31.199 --> 02:00:33.589 align:start position:0% right now because we're going to do some live<02:00:31.560> debugging<02:00:32.560> we're<02:00:32.719> going<02:00:32.800> to<02:00:33.040> go<02:00:33.280> over 02:00:33.589 --> 02:00:33.599 align:start position:0% live debugging we're going to go over 02:00:33.599 --> 02:00:36.030 align:start position:0% live debugging we're going to go over the<02:00:33.760> documentation<02:00:34.520> of<02:00:34.679> the<02:00:34.800> new<02:00:35.000> version<02:00:35.880> and 02:00:36.030 --> 02:00:36.040 align:start position:0% the documentation of the new version and 02:00:36.040 --> 02:00:38.589 align:start position:0% the documentation of the new version and I'm<02:00:36.159> going<02:00:36.280> to<02:00:36.480> show<02:00:36.760> you<02:00:37.440> how<02:00:37.679> you<02:00:37.800> would<02:00:38.040> deal 02:00:38.589 --> 02:00:38.599 align:start position:0% I'm going to show you how you would deal 02:00:38.599 --> 02:00:40.550 align:start position:0% I'm going to show you how you would deal with<02:00:38.800> this<02:00:39.000> error<02:00:39.599> if<02:00:39.719> you're<02:00:39.960> following<02:00:40.400> a 02:00:40.550 --> 02:00:40.560 align:start position:0% with this error if you're following a 02:00:40.560 --> 02:00:43.669 align:start position:0% with this error if you're following a video<02:00:41.199> and<02:00:41.440> something<02:00:41.840> got<02:00:42.360> outdated<02:00:43.360> so<02:00:43.520> the 02:00:43.669 --> 02:00:43.679 align:start position:0% video and something got outdated so the 02:00:43.679 --> 02:00:45.470 align:start position:0% video and something got outdated so the first<02:00:43.920> thing<02:00:44.040> you<02:00:44.159> have<02:00:44.280> to<02:00:44.440> do<02:00:44.840> is<02:00:45.040> go<02:00:45.199> to<02:00:45.360> the 02:00:45.470 --> 02:00:45.480 align:start position:0% first thing you have to do is go to the 02:00:45.480 --> 02:00:47.750 align:start position:0% first thing you have to do is go to the library<02:00:45.920> we're<02:00:46.119> using<02:00:46.920> and<02:00:47.040> then<02:00:47.239> go<02:00:47.440> to<02:00:47.599> the 02:00:47.750 --> 02:00:47.760 align:start position:0% library we're using and then go to the 02:00:47.760 --> 02:00:50.030 align:start position:0% library we're using and then go to the docs<02:00:48.719> in<02:00:48.880> this<02:00:49.159> this<02:00:49.280> case<02:00:49.440> we're<02:00:49.599> wondering 02:00:50.030 --> 02:00:50.040 align:start position:0% docs in this this case we're wondering 02:00:50.040 --> 02:00:52.390 align:start position:0% docs in this this case we're wondering about<02:00:50.280> the<02:00:50.440> loading<02:00:51.040> so<02:00:51.199> if<02:00:51.320> I<02:00:51.440> search<02:00:51.719> for<02:00:52.000> is 02:00:52.390 --> 02:00:52.400 align:start position:0% about the loading so if I search for is 02:00:52.400 --> 02:00:55.629 align:start position:0% about the loading so if I search for is loading<02:00:53.400> no<02:00:53.880> nothing<02:00:54.239> is<02:00:54.560> here<02:00:55.239> but<02:00:55.400> if<02:00:55.520> I 02:00:55.629 --> 02:00:55.639 align:start position:0% loading no nothing is here but if I 02:00:55.639 --> 02:00:58.270 align:start position:0% loading no nothing is here but if I search<02:00:55.920> for<02:00:56.199> just<02:00:56.400> loading<02:00:57.079> itself<02:00:58.079> we<02:00:58.159> can 02:00:58.270 --> 02:00:58.280 align:start position:0% search for just loading itself we can 02:00:58.280 --> 02:01:00.069 align:start position:0% search for just loading itself we can see<02:00:58.560> displaying<02:00:59.199> Global<02:00:59.639> background 02:01:00.069 --> 02:01:00.079 align:start position:0% see displaying Global background 02:01:00.079 --> 02:01:02.990 align:start position:0% see displaying Global background fetching<02:01:00.520> loading<02:01:01.199> State<02:01:02.199> maybe<02:01:02.520> that's 02:01:02.990 --> 02:01:03.000 align:start position:0% fetching loading State maybe that's 02:01:03.000 --> 02:01:05.470 align:start position:0% fetching loading State maybe that's useful<02:01:04.000> now<02:01:04.320> we<02:01:04.440> can<02:01:04.560> see<02:01:04.719> that<02:01:04.880> this<02:01:04.960> is<02:01:05.159> for 02:01:05.470 --> 02:01:05.480 align:start position:0% useful now we can see that this is for 02:01:05.480 --> 02:01:08.589 align:start position:0% useful now we can see that this is for Global<02:01:06.079> fetching<02:01:06.800> right<02:01:07.400> but<02:01:07.599> we<02:01:07.719> want<02:01:07.840> to<02:01:08.040> see 02:01:08.589 --> 02:01:08.599 align:start position:0% Global fetching right but we want to see 02:01:08.599 --> 02:01:11.750 align:start position:0% Global fetching right but we want to see maybe<02:01:09.040> use<02:01:09.520> is<02:01:09.880> fetching<02:01:10.679> no<02:01:11.199> let's<02:01:11.360> see<02:01:11.520> if<02:01:11.639> I 02:01:11.750 --> 02:01:11.760 align:start position:0% maybe use is fetching no let's see if I 02:01:11.760 --> 02:01:15.350 align:start position:0% maybe use is fetching no let's see if I can<02:01:11.960> find<02:01:12.239> anything<02:01:12.639> useful<02:01:13.639> now<02:01:14.639> no<02:01:15.079> this<02:01:15.199> is 02:01:15.350 --> 02:01:15.360 align:start position:0% can find anything useful now no this is 02:01:15.360 --> 02:01:18.350 align:start position:0% can find anything useful now no this is not<02:01:15.679> that<02:01:15.840> useful<02:01:16.560> let's<02:01:16.760> see<02:01:17.119> a<02:01:17.400> quick<02:01:17.639> start 02:01:18.350 --> 02:01:18.360 align:start position:0% not that useful let's see a quick start 02:01:18.360 --> 02:01:21.350 align:start position:0% not that useful let's see a quick start here<02:01:18.679> we<02:01:18.800> can<02:01:19.159> use<02:01:19.440> the<02:01:19.599> use<02:01:20.239> mutation<02:01:21.239> they 02:01:21.350 --> 02:01:21.360 align:start position:0% here we can use the use mutation they 02:01:21.360 --> 02:01:23.390 align:start position:0% here we can use the use mutation they are<02:01:21.639> creating<02:01:22.360> everything<02:01:22.679> we<02:01:22.840> discussed<02:01:23.280> in 02:01:23.390 --> 02:01:23.400 align:start position:0% are creating everything we discussed in 02:01:23.400 --> 02:01:26.470 align:start position:0% are creating everything we discussed in this<02:01:23.599> video<02:01:24.079> creating<02:01:24.520> a<02:01:24.679> new<02:01:24.920> query<02:01:25.480> client 02:01:26.470 --> 02:01:26.480 align:start position:0% this video creating a new query client 02:01:26.480 --> 02:01:28.750 align:start position:0% this video creating a new query client using<02:01:26.840> that<02:01:27.079> query<02:01:27.400> client<02:01:27.840> and<02:01:28.000> using<02:01:28.440> one 02:01:28.750 --> 02:01:28.760 align:start position:0% using that query client and using one 02:01:28.760 --> 02:01:32.510 align:start position:0% using that query client and using one mutation<02:01:29.760> exactly<02:01:30.320> as<02:01:30.520> we<02:01:30.960> are<02:01:31.960> but<02:01:32.119> in<02:01:32.320> this 02:01:32.510 --> 02:01:32.520 align:start position:0% mutation exactly as we are but in this 02:01:32.520 --> 02:01:33.910 align:start position:0% mutation exactly as we are but in this case<02:01:32.800> I<02:01:32.880> don't<02:01:33.040> see<02:01:33.239> there're<02:01:33.440> using<02:01:33.760> the 02:01:33.910 --> 02:01:33.920 align:start position:0% case I don't see there're using the 02:01:33.920 --> 02:01:36.629 align:start position:0% case I don't see there're using the loading<02:01:34.639> so<02:01:34.840> let's<02:01:35.119> go<02:01:35.480> a<02:01:35.639> bit<02:01:35.840> more<02:01:36.119> in<02:01:36.360> depth 02:01:36.629 --> 02:01:36.639 align:start position:0% loading so let's go a bit more in depth 02:01:36.639 --> 02:01:39.430 align:start position:0% loading so let's go a bit more in depth into<02:01:36.840> the<02:01:37.320> overview<02:01:38.320> and<02:01:38.480> there<02:01:38.639> we<02:01:38.800> go<02:01:39.199> here 02:01:39.430 --> 02:01:39.440 align:start position:0% into the overview and there we go here 02:01:39.440 --> 02:01:42.510 align:start position:0% into the overview and there we go here the<02:01:39.560> user<02:01:39.880> query<02:01:40.599> and<02:01:40.840> it<02:01:41.040> indeed<02:01:41.719> is<02:01:42.079> using 02:01:42.510 --> 02:01:42.520 align:start position:0% the user query and it indeed is using 02:01:42.520 --> 02:01:44.950 align:start position:0% the user query and it indeed is using the<02:01:42.719> is<02:01:43.079> loading<02:01:43.480> property<02:01:44.280> but<02:01:44.480> this<02:01:44.560> is<02:01:44.719> a 02:01:44.950 --> 02:01:44.960 align:start position:0% the is loading property but this is a 02:01:44.960 --> 02:01:47.430 align:start position:0% the is loading property but this is a query<02:01:45.520> and<02:01:45.760> not<02:01:46.000> a<02:01:46.199> mutation<02:01:47.040> we<02:01:47.159> have<02:01:47.280> to 02:01:47.430 --> 02:01:47.440 align:start position:0% query and not a mutation we have to 02:01:47.440 --> 02:01:48.990 align:start position:0% query and not a mutation we have to differentiate<02:01:48.000> the<02:01:48.159> query<02:01:48.480> from<02:01:48.639> a<02:01:48.760> mutation 02:01:48.990 --> 02:01:49.000 align:start position:0% differentiate the query from a mutation 02:01:49.000 --> 02:01:51.270 align:start position:0% differentiate the query from a mutation mutation<02:01:49.880> so<02:01:50.079> maybe<02:01:50.320> we<02:01:50.440> want<02:01:50.520> to<02:01:50.679> read<02:01:50.880> a<02:01:51.040> bit 02:01:51.270 --> 02:01:51.280 align:start position:0% mutation so maybe we want to read a bit 02:01:51.280 --> 02:01:55.069 align:start position:0% mutation so maybe we want to read a bit more<02:01:51.960> about<02:01:52.280> the<02:01:52.440> mutation<02:01:53.400> so<02:01:53.560> let's<02:01:53.840> go<02:01:54.079> into 02:01:55.069 --> 02:01:55.079 align:start position:0% more about the mutation so let's go into 02:01:55.079 --> 02:01:57.910 align:start position:0% more about the mutation so let's go into mutations<02:01:56.079> and<02:01:56.239> let's<02:01:56.400> see<02:01:56.560> how<02:01:56.800> that 02:01:57.910 --> 02:01:57.920 align:start position:0% mutations and let's see how that 02:01:57.920 --> 02:02:01.350 align:start position:0% mutations and let's see how that works<02:01:58.920> so<02:01:59.199> we<02:01:59.320> can<02:01:59.480> use<02:01:59.679> a<02:01:59.880> mutation<02:02:00.719> and 02:02:01.350 --> 02:02:01.360 align:start position:0% works so we can use a mutation and 02:02:01.360 --> 02:02:04.189 align:start position:0% works so we can use a mutation and apparently<02:02:02.360> there<02:02:02.639> is<02:02:02.920> a<02:02:03.119> mutation<02:02:03.719> that<02:02:04.000> is 02:02:04.189 --> 02:02:04.199 align:start position:0% apparently there is a mutation that is 02:02:04.199 --> 02:02:07.990 align:start position:0% apparently there is a mutation that is loading<02:02:05.199> also<02:02:05.480> the<02:02:05.639> is<02:02:05.920> error<02:02:06.480> and<02:02:06.760> is 02:02:07.990 --> 02:02:08.000 align:start position:0% loading also the is error and is 02:02:08.000 --> 02:02:11.310 align:start position:0% loading also the is error and is Success<02:02:09.000> so<02:02:09.199> let's<02:02:09.440> compare<02:02:09.840> the<02:02:09.960> two<02:02:10.920> con 02:02:11.310 --> 02:02:11.320 align:start position:0% Success so let's compare the two con 02:02:11.320 --> 02:02:14.470 align:start position:0% Success so let's compare the two con mutation<02:02:12.199> is<02:02:12.400> equal<02:02:12.679> to<02:02:12.840> use<02:02:13.280> mutation<02:02:14.280> and 02:02:14.470 --> 02:02:14.480 align:start position:0% mutation is equal to use mutation and 02:02:14.480 --> 02:02:16.229 align:start position:0% mutation is equal to use mutation and they<02:02:14.639> use<02:02:14.840> it<02:02:15.079> directly<02:02:15.639> right<02:02:15.840> here<02:02:16.040> within 02:02:16.229 --> 02:02:16.239 align:start position:0% they use it directly right here within 02:02:16.239 --> 02:02:19.069 align:start position:0% they use it directly right here within the<02:02:16.440> code<02:02:17.400> oh<02:02:17.639> this<02:02:17.760> is<02:02:17.920> interesting<02:02:18.599> so 02:02:19.069 --> 02:02:19.079 align:start position:0% the code oh this is interesting so 02:02:19.079 --> 02:02:21.430 align:start position:0% the code oh this is interesting so unlike<02:02:19.520> queries<02:02:20.320> mutations<02:02:20.880> are<02:02:21.119> typically 02:02:21.430 --> 02:02:21.440 align:start position:0% unlike queries mutations are typically 02:02:21.440 --> 02:02:24.310 align:start position:0% unlike queries mutations are typically used<02:02:21.719> to<02:02:21.960> create<02:02:22.560> update<02:02:23.000> delete<02:02:23.480> data<02:02:24.000> or 02:02:24.310 --> 02:02:24.320 align:start position:0% used to create update delete data or 02:02:24.320 --> 02:02:27.229 align:start position:0% used to create update delete data or perform<02:02:25.159> side<02:02:25.440> effects<02:02:26.320> for<02:02:26.560> this<02:02:26.760> purpose 02:02:27.229 --> 02:02:27.239 align:start position:0% perform side effects for this purpose 02:02:27.239 --> 02:02:31.030 align:start position:0% perform side effects for this purpose stack<02:02:27.800> query<02:02:28.320> exports<02:02:28.840> a<02:02:29.040> used<02:02:29.360> mutation<02:02:30.040> hook 02:02:31.030 --> 02:02:31.040 align:start position:0% stack query exports a used mutation hook 02:02:31.040 --> 02:02:32.669 align:start position:0% stack query exports a used mutation hook but<02:02:31.239> I<02:02:31.360> just<02:02:31.480> figured<02:02:31.800> out<02:02:32.000> I'm<02:02:32.159> reading<02:02:32.480> the 02:02:32.669 --> 02:02:32.679 align:start position:0% but I just figured out I'm reading the 02:02:32.679 --> 02:02:35.189 align:start position:0% but I just figured out I'm reading the V4<02:02:33.320> docs<02:02:34.040> we<02:02:34.159> want<02:02:34.280> to<02:02:34.440> redirect<02:02:34.880> to<02:02:35.040> the 02:02:35.189 --> 02:02:35.199 align:start position:0% V4 docs we want to redirect to the 02:02:35.199 --> 02:02:38.350 align:start position:0% V4 docs we want to redirect to the latest<02:02:35.800> version<02:02:36.800> oh<02:02:37.360> there<02:02:37.520> we<02:02:37.679> go<02:02:38.159> can<02:02:38.280> you 02:02:38.350 --> 02:02:38.360 align:start position:0% latest version oh there we go can you 02:02:38.360 --> 02:02:41.350 align:start position:0% latest version oh there we go can you see<02:02:38.520> the<02:02:38.920> difference<02:02:39.920> mutation<02:02:40.639> that<02:02:40.960> is 02:02:41.350 --> 02:02:41.360 align:start position:0% see the difference mutation that is 02:02:41.360 --> 02:02:45.629 align:start position:0% see the difference mutation that is pending<02:02:42.239> and<02:02:42.440> not<02:02:42.760> is<02:02:43.400> loading<02:02:44.400> okay<02:02:45.040> okay<02:02:45.480> I 02:02:45.629 --> 02:02:45.639 align:start position:0% pending and not is loading okay okay I 02:02:45.639 --> 02:02:47.310 align:start position:0% pending and not is loading okay okay I get<02:02:45.760> it<02:02:46.360> maybe<02:02:46.599> they<02:02:46.719> wanted<02:02:46.920> to<02:02:47.079> make<02:02:47.199> a 02:02:47.310 --> 02:02:47.320 align:start position:0% get it maybe they wanted to make a 02:02:47.320 --> 02:02:49.390 align:start position:0% get it maybe they wanted to make a change<02:02:47.639> from<02:02:47.800> the<02:02:47.960> query<02:02:48.440> so<02:02:48.599> in<02:02:48.679> the<02:02:48.960> query 02:02:49.390 --> 02:02:49.400 align:start position:0% change from the query so in the query 02:02:49.400 --> 02:02:52.069 align:start position:0% change from the query so in the query right<02:02:49.599> here<02:02:50.440> once<02:02:50.599> we<02:02:50.760> try<02:02:50.960> to<02:02:51.119> call<02:02:51.400> it<02:02:51.920> yeah 02:02:52.069 --> 02:02:52.079 align:start position:0% right here once we try to call it yeah 02:02:52.079 --> 02:02:54.149 align:start position:0% right here once we try to call it yeah they're<02:02:52.280> also<02:02:52.480> calling<02:02:52.840> it<02:02:53.000> is<02:02:53.239> pending<02:02:53.960> so 02:02:54.149 --> 02:02:54.159 align:start position:0% they're also calling it is pending so 02:02:54.159 --> 02:02:55.709 align:start position:0% they're also calling it is pending so kind<02:02:54.280> of<02:02:54.480> waiting<02:02:54.840> for<02:02:55.079> something<02:02:55.480> not 02:02:55.709 --> 02:02:55.719 align:start position:0% kind of waiting for something not 02:02:55.719 --> 02:02:59.229 align:start position:0% kind of waiting for something not loading<02:02:56.480> but<02:02:56.920> pending<02:02:57.520> right<02:02:58.520> okay<02:02:58.960> okay<02:02:59.159> I'm 02:02:59.229 --> 02:02:59.239 align:start position:0% loading but pending right okay okay I'm 02:02:59.239 --> 02:03:01.390 align:start position:0% loading but pending right okay okay I'm going<02:02:59.360> to<02:02:59.480> give<02:02:59.599> it<02:02:59.719> to<02:02:59.920> them<02:03:00.360> but<02:03:00.840> now<02:03:01.119> if<02:03:01.239> we 02:03:01.390 --> 02:03:01.400 align:start position:0% going to give it to them but now if we 02:03:01.400 --> 02:03:04.310 align:start position:0% going to give it to them but now if we go<02:03:01.599> back<02:03:01.719> to<02:03:01.840> our<02:03:02.440> application<02:03:03.440> and<02:03:03.719> go<02:03:04.000> back 02:03:04.310 --> 02:03:04.320 align:start position:0% go back to our application and go back 02:03:04.320 --> 02:03:07.390 align:start position:0% go back to our application and go back here<02:03:04.960> and<02:03:05.119> simply<02:03:05.440> use<02:03:05.840> is<02:03:06.199> pending<02:03:07.119> instead 02:03:07.390 --> 02:03:07.400 align:start position:0% here and simply use is pending instead 02:03:07.400 --> 02:03:10.430 align:start position:0% here and simply use is pending instead of<02:03:07.560> is<02:03:07.760> loading<02:03:08.639> you<02:03:08.760> can<02:03:08.920> see<02:03:09.480> it<02:03:09.760> actually 02:03:10.430 --> 02:03:10.440 align:start position:0% of is loading you can see it actually 02:03:10.440 --> 02:03:13.470 align:start position:0% of is loading you can see it actually works<02:03:11.280> this<02:03:11.400> is<02:03:11.599> amazing<02:03:12.480> so<02:03:12.679> now<02:03:12.920> if<02:03:13.040> I<02:03:13.199> save 02:03:13.470 --> 02:03:13.480 align:start position:0% works this is amazing so now if I save 02:03:13.480 --> 02:03:17.510 align:start position:0% works this is amazing so now if I save the<02:03:14.000> file<02:03:15.000> and<02:03:15.199> reload<02:03:15.599> the<02:03:16.199> page<02:03:17.199> everything 02:03:17.510 --> 02:03:17.520 align:start position:0% the file and reload the page everything 02:03:17.520 --> 02:03:19.910 align:start position:0% the file and reload the page everything seems<02:03:17.960> good<02:03:18.639> but<02:03:18.960> it's<02:03:19.040> saying<02:03:19.320> is<02:03:19.560> creating 02:03:19.910 --> 02:03:19.920 align:start position:0% seems good but it's saying is creating 02:03:19.920 --> 02:03:22.470 align:start position:0% seems good but it's saying is creating user<02:03:20.239> is<02:03:20.400> not<02:03:20.639> defined<02:03:21.639> I<02:03:21.719> think<02:03:21.880> we<02:03:22.000> called<02:03:22.280> it 02:03:22.470 --> 02:03:22.480 align:start position:0% user is not defined I think we called it 02:03:22.480 --> 02:03:25.270 align:start position:0% user is not defined I think we called it is<02:03:22.760> creating<02:03:23.239> account<02:03:24.239> so<02:03:24.400> let's<02:03:24.599> simply<02:03:24.960> copy 02:03:25.270 --> 02:03:25.280 align:start position:0% is creating account so let's simply copy 02:03:25.280 --> 02:03:28.069 align:start position:0% is creating account so let's simply copy is<02:03:25.520> creating<02:03:26.079> account<02:03:27.079> move<02:03:27.400> all<02:03:27.639> the<02:03:27.760> way 02:03:28.069 --> 02:03:28.079 align:start position:0% is creating account move all the way 02:03:28.079 --> 02:03:31.270 align:start position:0% is creating account move all the way down<02:03:28.719> and<02:03:28.880> then<02:03:29.079> modify<02:03:29.560> it<02:03:30.560> and<02:03:30.760> now<02:03:31.000> we're 02:03:31.270 --> 02:03:31.280 align:start position:0% down and then modify it and now we're 02:03:31.280 --> 02:03:33.589 align:start position:0% down and then modify it and now we're back<02:03:31.440> to<02:03:31.599> our<02:03:31.840> sign<02:03:32.119> in<02:03:32.440> form<02:03:33.119> which<02:03:33.239> means<02:03:33.480> we 02:03:33.589 --> 02:03:33.599 align:start position:0% back to our sign in form which means we 02:03:33.599 --> 02:03:34.390 align:start position:0% back to our sign in form which means we were 02:03:34.390 --> 02:03:34.400 align:start position:0% were 02:03:34.400 --> 02:03:37.790 align:start position:0% were redirected<02:03:35.400> let's<02:03:35.599> try<02:03:35.800> to<02:03:36.000> close<02:03:36.280> and<02:03:36.800> reload 02:03:37.790 --> 02:03:37.800 align:start position:0% redirected let's try to close and reload 02:03:37.800 --> 02:03:40.229 align:start position:0% redirected let's try to close and reload okay<02:03:38.000> no<02:03:38.199> errors<02:03:38.679> that's<02:03:38.960> good<02:03:39.520> but<02:03:39.679> let's<02:03:39.920> go 02:03:40.229 --> 02:03:40.239 align:start position:0% okay no errors that's good but let's go 02:03:40.239 --> 02:03:42.790 align:start position:0% okay no errors that's good but let's go back<02:03:40.599> to<02:03:40.800> the<02:03:41.000> sign<02:03:41.400> up<02:03:41.679> form<02:03:42.360> that's<02:03:42.559> what<02:03:42.679> we 02:03:42.790 --> 02:03:42.800 align:start position:0% back to the sign up form that's what we 02:03:42.800 --> 02:03:44.750 align:start position:0% back to the sign up form that's what we were<02:03:42.960> working<02:03:43.239> on<02:03:43.520> this<02:03:43.719> entire 02:03:44.750 --> 02:03:44.760 align:start position:0% were working on this entire 02:03:44.760 --> 02:03:47.270 align:start position:0% were working on this entire time<02:03:45.760> okay<02:03:45.960> this<02:03:46.079> is<02:03:46.239> interesting<02:03:46.719> so<02:03:47.040> every 02:03:47.270 --> 02:03:47.280 align:start position:0% time okay this is interesting so every 02:03:47.280 --> 02:03:49.750 align:start position:0% time okay this is interesting so every time<02:03:47.559> we<02:03:47.760> go<02:03:48.040> back<02:03:48.199> to<02:03:48.400> sign<02:03:48.639> up<02:03:49.000> it<02:03:49.199> redirects 02:03:49.750 --> 02:03:49.760 align:start position:0% time we go back to sign up it redirects 02:03:49.760 --> 02:03:51.830 align:start position:0% time we go back to sign up it redirects us<02:03:50.040> back<02:03:50.239> to<02:03:50.480> sign 02:03:51.830 --> 02:03:51.840 align:start position:0% us back to sign 02:03:51.840 --> 02:03:54.350 align:start position:0% us back to sign in<02:03:52.840> I'm<02:03:53.000> guessing<02:03:53.360> that's<02:03:53.599> because<02:03:53.840> it<02:03:54.040> thinks 02:03:54.350 --> 02:03:54.360 align:start position:0% in I'm guessing that's because it thinks 02:03:54.360 --> 02:03:56.950 align:start position:0% in I'm guessing that's because it thinks we<02:03:54.480> have<02:03:54.679> already<02:03:55.079> created<02:03:55.400> a<02:03:55.559> user<02:03:56.520> so<02:03:56.840> what 02:03:56.950 --> 02:03:56.960 align:start position:0% we have already created a user so what 02:03:56.960 --> 02:04:00.149 align:start position:0% we have already created a user so what we<02:03:57.079> can<02:03:57.239> do<02:03:57.760> is<02:03:58.000> just<02:03:58.239> go<02:03:58.520> back<02:03:58.840> here<02:03:59.639> go<02:03:59.800> to<02:04:00.000> the 02:04:00.149 --> 02:04:00.159 align:start position:0% we can do is just go back here go to the 02:04:00.159 --> 02:04:03.149 align:start position:0% we can do is just go back here go to the application<02:04:00.840> Tab<02:04:01.639> and<02:04:01.800> check<02:04:02.119> our<02:04:02.440> local 02:04:03.149 --> 02:04:03.159 align:start position:0% application Tab and check our local 02:04:03.159 --> 02:04:06.229 align:start position:0% application Tab and check our local storage<02:04:04.159> it<02:04:04.280> seems<02:04:04.520> to<02:04:04.639> be<02:04:04.880> empty<02:04:05.679> as<02:04:05.840> well<02:04:06.079> as 02:04:06.229 --> 02:04:06.239 align:start position:0% storage it seems to be empty as well as 02:04:06.239 --> 02:04:09.109 align:start position:0% storage it seems to be empty as well as the<02:04:06.360> session<02:04:06.840> storage<02:04:07.840> so<02:04:08.040> the<02:04:08.239> question<02:04:08.599> is 02:04:09.109 --> 02:04:09.119 align:start position:0% the session storage so the question is 02:04:09.119 --> 02:04:10.790 align:start position:0% the session storage so the question is why<02:04:09.320> are<02:04:09.480> we<02:04:09.639> getting 02:04:10.790 --> 02:04:10.800 align:start position:0% why are we getting 02:04:10.800 --> 02:04:13.069 align:start position:0% why are we getting redirected<02:04:11.800> the<02:04:11.920> only<02:04:12.320> place<02:04:12.599> where<02:04:12.920> this 02:04:13.069 --> 02:04:13.079 align:start position:0% redirected the only place where this 02:04:13.079 --> 02:04:16.189 align:start position:0% redirected the only place where this could<02:04:13.320> occur<02:04:14.119> is<02:04:14.360> the<02:04:14.599> place<02:04:15.320> that<02:04:15.639> happens<02:04:16.079> as 02:04:16.189 --> 02:04:16.199 align:start position:0% could occur is the place that happens as 02:04:16.199 --> 02:04:18.430 align:start position:0% could occur is the place that happens as soon<02:04:16.360> as<02:04:16.520> we<02:04:16.639> load<02:04:16.920> the<02:04:17.159> page<02:04:17.960> do<02:04:18.119> you<02:04:18.239> know 02:04:18.430 --> 02:04:18.440 align:start position:0% soon as we load the page do you know 02:04:18.440 --> 02:04:21.270 align:start position:0% soon as we load the page do you know such<02:04:18.920> place<02:04:19.920> I<02:04:20.119> think<02:04:20.599> that's<02:04:20.800> going<02:04:20.960> to<02:04:21.119> be 02:04:21.270 --> 02:04:21.280 align:start position:0% such place I think that's going to be 02:04:21.280 --> 02:04:24.430 align:start position:0% such place I think that's going to be our<02:04:21.559> odd<02:04:22.280> context<02:04:23.280> here<02:04:23.679> we<02:04:23.840> have<02:04:23.960> a<02:04:24.119> use 02:04:24.430 --> 02:04:24.440 align:start position:0% our odd context here we have a use 02:04:24.440 --> 02:04:27.870 align:start position:0% our odd context here we have a use effect<02:04:25.199> and<02:04:25.520> here<02:04:25.960> we<02:04:26.119> navigate<02:04:26.800> to<02:04:27.000> sign 02:04:27.870 --> 02:04:27.880 align:start position:0% effect and here we navigate to sign 02:04:27.880 --> 02:04:31.069 align:start position:0% effect and here we navigate to sign in<02:04:28.880> so<02:04:29.239> right<02:04:29.400> in<02:04:29.639> here<02:04:30.040> for<02:04:30.360> now<02:04:30.719> we're<02:04:30.920> going 02:04:31.069 --> 02:04:31.079 align:start position:0% in so right in here for now we're going 02:04:31.079 --> 02:04:33.589 align:start position:0% in so right in here for now we're going to<02:04:31.320> comment<02:04:31.760> out<02:04:32.239> this<02:04:32.440> second<02:04:32.800> line<02:04:33.360> and<02:04:33.520> we 02:04:33.589 --> 02:04:33.599 align:start position:0% to comment out this second line and we 02:04:33.599 --> 02:04:36.870 align:start position:0% to comment out this second line and we can<02:04:33.800> put<02:04:33.920> it<02:04:34.239> right<02:04:34.400> here<02:04:34.639> above<02:04:35.520> and<02:04:35.920> save<02:04:36.199> it 02:04:36.870 --> 02:04:36.880 align:start position:0% can put it right here above and save it 02:04:36.880 --> 02:04:40.270 align:start position:0% can put it right here above and save it and<02:04:37.119> remove<02:04:37.599> this<02:04:37.840> or<02:04:38.280> sign<02:04:39.199> if<02:04:39.320> we<02:04:39.480> do<02:04:39.760> this 02:04:40.270 --> 02:04:40.280 align:start position:0% and remove this or sign if we do this 02:04:40.280 --> 02:04:44.229 align:start position:0% and remove this or sign if we do this and<02:04:40.559> now<02:04:40.920> if<02:04:41.040> we<02:04:41.199> go<02:04:41.400> to<02:04:41.719> sign<02:04:42.639> up<02:04:43.639> you<02:04:43.760> can<02:04:43.920> see 02:04:44.229 --> 02:04:44.239 align:start position:0% and now if we go to sign up you can see 02:04:44.239 --> 02:04:46.390 align:start position:0% and now if we go to sign up you can see it's<02:04:44.440> no<02:04:44.599> longer<02:04:44.920> going<02:04:45.079> to<02:04:45.280> redirect<02:04:45.920> us 02:04:46.390 --> 02:04:46.400 align:start position:0% it's no longer going to redirect us 02:04:46.400 --> 02:04:49.390 align:start position:0% it's no longer going to redirect us everything<02:04:46.800> is<02:04:47.159> working<02:04:48.159> and<02:04:48.320> there<02:04:48.440> we<02:04:48.599> go<02:04:48.880> go 02:04:49.390 --> 02:04:49.400 align:start position:0% everything is working and there we go go 02:04:49.400 --> 02:04:52.310 align:start position:0% everything is working and there we go go we<02:04:49.520> can<02:04:49.840> finally<02:04:50.280> see<02:04:51.000> our<02:04:51.280> signup<02:04:51.760> screen 02:04:52.310 --> 02:04:52.320 align:start position:0% we can finally see our signup screen 02:04:52.320 --> 02:04:54.470 align:start position:0% we can finally see our signup screen we've<02:04:52.520> been<02:04:52.719> working<02:04:53.079> on<02:04:53.480> for<02:04:53.760> such<02:04:53.960> a<02:04:54.119> long 02:04:54.470 --> 02:04:54.480 align:start position:0% we've been working on for such a long 02:04:54.480 --> 02:04:56.790 align:start position:0% we've been working on for such a long time<02:04:55.199> but<02:04:55.360> if<02:04:55.480> you<02:04:55.679> think<02:04:55.920> about<02:04:56.159> it<02:04:56.520> we 02:04:56.790 --> 02:04:56.800 align:start position:0% time but if you think about it we 02:04:56.800 --> 02:04:58.430 align:start position:0% time but if you think about it we weren't<02:04:57.159> working<02:04:57.480> on<02:04:57.639> just<02:04:57.800> the<02:04:57.960> signup 02:04:58.430 --> 02:04:58.440 align:start position:0% weren't working on just the signup 02:04:58.440 --> 02:05:00.870 align:start position:0% weren't working on just the signup screen<02:04:59.040> we<02:04:59.159> were<02:04:59.400> working<02:04:59.800> on<02:05:00.320> everything 02:05:00.870 --> 02:05:00.880 align:start position:0% screen we were working on everything 02:05:00.880 --> 02:05:03.870 align:start position:0% screen we were working on everything else<02:05:01.400> we'll<02:05:01.679> need<02:05:02.000> for<02:05:02.320> the<02:05:02.599> entirety<02:05:03.440> of<02:05:03.599> our 02:05:03.870 --> 02:05:03.880 align:start position:0% else we'll need for the entirety of our 02:05:03.880 --> 02:05:06.510 align:start position:0% else we'll need for the entirety of our application<02:05:04.880> so<02:05:05.159> now<02:05:05.599> if<02:05:05.719> we<02:05:05.880> go<02:05:06.079> back<02:05:06.239> to<02:05:06.360> our 02:05:06.510 --> 02:05:06.520 align:start position:0% application so now if we go back to our 02:05:06.520 --> 02:05:10.430 align:start position:0% application so now if we go back to our signup<02:05:06.880> form<02:05:07.639> we<02:05:07.840> know<02:05:08.320> what<02:05:08.480> needs<02:05:08.760> to<02:05:09.440> happen 02:05:10.430 --> 02:05:10.440 align:start position:0% signup form we know what needs to happen 02:05:10.440 --> 02:05:12.470 align:start position:0% signup form we know what needs to happen after<02:05:10.679> we<02:05:10.840> successfully<02:05:11.440> create<02:05:11.719> an<02:05:11.920> account 02:05:12.470 --> 02:05:12.480 align:start position:0% after we successfully create an account 02:05:12.480 --> 02:05:14.549 align:start position:0% after we successfully create an account we're<02:05:12.719> going<02:05:12.800> to<02:05:12.920> create<02:05:13.159> a<02:05:13.320> session<02:05:14.199> add<02:05:14.400> that 02:05:14.549 --> 02:05:14.559 align:start position:0% we're going to create a session add that 02:05:14.559 --> 02:05:17.629 align:start position:0% we're going to create a session add that to<02:05:14.679> the<02:05:14.760> user<02:05:15.199> context<02:05:16.199> and<02:05:16.400> then<02:05:16.840> navigate<02:05:17.440> to 02:05:17.629 --> 02:05:17.639 align:start position:0% to the user context and then navigate to 02:05:17.639 --> 02:05:21.350 align:start position:0% to the user context and then navigate to the<02:05:17.800> homepage<02:05:18.760> so<02:05:18.920> let's<02:05:19.119> see<02:05:19.639> if<02:05:19.880> that<02:05:20.360> works 02:05:21.350 --> 02:05:21.360 align:start position:0% the homepage so let's see if that works 02:05:21.360 --> 02:05:25.470 align:start position:0% the homepage so let's see if that works let's<02:05:21.639> try<02:05:22.119> with<02:05:22.520> something<02:05:23.040> like<02:05:23.760> the<02:05:24.199> real 02:05:25.470 --> 02:05:25.480 align:start position:0% let's try with something like the real 02:05:25.480 --> 02:05:28.270 align:start position:0% let's try with something like the real JSM<02:05:26.480> we<02:05:26.599> can<02:05:26.840> also<02:05:27.040> do<02:05:27.239> that<02:05:27.520> right<02:05:27.719> here<02:05:28.079> the 02:05:28.270 --> 02:05:28.280 align:start position:0% JSM we can also do that right here the 02:05:28.280 --> 02:05:31.669 align:start position:0% JSM we can also do that right here the real<02:05:28.800> JSM<02:05:29.800> the<02:05:30.000> email<02:05:30.400> can<02:05:30.559> be<02:05:30.840> something<02:05:31.320> like 02:05:31.669 --> 02:05:31.679 align:start position:0% real JSM the email can be something like 02:05:31.679 --> 02:05:35.589 align:start position:0% real JSM the email can be something like let's<02:05:31.880> do<02:05:32.320> Adrien<02:05:33.320> JSM<02:05:33.800> mastery.<02:05:34.559> proo<02:05:35.239> and<02:05:35.480> we 02:05:35.589 --> 02:05:35.599 align:start position:0% let's do Adrien JSM mastery. proo and we 02:05:35.599 --> 02:05:38.270 align:start position:0% let's do Adrien JSM mastery. proo and we can<02:05:35.760> choose<02:05:36.199> a<02:05:36.440> specific<02:05:36.960> password<02:05:37.599> and<02:05:37.840> click 02:05:38.270 --> 02:05:38.280 align:start position:0% can choose a specific password and click 02:05:38.280 --> 02:05:42.149 align:start position:0% can choose a specific password and click sign<02:05:38.800> up<02:05:39.800> it<02:05:39.920> says<02:05:40.639> loading<02:05:41.639> and<02:05:42.000> it 02:05:42.149 --> 02:05:42.159 align:start position:0% sign up it says loading and it 02:05:42.159 --> 02:05:45.149 align:start position:0% sign up it says loading and it disappeared<02:05:43.119> or<02:05:43.440> no<02:05:43.679> it<02:05:43.800> didn't<02:05:44.440> it<02:05:44.719> actually 02:05:45.149 --> 02:05:45.159 align:start position:0% disappeared or no it didn't it actually 02:05:45.159 --> 02:05:47.310 align:start position:0% disappeared or no it didn't it actually redirected<02:05:45.800> us<02:05:45.960> to<02:05:46.119> the<02:05:46.280> homepage<02:05:47.079> which 02:05:47.310 --> 02:05:47.320 align:start position:0% redirected us to the homepage which 02:05:47.320 --> 02:05:49.549 align:start position:0% redirected us to the homepage which right<02:05:47.520> now<02:05:47.840> is<02:05:48.040> completely<02:05:48.440> empty<02:05:48.679> empty<02:05:49.320> and 02:05:49.549 --> 02:05:49.559 align:start position:0% right now is completely empty empty and 02:05:49.559 --> 02:05:52.109 align:start position:0% right now is completely empty empty and has<02:05:49.719> the<02:05:49.880> root<02:05:50.199> layout<02:05:51.159> after<02:05:51.440> all<02:05:51.679> this<02:05:51.880> hard 02:05:52.109 --> 02:05:52.119 align:start position:0% has the root layout after all this hard 02:05:52.119 --> 02:05:53.709 align:start position:0% has the root layout after all this hard work<02:05:52.440> we<02:05:52.559> should<02:05:52.760> have<02:05:52.920> implemented<02:05:53.520> that 02:05:53.709 --> 02:05:53.719 align:start position:0% work we should have implemented that 02:05:53.719 --> 02:05:56.470 align:start position:0% work we should have implemented that confetti<02:05:54.199> screen<02:05:54.559> to<02:05:54.760> also<02:05:55.159> pop<02:05:55.400> up<02:05:55.880> as<02:05:56.320> this 02:05:56.470 --> 02:05:56.480 align:start position:0% confetti screen to also pop up as this 02:05:56.480 --> 02:05:59.069 align:start position:0% confetti screen to also pop up as this was<02:05:56.800> stuff<02:05:57.320> what<02:05:57.480> we've<02:05:57.679> gotten<02:05:58.040> here<02:05:58.880> if 02:05:59.069 --> 02:05:59.079 align:start position:0% was stuff what we've gotten here if 02:05:59.079 --> 02:06:01.390 align:start position:0% was stuff what we've gotten here if something<02:05:59.440> didn't<02:05:59.760> work<02:05:59.960> for<02:06:00.199> you<02:06:00.880> definitely 02:06:01.390 --> 02:06:01.400 align:start position:0% something didn't work for you definitely 02:06:01.400 --> 02:06:03.390 align:start position:0% something didn't work for you definitely make<02:06:01.559> sure<02:06:01.719> to<02:06:01.880> refer<02:06:02.199> to<02:06:02.360> the<02:06:02.480> codebase 02:06:03.390 --> 02:06:03.400 align:start position:0% make sure to refer to the codebase 02:06:03.400 --> 02:06:05.629 align:start position:0% make sure to refer to the codebase what's<02:06:03.679> also<02:06:04.079> possible<02:06:04.880> is<02:06:05.119> that<02:06:05.360> while<02:06:05.559> you 02:06:05.629 --> 02:06:05.639 align:start position:0% what's also possible is that while you 02:06:05.639 --> 02:06:08.069 align:start position:0% what's also possible is that while you were<02:06:05.800> trying<02:06:06.040> to<02:06:06.199> log<02:06:06.480> in<02:06:07.159> maybe<02:06:07.440> you<02:06:07.599> use<02:06:07.920> the 02:06:08.069 --> 02:06:08.079 align:start position:0% were trying to log in maybe you use the 02:06:08.079 --> 02:06:10.549 align:start position:0% were trying to log in maybe you use the same<02:06:08.360> email<02:06:08.800> before<02:06:09.360> so<02:06:09.559> your<02:06:09.760> user<02:06:10.159> already 02:06:10.549 --> 02:06:10.559 align:start position:0% same email before so your user already 02:06:10.559 --> 02:06:13.990 align:start position:0% same email before so your user already got<02:06:11.040> created<02:06:12.040> if<02:06:12.239> that's<02:06:12.440> the<02:06:12.639> case<02:06:13.440> try<02:06:13.840> a 02:06:13.990 --> 02:06:14.000 align:start position:0% got created if that's the case try a 02:06:14.000 --> 02:06:16.390 align:start position:0% got created if that's the case try a couple<02:06:14.239> of<02:06:14.400> different<02:06:14.719> emails<02:06:15.199> and<02:06:15.400> usernames 02:06:16.390 --> 02:06:16.400 align:start position:0% couple of different emails and usernames 02:06:16.400 --> 02:06:19.310 align:start position:0% couple of different emails and usernames and<02:06:16.679> ensure<02:06:17.079> that<02:06:17.280> isn't<02:06:17.559> the<02:06:17.719> case<02:06:18.760> but<02:06:19.079> now 02:06:19.310 --> 02:06:19.320 align:start position:0% and ensure that isn't the case but now 02:06:19.320 --> 02:06:20.870 align:start position:0% and ensure that isn't the case but now that<02:06:19.440> we<02:06:19.599> have<02:06:19.800> successfully<02:06:20.360> created<02:06:20.719> our 02:06:20.870 --> 02:06:20.880 align:start position:0% that we have successfully created our 02:06:20.880 --> 02:06:23.430 align:start position:0% that we have successfully created our user<02:06:21.559> you<02:06:21.679> can<02:06:21.840> see<02:06:22.199> that<02:06:22.520> we<02:06:22.719> have<02:06:22.880> it<02:06:23.239> right 02:06:23.430 --> 02:06:23.440 align:start position:0% user you can see that we have it right 02:06:23.440 --> 02:06:26.950 align:start position:0% user you can see that we have it right here<02:06:23.880> under<02:06:24.280> a<02:06:24.480> user<02:06:25.119> collection<02:06:26.119> no<02:06:26.360> longer 02:06:26.950 --> 02:06:26.960 align:start position:0% here under a user collection no longer 02:06:26.960 --> 02:06:29.669 align:start position:0% here under a user collection no longer is<02:06:27.079> it<02:06:27.320> just<02:06:27.520> under<02:06:27.840> o<02:06:28.480> but<02:06:28.719> also<02:06:29.040> under 02:06:29.669 --> 02:06:29.679 align:start position:0% is it just under o but also under 02:06:29.679 --> 02:06:33.149 align:start position:0% is it just under o but also under databases<02:06:30.679> users<02:06:31.520> and<02:06:31.679> we<02:06:31.840> have<02:06:32.000> the<02:06:32.159> real<02:06:32.480> JSM 02:06:33.149 --> 02:06:33.159 align:start position:0% databases users and we have the real JSM 02:06:33.159 --> 02:06:36.629 align:start position:0% databases users and we have the real JSM with<02:06:33.320> the<02:06:33.440> username<02:06:34.239> account<02:06:34.559> ID<02:06:35.320> email<02:06:36.280> and 02:06:36.629 --> 02:06:36.639 align:start position:0% with the username account ID email and 02:06:36.639 --> 02:06:39.270 align:start position:0% with the username account ID email and everything<02:06:37.040> else<02:06:37.719> so<02:06:37.960> this<02:06:38.079> is 02:06:39.270 --> 02:06:39.280 align:start position:0% everything else so this is 02:06:39.280 --> 02:06:42.229 align:start position:0% everything else so this is great<02:06:40.280> this<02:06:40.440> means<02:06:40.840> that<02:06:41.000> we<02:06:41.119> have<02:06:41.360> just<02:06:41.639> added 02:06:42.229 --> 02:06:42.239 align:start position:0% great this means that we have just added 02:06:42.239 --> 02:06:45.270 align:start position:0% great this means that we have just added a<02:06:42.639> document<02:06:43.159> in<02:06:43.239> our<02:06:43.559> database<02:06:44.559> and<02:06:44.800> also<02:06:45.159> that 02:06:45.270 --> 02:06:45.280 align:start position:0% a document in our database and also that 02:06:45.280 --> 02:06:47.589 align:start position:0% a document in our database and also that we<02:06:45.400> have<02:06:45.599> logged<02:06:45.920> in<02:06:46.040> our<02:06:46.239> user<02:06:46.840> so<02:06:47.079> now<02:06:47.320> if<02:06:47.400> we 02:06:47.589 --> 02:06:47.599 align:start position:0% we have logged in our user so now if we 02:06:47.599 --> 02:06:49.990 align:start position:0% we have logged in our user so now if we go<02:06:47.840> back<02:06:48.119> and<02:06:48.280> reload<02:06:48.840> the<02:06:49.000> page<02:06:49.639> you<02:06:49.800> can 02:06:49.990 --> 02:06:50.000 align:start position:0% go back and reload the page you can 02:06:50.000 --> 02:06:52.229 align:start position:0% go back and reload the page you can notice<02:06:50.400> that<02:06:50.559> we<02:06:50.760> stay<02:06:51.119> here<02:06:51.840> because<02:06:52.079> it 02:06:52.229 --> 02:06:52.239 align:start position:0% notice that we stay here because it 02:06:52.239 --> 02:06:54.870 align:start position:0% notice that we stay here because it knows<02:06:52.520> that<02:06:52.679> the<02:06:52.800> user<02:06:53.119> is<02:06:53.280> already<02:06:53.599> logged<02:06:53.960> in 02:06:54.870 --> 02:06:54.880 align:start position:0% knows that the user is already logged in 02:06:54.880 --> 02:06:57.270 align:start position:0% knows that the user is already logged in but<02:06:55.079> of<02:06:55.239> course<02:06:55.520> to<02:06:55.719> completely<02:06:56.239> finalize<02:06:56.960> our 02:06:57.270 --> 02:06:57.280 align:start position:0% but of course to completely finalize our 02:06:57.280 --> 02:07:00.189 align:start position:0% but of course to completely finalize our o<02:06:58.000> we<02:06:58.119> need<02:06:58.239> to<02:06:58.440> implement<02:06:58.840> the<02:06:59.040> login<02:06:59.559> screen 02:07:00.189 --> 02:07:00.199 align:start position:0% o we need to implement the login screen 02:07:00.199 --> 02:07:03.669 align:start position:0% o we need to implement the login screen as<02:07:00.400> well<02:07:01.159> so<02:07:01.400> what<02:07:01.559> we<02:07:01.679> can<02:07:01.840> do<02:07:02.440> is<02:07:02.800> right<02:07:03.079> click 02:07:03.669 --> 02:07:03.679 align:start position:0% as well so what we can do is right click 02:07:03.679 --> 02:07:07.109 align:start position:0% as well so what we can do is right click go<02:07:03.880> to<02:07:04.280> inspect<02:07:05.280> go<02:07:05.480> to<02:07:05.639> the<02:07:05.840> application<02:07:06.520> tab 02:07:07.109 --> 02:07:07.119 align:start position:0% go to inspect go to the application tab 02:07:07.119 --> 02:07:10.350 align:start position:0% go to inspect go to the application tab right<02:07:07.400> here<02:07:08.280> and<02:07:08.480> then<02:07:08.960> under<02:07:09.320> local<02:07:09.639> storage 02:07:10.350 --> 02:07:10.360 align:start position:0% right here and then under local storage 02:07:10.360 --> 02:07:13.149 align:start position:0% right here and then under local storage you'll<02:07:10.559> be<02:07:10.719> able<02:07:10.880> to<02:07:11.000> see<02:07:11.280> a<02:07:11.480> cookie<02:07:12.159> fullback 02:07:13.149 --> 02:07:13.159 align:start position:0% you'll be able to see a cookie fullback 02:07:13.159 --> 02:07:15.790 align:start position:0% you'll be able to see a cookie fullback this<02:07:13.320> was<02:07:13.559> added<02:07:13.920> by<02:07:14.280> ight<02:07:15.280> what<02:07:15.400> you<02:07:15.520> need<02:07:15.639> to 02:07:15.790 --> 02:07:15.800 align:start position:0% this was added by ight what you need to 02:07:15.800 --> 02:07:18.229 align:start position:0% this was added by ight what you need to do<02:07:16.360> is<02:07:16.599> just<02:07:16.840> clear<02:07:17.199> it<02:07:17.679> this<02:07:17.800> is<02:07:17.960> going<02:07:18.119> to 02:07:18.229 --> 02:07:18.239 align:start position:0% do is just clear it this is going to 02:07:18.239 --> 02:07:20.870 align:start position:0% do is just clear it this is going to clear<02:07:18.599> here<02:07:18.760> our<02:07:19.000> existing<02:07:19.480> session<02:07:20.360> and<02:07:20.559> then 02:07:20.870 --> 02:07:20.880 align:start position:0% clear here our existing session and then 02:07:20.880 --> 02:07:23.589 align:start position:0% clear here our existing session and then we<02:07:21.000> can<02:07:21.199> go<02:07:21.480> back<02:07:21.760> right<02:07:21.960> here<02:07:22.280> to<02:07:22.520> OD 02:07:23.589 --> 02:07:23.599 align:start position:0% we can go back right here to OD 02:07:23.599 --> 02:07:26.030 align:start position:0% we can go back right here to OD context<02:07:24.599> and<02:07:24.760> we<02:07:24.880> can<02:07:25.079> check<02:07:25.520> if<02:07:25.719> local 02:07:26.030 --> 02:07:26.040 align:start position:0% context and we can check if local 02:07:26.040 --> 02:07:28.830 align:start position:0% context and we can check if local storage<02:07:26.559> that<02:07:26.760> get<02:07:27.040> item<02:07:27.559> cookie<02:07:27.880> fback<02:07:28.599> is 02:07:28.830 --> 02:07:28.840 align:start position:0% storage that get item cookie fback is 02:07:28.840 --> 02:07:31.910 align:start position:0% storage that get item cookie fback is null<02:07:29.679> in<02:07:29.880> that<02:07:30.079> case<02:07:30.360> want<02:07:30.480> to<02:07:30.679> redirect<02:07:31.360> back 02:07:31.910 --> 02:07:31.920 align:start position:0% null in that case want to redirect back 02:07:31.920 --> 02:07:35.109 align:start position:0% null in that case want to redirect back to<02:07:32.239> the<02:07:32.480> sign<02:07:32.800> in<02:07:33.079> screen<02:07:33.840> so<02:07:34.079> now<02:07:34.360> if<02:07:34.599> we<02:07:34.760> save 02:07:35.109 --> 02:07:35.119 align:start position:0% to the sign in screen so now if we save 02:07:35.119 --> 02:07:37.870 align:start position:0% to the sign in screen so now if we save this<02:07:35.960> you<02:07:36.079> can<02:07:36.199> see<02:07:36.440> we're<02:07:36.760> redirected<02:07:37.520> to<02:07:37.719> the 02:07:37.870 --> 02:07:37.880 align:start position:0% this you can see we're redirected to the 02:07:37.880 --> 02:07:40.750 align:start position:0% this you can see we're redirected to the signin<02:07:38.400> form<02:07:39.320> so<02:07:39.559> now<02:07:40.159> let's<02:07:40.360> try<02:07:40.559> to 02:07:40.750 --> 02:07:40.760 align:start position:0% signin form so now let's try to 02:07:40.760 --> 02:07:44.430 align:start position:0% signin form so now let's try to implement<02:07:41.360> the<02:07:41.559> sign<02:07:42.239> in<02:07:43.239> trust<02:07:43.559> me<02:07:43.840> to<02:07:44.000> do<02:07:44.159> it 02:07:44.430 --> 02:07:44.440 align:start position:0% implement the sign in trust me to do it 02:07:44.440 --> 02:07:46.870 align:start position:0% implement the sign in trust me to do it it<02:07:44.520> won't<02:07:44.800> be<02:07:45.079> as<02:07:45.520> difficult<02:07:45.960> as<02:07:46.119> implementing 02:07:46.870 --> 02:07:46.880 align:start position:0% it won't be as difficult as implementing 02:07:46.880 --> 02:07:50.709 align:start position:0% it won't be as difficult as implementing the<02:07:47.079> sign<02:07:47.360> up<02:07:48.159> what<02:07:48.320> we<02:07:48.599> can<02:07:48.760> do<02:07:49.320> is<02:07:49.800> copy 02:07:50.709 --> 02:07:50.719 align:start position:0% the sign up what we can do is copy 02:07:50.719 --> 02:07:54.270 align:start position:0% the sign up what we can do is copy literally<02:07:51.360> the<02:07:51.719> entire<02:07:52.480> sign<02:07:52.880> up<02:07:53.280> form 02:07:54.270 --> 02:07:54.280 align:start position:0% literally the entire sign up form 02:07:54.280 --> 02:07:58.229 align:start position:0% literally the entire sign up form exactly<02:07:54.960> as<02:07:55.079> it<02:07:55.280> is<02:07:56.280> and<02:07:56.599> then<02:07:57.079> go<02:07:57.280> to<02:07:57.520> sign<02:07:57.920> in 02:07:58.229 --> 02:07:58.239 align:start position:0% exactly as it is and then go to sign in 02:07:58.239 --> 02:08:02.069 align:start position:0% exactly as it is and then go to sign in form<02:07:59.119> and<02:07:59.559> paste<02:07:59.920> it<02:08:00.360> right<02:08:00.719> here<02:08:01.719> first<02:08:01.920> of 02:08:02.069 --> 02:08:02.079 align:start position:0% form and paste it right here first of 02:08:02.079 --> 02:08:05.030 align:start position:0% form and paste it right here first of all<02:08:02.559> rename<02:08:03.000> it<02:08:03.199> from<02:08:03.480> sign<02:08:04.079> up<02:08:04.400> form<02:08:04.920> right 02:08:05.030 --> 02:08:05.040 align:start position:0% all rename it from sign up form right 02:08:05.040 --> 02:08:08.270 align:start position:0% all rename it from sign up form right here<02:08:05.159> at<02:08:05.280> the<02:08:05.440> bottom<02:08:06.119> to<02:08:06.360> sign<02:08:06.719> in<02:08:07.079> form<02:08:08.000> also 02:08:08.270 --> 02:08:08.280 align:start position:0% here at the bottom to sign in form also 02:08:08.280 --> 02:08:12.149 align:start position:0% here at the bottom to sign in form also rename<02:08:08.639> it<02:08:09.280> right<02:08:09.719> here<02:08:10.000> at<02:08:10.159> the<02:08:10.679> top<02:08:11.679> and<02:08:11.880> now 02:08:12.149 --> 02:08:12.159 align:start position:0% rename it right here at the top and now 02:08:12.159 --> 02:08:14.109 align:start position:0% rename it right here at the top and now there<02:08:12.280> are<02:08:12.520> couple<02:08:12.760> of<02:08:12.920> modifications<02:08:13.880> we'll 02:08:14.109 --> 02:08:14.119 align:start position:0% there are couple of modifications we'll 02:08:14.119 --> 02:08:16.870 align:start position:0% there are couple of modifications we'll have<02:08:14.239> to<02:08:14.559> make<02:08:15.559> let's<02:08:15.760> start<02:08:16.040> from<02:08:16.199> the<02:08:16.400> top<02:08:16.719> to 02:08:16.870 --> 02:08:16.880 align:start position:0% have to make let's start from the top to 02:08:16.880 --> 02:08:19.109 align:start position:0% have to make let's start from the top to the<02:08:17.040> bottom<02:08:17.800> we'll<02:08:18.000> be<02:08:18.119> using<02:08:18.520> the<02:08:18.599> use<02:08:18.800> user 02:08:19.109 --> 02:08:19.119 align:start position:0% the bottom we'll be using the use user 02:08:19.119 --> 02:08:21.629 align:start position:0% the bottom we'll be using the use user context<02:08:19.760> that's<02:08:20.119> okay<02:08:20.880> and<02:08:21.040> we'll<02:08:21.239> use<02:08:21.480> the 02:08:21.629 --> 02:08:21.639 align:start position:0% context that's okay and we'll use the 02:08:21.639 --> 02:08:24.030 align:start position:0% context that's okay and we'll use the use<02:08:21.920> signin<02:08:22.719> in<02:08:22.920> this<02:08:23.079> case<02:08:23.280> we<02:08:23.440> don't<02:08:23.719> need 02:08:24.030 --> 02:08:24.040 align:start position:0% use signin in this case we don't need 02:08:24.040 --> 02:08:27.109 align:start position:0% use signin in this case we don't need the<02:08:24.159> use<02:08:24.520> create<02:08:25.000> account<02:08:25.960> the<02:08:26.119> form<02:08:26.679> is<02:08:26.880> only 02:08:27.109 --> 02:08:27.119 align:start position:0% the use create account the form is only 02:08:27.119 --> 02:08:28.750 align:start position:0% the use create account the form is only going<02:08:27.320> to<02:08:27.559> accept<02:08:27.880> the<02:08:28.079> email<02:08:28.400> and<02:08:28.520> the 02:08:28.750 --> 02:08:28.760 align:start position:0% going to accept the email and the 02:08:28.760 --> 02:08:30.750 align:start position:0% going to accept the email and the password<02:08:29.440> not<02:08:29.639> the<02:08:29.800> name<02:08:30.000> and<02:08:30.159> the<02:08:30.280> username 02:08:30.750 --> 02:08:30.760 align:start position:0% password not the name and the username 02:08:30.760 --> 02:08:33.549 align:start position:0% password not the name and the username as<02:08:30.960> well<02:08:31.960> and<02:08:32.239> we<02:08:32.400> have<02:08:32.520> to<02:08:32.679> change<02:08:33.079> this<02:08:33.280> to 02:08:33.549 --> 02:08:33.559 align:start position:0% as well and we have to change this to 02:08:33.559 --> 02:08:36.990 align:start position:0% as well and we have to change this to sign<02:08:33.960> in<02:08:34.639> validation<02:08:35.639> so<02:08:36.199> let's<02:08:36.440> go<02:08:36.599> to<02:08:36.760> our 02:08:36.990 --> 02:08:37.000 align:start position:0% sign in validation so let's go to our 02:08:37.000 --> 02:08:39.549 align:start position:0% sign in validation so let's go to our Zod<02:08:37.679> which<02:08:37.840> is<02:08:38.079> right<02:08:38.280> here<02:08:38.520> under<02:08:38.880> validation 02:08:39.549 --> 02:08:39.559 align:start position:0% Zod which is right here under validation 02:08:39.559 --> 02:08:42.709 align:start position:0% Zod which is right here under validation index<02:08:40.119> DS<02:08:41.119> and<02:08:41.280> we<02:08:41.400> can<02:08:41.559> duplicate<02:08:42.119> this<02:08:42.520> right 02:08:42.709 --> 02:08:42.719 align:start position:0% index DS and we can duplicate this right 02:08:42.719 --> 02:08:46.669 align:start position:0% index DS and we can duplicate this right below<02:08:43.719> rename<02:08:44.159> it<02:08:44.440> to<02:08:44.800> sign<02:08:45.199> in<02:08:45.679> validation 02:08:46.669 --> 02:08:46.679 align:start position:0% below rename it to sign in validation 02:08:46.679 --> 02:08:49.149 align:start position:0% below rename it to sign in validation and<02:08:46.920> only<02:08:47.440> contain<02:08:48.079> the<02:08:48.440> email<02:08:48.800> and<02:08:48.960> the 02:08:49.149 --> 02:08:49.159 align:start position:0% and only contain the email and the 02:08:49.159 --> 02:08:51.470 align:start position:0% and only contain the email and the password<02:08:49.760> we<02:08:49.880> can<02:08:50.040> remove<02:08:50.360> the<02:08:50.520> name<02:08:50.679> and<02:08:50.840> the 02:08:51.470 --> 02:08:51.480 align:start position:0% password we can remove the name and the 02:08:51.480 --> 02:08:54.830 align:start position:0% password we can remove the name and the username<02:08:52.480> then<02:08:52.800> you<02:08:52.880> can<02:08:53.119> go<02:08:53.360> back<02:08:54.280> and 02:08:54.830 --> 02:08:54.840 align:start position:0% username then you can go back and 02:08:54.840 --> 02:08:58.149 align:start position:0% username then you can go back and doubleclick<02:08:55.520> this<02:08:56.119> and<02:08:56.480> press<02:08:56.920> f2<02:08:57.920> this<02:08:58.040> is 02:08:58.149 --> 02:08:58.159 align:start position:0% doubleclick this and press f2 this is 02:08:58.159 --> 02:09:00.510 align:start position:0% doubleclick this and press f2 this is going<02:08:58.320> to<02:08:58.520> open<02:08:58.800> up<02:08:58.960> a<02:08:59.159> rename<02:08:59.719> window<02:09:00.280> or<02:09:00.440> you 02:09:00.510 --> 02:09:00.520 align:start position:0% going to open up a rename window or you 02:09:00.520 --> 02:09:03.470 align:start position:0% going to open up a rename window or you can<02:09:00.719> just<02:09:00.880> simply<02:09:01.239> press<02:09:01.639> sign<02:09:02.040> in<02:09:03.040> and<02:09:03.239> press 02:09:03.470 --> 02:09:03.480 align:start position:0% can just simply press sign in and press 02:09:03.480 --> 02:09:05.950 align:start position:0% can just simply press sign in and press enter<02:09:04.360> it's<02:09:04.480> going<02:09:04.639> to<02:09:04.800> automatically<02:09:05.559> change 02:09:05.950 --> 02:09:05.960 align:start position:0% enter it's going to automatically change 02:09:05.960 --> 02:09:08.189 align:start position:0% enter it's going to automatically change all<02:09:06.199> of<02:09:06.320> the<02:09:06.480> naming<02:09:07.480> if<02:09:07.639> this<02:09:07.760> didn't<02:09:08.000> work 02:09:08.189 --> 02:09:08.199 align:start position:0% all of the naming if this didn't work 02:09:08.199 --> 02:09:10.430 align:start position:0% all of the naming if this didn't work for<02:09:08.360> you<02:09:08.880> simply<02:09:09.280> exchange<02:09:09.840> every<02:09:10.119> time<02:09:10.320> that 02:09:10.430 --> 02:09:10.440 align:start position:0% for you simply exchange every time that 02:09:10.440 --> 02:09:13.470 align:start position:0% for you simply exchange every time that it<02:09:10.520> says<02:09:10.800> sign<02:09:11.040> up<02:09:11.480> to<02:09:11.679> say<02:09:11.960> sign<02:09:12.199> in<02:09:13.119> after 02:09:13.470 --> 02:09:13.480 align:start position:0% it says sign up to say sign in after 02:09:13.480 --> 02:09:16.510 align:start position:0% it says sign up to say sign in after that<02:09:13.880> we<02:09:14.119> have<02:09:14.320> our<02:09:14.559> submit<02:09:15.000> Handler<02:09:16.000> we<02:09:16.199> also 02:09:16.510 --> 02:09:16.520 align:start position:0% that we have our submit Handler we also 02:09:16.520 --> 02:09:18.790 align:start position:0% that we have our submit Handler we also get<02:09:16.679> the<02:09:16.880> values<02:09:17.440> but<02:09:17.599> we<02:09:17.719> can<02:09:17.880> skip<02:09:18.400> the<02:09:18.520> user 02:09:18.790 --> 02:09:18.800 align:start position:0% get the values but we can skip the user 02:09:18.800 --> 02:09:21.109 align:start position:0% get the values but we can skip the user creation<02:09:19.320> process<02:09:19.840> and<02:09:20.040> only<02:09:20.400> focus<02:09:20.760> on<02:09:20.960> the 02:09:21.109 --> 02:09:21.119 align:start position:0% creation process and only focus on the 02:09:21.119 --> 02:09:23.270 align:start position:0% creation process and only focus on the session<02:09:21.960> still<02:09:22.440> the<02:09:22.559> check-in<02:09:22.960> is<02:09:23.040> going<02:09:23.159> to 02:09:23.270 --> 02:09:23.280 align:start position:0% session still the check-in is going to 02:09:23.280 --> 02:09:25.790 align:start position:0% session still the check-in is going to be<02:09:23.440> the<02:09:23.599> same<02:09:24.320> and<02:09:24.639> everything<02:09:25.040> else<02:09:25.480> is<02:09:25.639> going 02:09:25.790 --> 02:09:25.800 align:start position:0% be the same and everything else is going 02:09:25.800 --> 02:09:28.950 align:start position:0% be the same and everything else is going to<02:09:25.960> be<02:09:26.599> exactly<02:09:27.159> the<02:09:27.320> same<02:09:28.239> but<02:09:28.480> we'll<02:09:28.679> have<02:09:28.800> to 02:09:28.950 --> 02:09:28.960 align:start position:0% to be exactly the same but we'll have to 02:09:28.960 --> 02:09:31.709 align:start position:0% to be exactly the same but we'll have to modify<02:09:29.520> our<02:09:29.760> form<02:09:30.639> instead<02:09:30.920> of<02:09:31.079> create<02:09:31.360> a<02:09:31.480> new 02:09:31.709 --> 02:09:31.719 align:start position:0% modify our form instead of create a new 02:09:31.719 --> 02:09:35.709 align:start position:0% modify our form instead of create a new account<02:09:32.280> we<02:09:32.400> can<02:09:32.599> say<02:09:33.400> log<02:09:33.880> in<02:09:34.480> to<02:09:34.840> your 02:09:35.709 --> 02:09:35.719 align:start position:0% account we can say log in to your 02:09:35.719 --> 02:09:37.950 align:start position:0% account we can say log in to your account<02:09:36.719> we<02:09:36.840> can<02:09:37.000> say<02:09:37.360> something<02:09:37.639> more 02:09:37.950 --> 02:09:37.960 align:start position:0% account we can say something more 02:09:37.960 --> 02:09:40.390 align:start position:0% account we can say something more personal<02:09:38.679> something<02:09:39.040> like<02:09:39.280> welcome<02:09:39.760> back 02:09:40.390 --> 02:09:40.400 align:start position:0% personal something like welcome back 02:09:40.400 --> 02:09:43.510 align:start position:0% personal something like welcome back please<02:09:41.239> enter<02:09:41.719> your 02:09:43.510 --> 02:09:43.520 align:start position:0% please enter your 02:09:43.520 --> 02:09:46.189 align:start position:0% please enter your details<02:09:44.520> then<02:09:44.920> we<02:09:45.119> don't<02:09:45.440> have<02:09:45.599> the<02:09:45.760> first<02:09:46.000> two 02:09:46.189 --> 02:09:46.199 align:start position:0% details then we don't have the first two 02:09:46.199 --> 02:09:48.830 align:start position:0% details then we don't have the first two Fields<02:09:46.719> so<02:09:46.880> we<02:09:47.000> can<02:09:47.199> completely<02:09:47.679> remove<02:09:48.079> them 02:09:48.830 --> 02:09:48.840 align:start position:0% Fields so we can completely remove them 02:09:48.840 --> 02:09:51.030 align:start position:0% Fields so we can completely remove them the<02:09:49.000> only<02:09:49.280> thing<02:09:49.480> we<02:09:49.639> do<02:09:49.960> have<02:09:50.440> is<02:09:50.599> going<02:09:50.760> to<02:09:50.880> be 02:09:51.030 --> 02:09:51.040 align:start position:0% the only thing we do have is going to be 02:09:51.040 --> 02:09:54.310 align:start position:0% the only thing we do have is going to be the<02:09:51.199> email<02:09:52.000> and<02:09:52.159> the<02:09:52.679> password<02:09:53.679> so<02:09:53.880> now<02:09:54.079> if<02:09:54.159> you 02:09:54.310 --> 02:09:54.320 align:start position:0% the email and the password so now if you 02:09:54.320 --> 02:09:56.390 align:start position:0% the email and the password so now if you save<02:09:54.679> this<02:09:55.199> you<02:09:55.320> can<02:09:55.480> see<02:09:55.760> it's<02:09:55.960> no<02:09:56.119> longer 02:09:56.390 --> 02:09:56.400 align:start position:0% save this you can see it's no longer 02:09:56.400 --> 02:09:58.709 align:start position:0% save this you can see it's no longer going<02:09:56.480> to<02:09:56.599> be<02:09:56.800> is<02:09:57.040> creating<02:09:57.559> account<02:09:58.520> this 02:09:58.709 --> 02:09:58.719 align:start position:0% going to be is creating account this 02:09:58.719 --> 02:10:02.549 align:start position:0% going to be is creating account this time<02:09:58.960> it's<02:09:59.159> going<02:09:59.280> to<02:09:59.480> be<02:09:59.840> is<02:10:00.559> user 02:10:02.549 --> 02:10:02.559 align:start position:0% time it's going to be is user 02:10:02.559 --> 02:10:06.589 align:start position:0% time it's going to be is user loading<02:10:03.840> and<02:10:04.840> is<02:10:05.000> that<02:10:05.199> it<02:10:05.840> we<02:10:05.960> won't<02:10:06.280> need 02:10:06.589 --> 02:10:06.599 align:start position:0% loading and is that it we won't need 02:10:06.599 --> 02:10:09.830 align:start position:0% loading and is that it we won't need this<02:10:06.840> rename<02:10:07.400> right<02:10:07.960> here<02:10:08.960> and<02:10:09.199> we<02:10:09.320> won't<02:10:09.559> need 02:10:09.830 --> 02:10:09.840 align:start position:0% this rename right here and we won't need 02:10:09.840 --> 02:10:13.189 align:start position:0% this rename right here and we won't need use<02:10:10.159> create<02:10:10.760> account<02:10:11.760> if<02:10:11.880> we<02:10:12.000> save<02:10:12.360> this<02:10:13.000> our 02:10:13.189 --> 02:10:13.199 align:start position:0% use create account if we save this our 02:10:13.199 --> 02:10:16.149 align:start position:0% use create account if we save this our form<02:10:13.840> is<02:10:14.159> back<02:10:14.920> and<02:10:15.119> we<02:10:15.280> also<02:10:15.520> need<02:10:15.679> to<02:10:15.840> change 02:10:16.149 --> 02:10:16.159 align:start position:0% form is back and we also need to change 02:10:16.159 --> 02:10:18.390 align:start position:0% form is back and we also need to change the<02:10:16.400> last<02:10:16.639> thing<02:10:16.840> that<02:10:16.960> it<02:10:17.079> says<02:10:17.400> right<02:10:17.599> here 02:10:18.390 --> 02:10:18.400 align:start position:0% the last thing that it says right here 02:10:18.400 --> 02:10:20.149 align:start position:0% the last thing that it says right here as<02:10:18.480> well<02:10:18.639> as<02:10:18.760> the<02:10:18.920> button<02:10:19.400> it's<02:10:19.520> going<02:10:19.719> to<02:10:19.840> say 02:10:20.149 --> 02:10:20.159 align:start position:0% as well as the button it's going to say 02:10:20.159 --> 02:10:24.790 align:start position:0% as well as the button it's going to say sign<02:10:20.800> in<02:10:21.800> and<02:10:21.920> then<02:10:22.199> here<02:10:22.599> we<02:10:22.719> can<02:10:22.880> say<02:10:23.880> don't 02:10:24.790 --> 02:10:24.800 align:start position:0% sign in and then here we can say don't 02:10:24.800 --> 02:10:25.950 align:start position:0% sign in and then here we can say don't have<02:10:25.079> an 02:10:25.950 --> 02:10:25.960 align:start position:0% have an 02:10:25.960 --> 02:10:30.189 align:start position:0% have an account<02:10:26.960> in<02:10:27.199> that<02:10:27.480> case<02:10:28.159> you<02:10:28.320> can<02:10:28.960> sign 02:10:30.189 --> 02:10:30.199 align:start position:0% account in that case you can sign 02:10:30.199 --> 02:10:33.430 align:start position:0% account in that case you can sign up<02:10:31.199> and<02:10:31.360> then<02:10:31.520> this<02:10:31.639> is<02:10:31.760> going<02:10:31.920> to<02:10:32.079> redirect<02:10:32.639> to 02:10:33.430 --> 02:10:33.440 align:start position:0% up and then this is going to redirect to 02:10:33.440 --> 02:10:37.350 align:start position:0% up and then this is going to redirect to sign<02:10:34.159> up<02:10:35.159> you<02:10:35.280> see<02:10:35.520> how<02:10:35.679> simple<02:10:36.040> that<02:10:36.239> was<02:10:37.199> and 02:10:37.350 --> 02:10:37.360 align:start position:0% sign up you see how simple that was and 02:10:37.360 --> 02:10:39.390 align:start position:0% sign up you see how simple that was and there<02:10:37.480> we<02:10:37.639> go<02:10:38.199> now<02:10:38.360> if<02:10:38.480> you<02:10:38.639> click<02:10:38.840> it<02:10:39.119> you<02:10:39.280> go 02:10:39.390 --> 02:10:39.400 align:start position:0% there we go now if you click it you go 02:10:39.400 --> 02:10:41.709 align:start position:0% there we go now if you click it you go to<02:10:39.599> sign<02:10:39.840> up<02:10:40.280> you<02:10:40.440> go<02:10:40.559> to<02:10:40.719> login<02:10:41.440> this<02:10:41.559> is 02:10:41.709 --> 02:10:41.719 align:start position:0% to sign up you go to login this is 02:10:41.719 --> 02:10:43.990 align:start position:0% to sign up you go to login this is looking<02:10:42.040> great<02:10:42.880> and<02:10:43.040> now<02:10:43.280> let's<02:10:43.440> try<02:10:43.599> to<02:10:43.760> log 02:10:43.990 --> 02:10:44.000 align:start position:0% looking great and now let's try to log 02:10:44.000 --> 02:10:45.549 align:start position:0% looking great and now let's try to log in<02:10:44.159> with<02:10:44.280> the<02:10:44.440> account<02:10:44.760> we<02:10:44.880> have 02:10:45.549 --> 02:10:45.559 align:start position:0% in with the account we have 02:10:45.559 --> 02:10:47.910 align:start position:0% in with the account we have created<02:10:46.559> I'll<02:10:46.760> use<02:10:47.000> the<02:10:47.159> same<02:10:47.440> email<02:10:47.719> and 02:10:47.910 --> 02:10:47.920 align:start position:0% created I'll use the same email and 02:10:47.920 --> 02:10:51.510 align:start position:0% created I'll use the same email and password<02:10:48.679> and<02:10:48.880> click<02:10:49.119> sign<02:10:49.760> in<02:10:50.760> this<02:10:51.000> time<02:10:51.320> it 02:10:51.510 --> 02:10:51.520 align:start position:0% password and click sign in this time it 02:10:51.520 --> 02:10:53.990 align:start position:0% password and click sign in this time it doesn't<02:10:51.800> seem<02:10:51.960> to<02:10:52.159> go<02:10:52.360> through<02:10:53.199> let's<02:10:53.400> see<02:10:53.760> why 02:10:53.990 --> 02:10:54.000 align:start position:0% doesn't seem to go through let's see why 02:10:54.000 --> 02:10:56.030 align:start position:0% doesn't seem to go through let's see why that<02:10:54.159> might<02:10:54.360> be<02:10:54.520> the<02:10:54.679> case<02:10:55.559> I'm<02:10:55.679> going<02:10:55.760> to<02:10:55.920> go 02:10:56.030 --> 02:10:56.040 align:start position:0% that might be the case I'm going to go 02:10:56.040 --> 02:10:58.430 align:start position:0% that might be the case I'm going to go to<02:10:56.320> inspect<02:10:57.320> and<02:10:57.480> then<02:10:57.719> I'm<02:10:57.840> going<02:10:57.920> to<02:10:58.119> go<02:10:58.239> to 02:10:58.430 --> 02:10:58.440 align:start position:0% to inspect and then I'm going to go to 02:10:58.440 --> 02:11:01.470 align:start position:0% to inspect and then I'm going to go to console<02:10:59.199> and<02:10:59.320> reload<02:10:59.719> the<02:10:59.920> page<02:11:00.920> I'll<02:11:01.119> try<02:11:01.280> to 02:11:01.470 --> 02:11:01.480 align:start position:0% console and reload the page I'll try to 02:11:01.480 --> 02:11:03.750 align:start position:0% console and reload the page I'll try to enter<02:11:01.880> my<02:11:02.159> same<02:11:02.480> email<02:11:02.880> and<02:11:03.159> password<02:11:03.599> one 02:11:03.750 --> 02:11:03.760 align:start position:0% enter my same email and password one 02:11:03.760 --> 02:11:06.310 align:start position:0% enter my same email and password one more<02:11:04.000> time<02:11:04.639> and<02:11:04.840> click<02:11:05.079> sign 02:11:06.310 --> 02:11:06.320 align:start position:0% more time and click sign 02:11:06.320 --> 02:11:09.189 align:start position:0% more time and click sign in<02:11:07.320> it<02:11:07.599> almost<02:11:07.920> seems<02:11:08.239> like<02:11:08.440> nothing<02:11:08.719> is 02:11:09.189 --> 02:11:09.199 align:start position:0% in it almost seems like nothing is 02:11:09.199 --> 02:11:12.510 align:start position:0% in it almost seems like nothing is happening<02:11:10.199> so<02:11:10.800> our<02:11:11.079> submit<02:11:11.520> button<02:11:12.239> is 02:11:12.510 --> 02:11:12.520 align:start position:0% happening so our submit button is 02:11:12.520 --> 02:11:14.350 align:start position:0% happening so our submit button is actually<02:11:12.840> submitting<02:11:13.239> the 02:11:14.350 --> 02:11:14.360 align:start position:0% actually submitting the 02:11:14.360 --> 02:11:17.189 align:start position:0% actually submitting the form<02:11:15.360> we<02:11:15.480> don't<02:11:15.760> need<02:11:16.000> this<02:11:16.239> is<02:11:16.520> pending<02:11:17.000> right 02:11:17.189 --> 02:11:17.199 align:start position:0% form we don't need this is pending right 02:11:17.199 --> 02:11:19.870 align:start position:0% form we don't need this is pending right here<02:11:17.960> and<02:11:18.360> then<02:11:18.639> we<02:11:18.800> call<02:11:19.159> the<02:11:19.280> onsubmit 02:11:19.870 --> 02:11:19.880 align:start position:0% here and then we call the onsubmit 02:11:19.880 --> 02:11:22.669 align:start position:0% here and then we call the onsubmit Handler<02:11:20.719> which<02:11:20.880> should<02:11:21.159> sign<02:11:21.440> us<02:11:21.719> right<02:11:21.880> in 02:11:22.669 --> 02:11:22.679 align:start position:0% Handler which should sign us right in 02:11:22.679 --> 02:11:24.790 align:start position:0% Handler which should sign us right in and<02:11:22.840> then<02:11:23.040> if<02:11:23.199> we<02:11:23.320> are<02:11:23.599> logged<02:11:23.960> in<02:11:24.440> it<02:11:24.559> should 02:11:24.790 --> 02:11:24.800 align:start position:0% and then if we are logged in it should 02:11:24.800 --> 02:11:27.629 align:start position:0% and then if we are logged in it should navigate<02:11:25.400> to<02:11:25.599> forward<02:11:26.000> slash<02:11:27.000> but<02:11:27.199> in<02:11:27.440> this 02:11:27.629 --> 02:11:27.639 align:start position:0% navigate to forward slash but in this 02:11:27.639 --> 02:11:30.109 align:start position:0% navigate to forward slash but in this case<02:11:27.920> for<02:11:28.079> some<02:11:28.320> reason<02:11:28.880> it<02:11:29.040> doesn't<02:11:29.360> do<02:11:29.520> it 02:11:30.109 --> 02:11:30.119 align:start position:0% case for some reason it doesn't do it 02:11:30.119 --> 02:11:32.870 align:start position:0% case for some reason it doesn't do it I'll<02:11:30.360> try<02:11:30.559> to<02:11:30.880> reload<02:11:31.880> even<02:11:32.079> if<02:11:32.199> I<02:11:32.400> reload 02:11:32.870 --> 02:11:32.880 align:start position:0% I'll try to reload even if I reload 02:11:32.880 --> 02:11:36.109 align:start position:0% I'll try to reload even if I reload we're<02:11:33.159> still<02:11:33.480> here<02:11:33.800> on<02:11:34.000> square<02:11:34.920> one<02:11:35.920> but 02:11:36.109 --> 02:11:36.119 align:start position:0% we're still here on square one but 02:11:36.119 --> 02:11:38.310 align:start position:0% we're still here on square one but that's<02:11:36.440> okay<02:11:36.880> let's<02:11:37.079> figure<02:11:37.320> it<02:11:37.440> out<02:11:37.719> together 02:11:38.310 --> 02:11:38.320 align:start position:0% that's okay let's figure it out together 02:11:38.320 --> 02:11:41.310 align:start position:0% that's okay let's figure it out together let's<02:11:38.520> see<02:11:38.800> if<02:11:38.960> we<02:11:39.199> actually<02:11:39.719> get<02:11:40.280> right<02:11:40.559> here 02:11:41.310 --> 02:11:41.320 align:start position:0% let's see if we actually get right here 02:11:41.320 --> 02:11:42.629 align:start position:0% let's see if we actually get right here so<02:11:41.480> let's<02:11:41.639> try<02:11:41.840> to 02:11:42.629 --> 02:11:42.639 align:start position:0% so let's try to 02:11:42.639 --> 02:11:46.669 align:start position:0% so let's try to console.log<02:11:43.639> is<02:11:44.239> logged<02:11:45.079> in<02:11:46.079> and<02:11:46.199> then<02:11:46.360> we<02:11:46.480> can 02:11:46.669 --> 02:11:46.679 align:start position:0% console.log is logged in and then we can 02:11:46.679 --> 02:11:50.589 align:start position:0% console.log is logged in and then we can say<02:11:47.559> console.<02:11:48.239> log<02:11:49.119> navigating<02:11:50.119> I'm<02:11:50.320> guessing 02:11:50.589 --> 02:11:50.599 align:start position:0% say console. log navigating I'm guessing 02:11:50.599 --> 02:11:53.149 align:start position:0% say console. log navigating I'm guessing we're<02:11:50.880> not<02:11:51.199> getting<02:11:51.800> to<02:11:52.079> right<02:11:52.360> here<02:11:52.920> so<02:11:53.079> I'm 02:11:53.149 --> 02:11:53.159 align:start position:0% we're not getting to right here so I'm 02:11:53.159 --> 02:11:55.830 align:start position:0% we're not getting to right here so I'm going<02:11:53.280> to<02:11:53.440> save<02:11:54.000> it<02:11:55.000> and<02:11:55.199> I'll<02:11:55.400> enter<02:11:55.719> my 02:11:55.830 --> 02:11:55.840 align:start position:0% going to save it and I'll enter my 02:11:55.840 --> 02:11:57.549 align:start position:0% going to save it and I'll enter my details<02:11:56.320> one<02:11:56.480> more 02:11:57.549 --> 02:11:57.559 align:start position:0% details one more 02:11:57.559 --> 02:12:00.629 align:start position:0% details one more time<02:11:58.559> and<02:11:59.000> press<02:11:59.360> sign 02:12:00.629 --> 02:12:00.639 align:start position:0% time and press sign 02:12:00.639 --> 02:12:04.470 align:start position:0% time and press sign in<02:12:01.639> it's<02:12:01.880> almost<02:12:02.280> as<02:12:02.400> if<02:12:02.760> nothing<02:12:03.480> happens 02:12:04.470 --> 02:12:04.480 align:start position:0% in it's almost as if nothing happens 02:12:04.480 --> 02:12:06.709 align:start position:0% in it's almost as if nothing happens we're<02:12:04.760> also<02:12:05.000> not<02:12:05.199> getting<02:12:05.440> any<02:12:05.639> toasts<02:12:06.360> so 02:12:06.709 --> 02:12:06.719 align:start position:0% we're also not getting any toasts so 02:12:06.719 --> 02:12:08.790 align:start position:0% we're also not getting any toasts so that's<02:12:06.920> a<02:12:07.040> bit<02:12:07.239> suspicious<02:12:08.199> let's<02:12:08.440> add<02:12:08.639> some 02:12:08.790 --> 02:12:08.800 align:start position:0% that's a bit suspicious let's add some 02:12:08.800 --> 02:12:11.430 align:start position:0% that's a bit suspicious let's add some more<02:12:09.040> conso<02:12:09.440> locks<02:12:09.760> a<02:12:09.880> bit<02:12:10.119> higher<02:12:10.559> right<02:12:10.760> here 02:12:11.430 --> 02:12:11.440 align:start position:0% more conso locks a bit higher right here 02:12:11.440 --> 02:12:13.629 align:start position:0% more conso locks a bit higher right here let's<02:12:11.679> conso<02:12:12.040> loog 02:12:13.629 --> 02:12:13.639 align:start position:0% let's conso loog 02:12:13.639 --> 02:12:16.149 align:start position:0% let's conso loog session<02:12:14.639> and<02:12:14.840> let's<02:12:15.000> also<02:12:15.239> cons<02:12:15.599> log<02:12:16.000> right 02:12:16.149 --> 02:12:16.159 align:start position:0% session and let's also cons log right 02:12:16.159 --> 02:12:18.870 align:start position:0% session and let's also cons log right here<02:12:16.360> at<02:12:16.480> the<02:12:16.679> top<02:12:17.400> by<02:12:17.559> saying 02:12:18.870 --> 02:12:18.880 align:start position:0% here at the top by saying 02:12:18.880 --> 02:12:19.830 align:start position:0% here at the top by saying we're 02:12:19.830 --> 02:12:19.840 align:start position:0% we're 02:12:19.840 --> 02:12:22.149 align:start position:0% we're in<02:12:20.840> that's<02:12:21.000> the<02:12:21.119> whole<02:12:21.320> point<02:12:21.520> of<02:12:21.679> coding 02:12:22.149 --> 02:12:22.159 align:start position:0% in that's the whole point of coding 02:12:22.159 --> 02:12:24.189 align:start position:0% in that's the whole point of coding right<02:12:22.559> getting<02:12:22.880> stuck<02:12:23.320> and<02:12:23.480> getting<02:12:23.840> past 02:12:24.189 --> 02:12:24.199 align:start position:0% right getting stuck and getting past 02:12:24.199 --> 02:12:27.229 align:start position:0% right getting stuck and getting past these<02:12:24.400> errors<02:12:25.400> once<02:12:25.679> again<02:12:26.119> let's<02:12:26.320> try<02:12:26.520> it 02:12:27.229 --> 02:12:27.239 align:start position:0% these errors once again let's try it 02:12:27.239 --> 02:12:30.229 align:start position:0% these errors once again let's try it together<02:12:28.239> and<02:12:28.480> once<02:12:28.760> again<02:12:29.440> absolutely 02:12:30.229 --> 02:12:30.239 align:start position:0% together and once again absolutely 02:12:30.239 --> 02:12:33.229 align:start position:0% together and once again absolutely nothing<02:12:30.760> happens<02:12:31.760> here<02:12:32.320> nor 02:12:33.229 --> 02:12:33.239 align:start position:0% nothing happens here nor 02:12:33.239 --> 02:12:36.109 align:start position:0% nothing happens here nor here<02:12:34.239> now<02:12:34.559> it<02:12:34.719> seems<02:12:35.079> like<02:12:35.280> this<02:12:35.440> onsubmit 02:12:36.109 --> 02:12:36.119 align:start position:0% here now it seems like this onsubmit 02:12:36.119 --> 02:12:38.709 align:start position:0% here now it seems like this onsubmit function<02:12:36.599> is<02:12:36.880> not<02:12:37.280> actually<02:12:37.639> getting<02:12:37.960> cold 02:12:38.709 --> 02:12:38.719 align:start position:0% function is not actually getting cold 02:12:38.719 --> 02:12:40.510 align:start position:0% function is not actually getting cold even<02:12:39.000> though<02:12:39.159> we<02:12:39.320> have<02:12:39.480> it<02:12:39.719> right<02:12:39.920> here<02:12:40.199> under 02:12:40.510 --> 02:12:40.520 align:start position:0% even though we have it right here under 02:12:40.520 --> 02:12:43.629 align:start position:0% even though we have it right here under form<02:12:40.920> submit<02:12:41.599> and<02:12:41.760> the<02:12:41.920> button<02:12:42.520> should<02:12:42.880> indeed 02:12:43.629 --> 02:12:43.639 align:start position:0% form submit and the button should indeed 02:12:43.639 --> 02:12:46.510 align:start position:0% form submit and the button should indeed submit<02:12:44.079> that<02:12:44.280> form<02:12:44.800> as<02:12:44.920> it<02:12:45.119> has<02:12:45.320> the<02:12:45.559> type<02:12:45.920> of 02:12:46.510 --> 02:12:46.520 align:start position:0% submit that form as it has the type of 02:12:46.520 --> 02:12:49.790 align:start position:0% submit that form as it has the type of submit<02:12:47.520> so<02:12:47.719> one<02:12:48.079> thing<02:12:48.159> I'll<02:12:48.320> try<02:12:48.520> to<02:12:48.679> do<02:12:49.400> is 02:12:49.790 --> 02:12:49.800 align:start position:0% submit so one thing I'll try to do is 02:12:49.800 --> 02:12:52.030 align:start position:0% submit so one thing I'll try to do is just<02:12:50.040> restart<02:12:50.520> our<02:12:50.760> application<02:12:51.520> so<02:12:51.719> go<02:12:51.880> to 02:12:52.030 --> 02:12:52.040 align:start position:0% just restart our application so go to 02:12:52.040 --> 02:12:55.270 align:start position:0% just restart our application so go to our<02:12:52.199> terminal<02:12:52.880> press<02:12:53.119> contrl<02:12:53.360> +<02:12:53.480> C<02:12:53.960> and<02:12:54.119> then<02:12:54.360> Y 02:12:55.270 --> 02:12:55.280 align:start position:0% our terminal press contrl + C and then Y 02:12:55.280 --> 02:12:57.870 align:start position:0% our terminal press contrl + C and then Y and<02:12:55.400> then<02:12:55.559> simply<02:12:55.840> run<02:12:56.239> mpm<02:12:56.679> run<02:12:56.960> Dev<02:12:57.400> one<02:12:57.599> more 02:12:57.870 --> 02:12:57.880 align:start position:0% and then simply run mpm run Dev one more 02:12:57.880 --> 02:13:00.870 align:start position:0% and then simply run mpm run Dev one more time<02:12:58.840> it's<02:12:58.960> a<02:12:59.119> wild<02:12:59.440> guess<02:13:00.040> but<02:13:00.440> sometimes<02:13:00.679> who 02:13:00.870 --> 02:13:00.880 align:start position:0% time it's a wild guess but sometimes who 02:13:00.880 --> 02:13:03.950 align:start position:0% time it's a wild guess but sometimes who know<02:13:01.400> it<02:13:01.559> might<02:13:01.840> make<02:13:02.079> things 02:13:03.950 --> 02:13:03.960 align:start position:0% know it might make things 02:13:03.960 --> 02:13:06.830 align:start position:0% know it might make things work<02:13:04.960> I'm<02:13:05.119> going<02:13:05.320> to<02:13:05.679> make<02:13:05.880> this<02:13:06.040> a<02:13:06.159> bit<02:13:06.320> larger 02:13:06.830 --> 02:13:06.840 align:start position:0% work I'm going to make this a bit larger 02:13:06.840 --> 02:13:09.430 align:start position:0% work I'm going to make this a bit larger so<02:13:06.960> we<02:13:07.079> can<02:13:07.199> see<02:13:07.360> it<02:13:07.480> a<02:13:07.639> bit 02:13:09.430 --> 02:13:09.440 align:start position:0% so we can see it a bit 02:13:09.440 --> 02:13:11.990 align:start position:0% so we can see it a bit better<02:13:10.440> let's<02:13:10.639> make<02:13:10.760> it<02:13:10.880> so<02:13:11.159> large<02:13:11.559> so<02:13:11.679> we<02:13:11.800> can 02:13:11.990 --> 02:13:12.000 align:start position:0% better let's make it so large so we can 02:13:12.000 --> 02:13:14.229 align:start position:0% better let's make it so large so we can see<02:13:12.199> this<02:13:12.400> nice<02:13:12.639> image<02:13:12.960> as<02:13:13.119> well<02:13:13.800> I'm<02:13:13.960> going<02:13:14.040> to 02:13:14.229 --> 02:13:14.239 align:start position:0% see this nice image as well I'm going to 02:13:14.239 --> 02:13:17.549 align:start position:0% see this nice image as well I'm going to enter<02:13:14.760> my<02:13:15.199> email<02:13:16.159> and<02:13:16.360> the<02:13:16.599> password<02:13:17.360> and 02:13:17.549 --> 02:13:17.559 align:start position:0% enter my email and the password and 02:13:17.559 --> 02:13:18.870 align:start position:0% enter my email and the password and click<02:13:17.760> sign<02:13:18.040> sign 02:13:18.870 --> 02:13:18.880 align:start position:0% click sign sign 02:13:18.880 --> 02:13:22.910 align:start position:0% click sign sign in<02:13:19.880> and<02:13:20.079> once<02:13:20.320> again<02:13:20.880> no<02:13:21.119> conso<02:13:21.559> logs<02:13:22.440> no 02:13:22.910 --> 02:13:22.920 align:start position:0% in and once again no conso logs no 02:13:22.920 --> 02:13:25.589 align:start position:0% in and once again no conso logs no errors<02:13:23.920> nothing<02:13:24.320> is<02:13:24.520> even<02:13:24.840> in<02:13:24.960> the<02:13:25.159> network 02:13:25.589 --> 02:13:25.599 align:start position:0% errors nothing is even in the network 02:13:25.599 --> 02:13:27.510 align:start position:0% errors nothing is even in the network tab<02:13:25.880> right<02:13:26.159> here<02:13:26.520> so<02:13:26.719> if<02:13:26.800> you<02:13:26.920> clean<02:13:27.159> it<02:13:27.320> and 02:13:27.510 --> 02:13:27.520 align:start position:0% tab right here so if you clean it and 02:13:27.520 --> 02:13:30.790 align:start position:0% tab right here so if you clean it and click<02:13:28.239> nothing<02:13:28.599> is<02:13:28.960> here<02:13:29.960> it<02:13:30.119> seems<02:13:30.440> like<02:13:30.639> this 02:13:30.790 --> 02:13:30.800 align:start position:0% click nothing is here it seems like this 02:13:30.800 --> 02:13:33.750 align:start position:0% click nothing is here it seems like this form<02:13:31.199> is<02:13:31.360> not<02:13:31.599> getting<02:13:32.079> fired<02:13:33.079> and<02:13:33.320> I<02:13:33.520> really 02:13:33.750 --> 02:13:33.760 align:start position:0% form is not getting fired and I really 02:13:33.760 --> 02:13:36.189 align:start position:0% form is not getting fired and I really like<02:13:34.000> it<02:13:34.159> when<02:13:34.360> this<02:13:34.520> happens<02:13:35.360> it<02:13:35.559> exposes<02:13:36.040> me 02:13:36.189 --> 02:13:36.199 align:start position:0% like it when this happens it exposes me 02:13:36.199 --> 02:13:38.950 align:start position:0% like it when this happens it exposes me to<02:13:36.400> you<02:13:36.920> and<02:13:37.159> it<02:13:37.360> makes<02:13:37.639> me<02:13:37.960> think<02:13:38.440> it<02:13:38.599> makes<02:13:38.800> me 02:13:38.950 --> 02:13:38.960 align:start position:0% to you and it makes me think it makes me 02:13:38.960 --> 02:13:41.189 align:start position:0% to you and it makes me think it makes me want<02:13:39.119> to<02:13:39.360> resolve<02:13:39.840> this<02:13:40.159> together<02:13:40.760> with<02:13:40.920> you 02:13:41.189 --> 02:13:41.199 align:start position:0% want to resolve this together with you 02:13:41.199 --> 02:13:43.430 align:start position:0% want to resolve this together with you watching<02:13:41.559> this<02:13:41.760> video<02:13:42.639> so<02:13:42.880> let's<02:13:43.079> try<02:13:43.280> to 02:13:43.430 --> 02:13:43.440 align:start position:0% watching this video so let's try to 02:13:43.440 --> 02:13:46.069 align:start position:0% watching this video so let's try to figure<02:13:43.719> it<02:13:43.840> out<02:13:44.199> together<02:13:45.159> let's<02:13:45.440> go<02:13:45.679> all<02:13:45.960> the 02:13:46.069 --> 02:13:46.079 align:start position:0% figure it out together let's go all the 02:13:46.079 --> 02:13:47.950 align:start position:0% figure it out together let's go all the way<02:13:46.239> to<02:13:46.400> the<02:13:46.599> top<02:13:46.800> of<02:13:46.880> the<02:13:47.079> file<02:13:47.639> and<02:13:47.760> let's 02:13:47.950 --> 02:13:47.960 align:start position:0% way to the top of the file and let's 02:13:47.960 --> 02:13:49.990 align:start position:0% way to the top of the file and let's let's<02:13:48.079> see<02:13:48.199> if<02:13:48.360> everything<02:13:48.639> is<02:13:48.800> looking<02:13:49.159> good 02:13:49.990 --> 02:13:50.000 align:start position:0% let's see if everything is looking good 02:13:50.000 --> 02:13:52.109 align:start position:0% let's see if everything is looking good we<02:13:50.119> have<02:13:50.280> some<02:13:50.520> imports<02:13:51.000> from<02:13:51.239> Hook<02:13:51.520> form 02:13:52.109 --> 02:13:52.119 align:start position:0% we have some imports from Hook form 02:13:52.119 --> 02:13:55.189 align:start position:0% we have some imports from Hook form react<02:13:52.520> router<02:13:53.040> Dom<02:13:54.040> then<02:13:54.239> we<02:13:54.320> can<02:13:54.520> divide<02:13:55.040> our 02:13:55.189 --> 02:13:55.199 align:start position:0% react router Dom then we can divide our 02:13:55.199 --> 02:13:57.470 align:start position:0% react router Dom then we can divide our internal<02:13:55.639> Imports<02:13:56.159> coming<02:13:56.360> from<02:13:56.639> components 02:13:57.470 --> 02:13:57.480 align:start position:0% internal Imports coming from components 02:13:57.480 --> 02:14:00.270 align:start position:0% internal Imports coming from components right<02:13:57.760> here<02:13:58.440> we<02:13:58.639> also<02:13:58.920> have<02:13:59.079> some<02:13:59.280> more<02:13:59.760> react 02:14:00.270 --> 02:14:00.280 align:start position:0% right here we also have some more react 02:14:00.280 --> 02:14:02.589 align:start position:0% right here we also have some more react hook<02:14:00.559> form<02:14:01.360> rather<02:14:01.639> this<02:14:01.760> is<02:14:01.960> this<02:14:02.040> was<02:14:02.280> react 02:14:02.589 --> 02:14:02.599 align:start position:0% hook form rather this is this was react 02:14:02.599 --> 02:14:05.149 align:start position:0% hook form rather this is this was react ROM<02:14:03.199> this<02:14:03.280> is<02:14:03.440> react<02:14:03.679> hook<02:14:03.960> form<02:14:04.719> and<02:14:04.840> then<02:14:05.000> we 02:14:05.149 --> 02:14:05.159 align:start position:0% ROM this is react hook form and then we 02:14:05.159 --> 02:14:07.750 align:start position:0% ROM this is react hook form and then we have<02:14:05.400> something<02:14:05.800> from<02:14:06.040> lib<02:14:06.639> validation<02:14:07.639> this 02:14:07.750 --> 02:14:07.760 align:start position:0% have something from lib validation this 02:14:07.760 --> 02:14:09.390 align:start position:0% have something from lib validation this is<02:14:07.960> the<02:14:08.199> signup 02:14:09.390 --> 02:14:09.400 align:start position:0% is the signup 02:14:09.400 --> 02:14:11.750 align:start position:0% is the signup validation<02:14:10.400> oh<02:14:10.559> no<02:14:10.880> wait<02:14:11.199> this<02:14:11.320> was<02:14:11.520> supposed 02:14:11.750 --> 02:14:11.760 align:start position:0% validation oh no wait this was supposed 02:14:11.760 --> 02:14:14.709 align:start position:0% validation oh no wait this was supposed to<02:14:11.920> be<02:14:12.079> sign<02:14:12.719> in<02:14:13.719> looks<02:14:14.000> like<02:14:14.199> it<02:14:14.360> auto 02:14:14.709 --> 02:14:14.719 align:start position:0% to be sign in looks like it auto 02:14:14.719 --> 02:14:17.430 align:start position:0% to be sign in looks like it auto imported<02:14:15.159> it<02:14:15.360> in<02:14:15.520> the<02:14:15.760> wrong<02:14:16.159> way<02:14:17.040> this<02:14:17.280> right 02:14:17.430 --> 02:14:17.440 align:start position:0% imported it in the wrong way this right 02:14:17.440 --> 02:14:21.270 align:start position:0% imported it in the wrong way this right here<02:14:17.639> was<02:14:18.000> supposed<02:14:18.320> to<02:14:18.440> be<02:14:18.800> only<02:14:19.280> sign<02:14:19.760> in<02:14:20.760> yes 02:14:21.270 --> 02:14:21.280 align:start position:0% here was supposed to be only sign in yes 02:14:21.280 --> 02:14:24.069 align:start position:0% here was supposed to be only sign in yes because<02:14:21.840> now<02:14:22.040> we're<02:14:22.280> talking<02:14:22.639> about<02:14:23.000> sign<02:14:23.360> in 02:14:24.069 --> 02:14:24.079 align:start position:0% because now we're talking about sign in 02:14:24.079 --> 02:14:26.950 align:start position:0% because now we're talking about sign in right<02:14:24.280> here<02:14:24.559> and<02:14:24.719> not<02:14:25.000> sign<02:14:25.559> up<02:14:26.559> actually 02:14:26.950 --> 02:14:26.960 align:start position:0% right here and not sign up actually 02:14:26.960 --> 02:14:29.270 align:start position:0% right here and not sign up actually disallowed<02:14:27.559> us<02:14:27.760> from<02:14:27.960> submitting<02:14:28.440> the<02:14:28.559> form 02:14:29.270 --> 02:14:29.280 align:start position:0% disallowed us from submitting the form 02:14:29.280 --> 02:14:31.470 align:start position:0% disallowed us from submitting the form well<02:14:29.520> I<02:14:29.639> guess<02:14:29.880> that's<02:14:30.040> its<02:14:30.320> job<02:14:30.679> right<02:14:31.199> so<02:14:31.320> I'm 02:14:31.470 --> 02:14:31.480 align:start position:0% well I guess that's its job right so I'm 02:14:31.480 --> 02:14:33.589 align:start position:0% well I guess that's its job right so I'm going<02:14:31.639> to<02:14:31.960> delete<02:14:32.400> all<02:14:32.559> of<02:14:32.679> the<02:14:32.800> conso<02:14:33.199> logs 02:14:33.589 --> 02:14:33.599 align:start position:0% going to delete all of the conso logs 02:14:33.599 --> 02:14:35.069 align:start position:0% going to delete all of the conso logs right 02:14:35.069 --> 02:14:35.079 align:start position:0% right 02:14:35.079 --> 02:14:39.350 align:start position:0% right now<02:14:36.079> and<02:14:36.719> save<02:14:37.040> the<02:14:37.239> file<02:14:38.079> there<02:14:38.239> we 02:14:39.350 --> 02:14:39.360 align:start position:0% now and save the file there we 02:14:39.360 --> 02:14:42.430 align:start position:0% now and save the file there we go<02:14:40.360> and<02:14:40.599> hope<02:14:41.000> that<02:14:41.239> it<02:14:41.400> was<02:14:41.599> just<02:14:41.760> the<02:14:41.920> wrong 02:14:42.430 --> 02:14:42.440 align:start position:0% go and hope that it was just the wrong 02:14:42.440 --> 02:14:45.510 align:start position:0% go and hope that it was just the wrong import<02:14:43.440> right<02:14:43.679> here<02:14:44.520> so<02:14:44.800> now<02:14:45.079> I'm<02:14:45.199> going<02:14:45.320> to 02:14:45.510 --> 02:14:45.520 align:start position:0% import right here so now I'm going to 02:14:45.520 --> 02:14:48.669 align:start position:0% import right here so now I'm going to expand<02:14:46.000> the<02:14:46.159> entire<02:14:46.599> app<02:14:47.599> we<02:14:47.719> can<02:14:47.920> can<02:14:48.040> see<02:14:48.400> how 02:14:48.669 --> 02:14:48.679 align:start position:0% expand the entire app we can can see how 02:14:48.679 --> 02:14:52.430 align:start position:0% expand the entire app we can can see how wonderful<02:14:49.440> this<02:14:49.599> signin<02:14:50.119> is<02:14:50.880> sign<02:14:51.199> up<02:14:51.559> as<02:14:51.800> well 02:14:52.430 --> 02:14:52.440 align:start position:0% wonderful this signin is sign up as well 02:14:52.440 --> 02:14:54.430 align:start position:0% wonderful this signin is sign up as well it's<02:14:52.800> instantaneous<02:14:53.599> moving<02:14:54.000> between<02:14:54.320> the 02:14:54.430 --> 02:14:54.440 align:start position:0% it's instantaneous moving between the 02:14:54.440 --> 02:14:57.270 align:start position:0% it's instantaneous moving between the two<02:14:55.440> and<02:14:55.639> we<02:14:55.760> can<02:14:55.920> try<02:14:56.119> to<02:14:56.320> log<02:14:56.599> in<02:14:56.920> with<02:14:57.079> the 02:14:57.270 --> 02:14:57.280 align:start position:0% two and we can try to log in with the 02:14:57.280 --> 02:14:59.149 align:start position:0% two and we can try to log in with the account<02:14:57.639> we<02:14:57.760> have<02:14:57.960> previously 02:14:59.149 --> 02:14:59.159 align:start position:0% account we have previously 02:14:59.159 --> 02:15:01.669 align:start position:0% account we have previously created<02:15:00.159> I'm<02:15:00.280> going<02:15:00.360> to<02:15:00.520> enter<02:15:00.840> my<02:15:01.079> password 02:15:01.669 --> 02:15:01.679 align:start position:0% created I'm going to enter my password 02:15:01.679 --> 02:15:03.589 align:start position:0% created I'm going to enter my password and<02:15:01.880> click<02:15:02.199> sign 02:15:03.589 --> 02:15:03.599 align:start position:0% and click sign 02:15:03.599 --> 02:15:07.229 align:start position:0% and click sign in<02:15:04.599> and<02:15:04.960> we<02:15:05.159> are<02:15:05.440> on<02:15:05.599> our<02:15:05.960> homepage<02:15:06.840> this<02:15:06.960> is 02:15:07.229 --> 02:15:07.239 align:start position:0% in and we are on our homepage this is 02:15:07.239 --> 02:15:09.709 align:start position:0% in and we are on our homepage this is phenomenal<02:15:08.239> I<02:15:08.360> know<02:15:08.599> it<02:15:08.719> took<02:15:08.920> some<02:15:09.159> time<02:15:09.400> to 02:15:09.709 --> 02:15:09.719 align:start position:0% phenomenal I know it took some time to 02:15:09.719 --> 02:15:12.750 align:start position:0% phenomenal I know it took some time to do<02:15:10.159> this<02:15:10.360> entire<02:15:10.840> Au<02:15:11.280> and<02:15:11.440> everything<02:15:11.880> else 02:15:12.750 --> 02:15:12.760 align:start position:0% do this entire Au and everything else 02:15:12.760 --> 02:15:15.950 align:start position:0% do this entire Au and everything else but<02:15:13.040> hey<02:15:13.440> we're<02:15:13.800> finally<02:15:14.480> in<02:15:15.239> and<02:15:15.440> now<02:15:15.679> we<02:15:15.800> can 02:15:15.950 --> 02:15:15.960 align:start position:0% but hey we're finally in and now we can 02:15:15.960 --> 02:15:18.709 align:start position:0% but hey we're finally in and now we can start<02:15:16.320> focusing<02:15:16.960> on<02:15:17.119> our<02:15:17.320> homepage<02:15:18.239> so<02:15:18.440> we<02:15:18.520> can 02:15:18.709 --> 02:15:18.719 align:start position:0% start focusing on our homepage so we can 02:15:18.719 --> 02:15:21.430 align:start position:0% start focusing on our homepage so we can close<02:15:19.040> our<02:15:19.239> sign<02:15:19.480> in<02:15:19.920> and<02:15:20.119> the<02:15:20.320> sign<02:15:20.599> up<02:15:21.159> and<02:15:21.320> we 02:15:21.430 --> 02:15:21.440 align:start position:0% close our sign in and the sign up and we 02:15:21.440 --> 02:15:26.229 align:start position:0% close our sign in and the sign up and we can<02:15:21.760> go<02:15:22.760> right<02:15:22.960> here<02:15:23.159> to<02:15:23.559> Source<02:15:24.639> root 02:15:26.229 --> 02:15:26.239 align:start position:0% can go right here to Source root 02:15:26.239 --> 02:15:29.030 align:start position:0% can go right here to Source root pages<02:15:27.239> and<02:15:27.360> then<02:15:27.599> homepage<02:15:28.320> or<02:15:28.599> rather<02:15:28.840> we'll 02:15:29.030 --> 02:15:29.040 align:start position:0% pages and then homepage or rather we'll 02:15:29.040 --> 02:15:31.030 align:start position:0% pages and then homepage or rather we'll have<02:15:29.159> to<02:15:29.239> do<02:15:29.400> the<02:15:29.520> root<02:15:29.880> layout<02:15:30.360> first<02:15:30.760> because 02:15:31.030 --> 02:15:31.040 align:start position:0% have to do the root layout first because 02:15:31.040 --> 02:15:32.910 align:start position:0% have to do the root layout first because that<02:15:31.239> we're<02:15:31.440> seeing<02:15:32.040> but<02:15:32.199> then<02:15:32.360> soon<02:15:32.639> enough 02:15:32.910 --> 02:15:32.920 align:start position:0% that we're seeing but then soon enough 02:15:32.920 --> 02:15:35.149 align:start position:0% that we're seeing but then soon enough we'll<02:15:33.079> move<02:15:33.320> to<02:15:33.440> the<02:15:33.559> homage<02:15:34.360> and<02:15:34.559> the<02:15:34.760> rest<02:15:35.000> of 02:15:35.149 --> 02:15:35.159 align:start position:0% we'll move to the homage and the rest of 02:15:35.159 --> 02:15:38.149 align:start position:0% we'll move to the homage and the rest of the<02:15:35.400> content<02:15:36.360> I<02:15:36.480> know<02:15:36.760> it<02:15:36.880> took<02:15:37.119> some<02:15:37.320> time<02:15:37.880> but 02:15:38.149 --> 02:15:38.159 align:start position:0% the content I know it took some time but 02:15:38.159 --> 02:15:41.229 align:start position:0% the content I know it took some time but we<02:15:38.400> laid<02:15:38.800> out<02:15:39.119> a<02:15:39.639> strong<02:15:40.000> foundation<02:15:40.920> for 02:15:41.229 --> 02:15:41.239 align:start position:0% we laid out a strong foundation for 02:15:41.239 --> 02:15:43.629 align:start position:0% we laid out a strong foundation for everything<02:15:41.639> else<02:15:42.079> we're<02:15:42.320> about<02:15:42.559> to<02:15:42.719> build<02:15:43.320> so 02:15:43.629 --> 02:15:43.639 align:start position:0% everything else we're about to build so 02:15:43.639 --> 02:15:45.669 align:start position:0% everything else we're about to build so phenomenal<02:15:44.239> job<02:15:44.520> coming<02:15:44.920> this<02:15:45.079> far<02:15:45.320> into<02:15:45.520> the 02:15:45.669 --> 02:15:45.679 align:start position:0% phenomenal job coming this far into the 02:15:45.679 --> 02:15:48.589 align:start position:0% phenomenal job coming this far into the video<02:15:46.400> and<02:15:46.639> now<02:15:47.040> the<02:15:47.239> exciting<02:15:47.559> stuff<02:15:47.840> stuff 02:15:48.589 --> 02:15:48.599 align:start position:0% video and now the exciting stuff stuff 02:15:48.599 --> 02:15:51.430 align:start position:0% video and now the exciting stuff stuff begins<02:15:49.599> let's<02:15:49.840> get<02:15:50.040> started<02:15:50.599> with<02:15:50.760> the<02:15:50.880> root 02:15:51.430 --> 02:15:51.440 align:start position:0% begins let's get started with the root 02:15:51.440 --> 02:15:54.069 align:start position:0% begins let's get started with the root layout<02:15:52.360> the<02:15:52.520> layout<02:15:53.000> is<02:15:53.119> going<02:15:53.280> to<02:15:53.480> play<02:15:53.760> a 02:15:54.069 --> 02:15:54.079 align:start position:0% layout the layout is going to play a 02:15:54.079 --> 02:15:57.629 align:start position:0% layout the layout is going to play a major<02:15:54.599> role<02:15:55.199> in<02:15:55.480> turning<02:15:55.880> our<02:15:56.119> app<02:15:56.400> from<02:15:56.800> this 02:15:57.629 --> 02:15:57.639 align:start position:0% major role in turning our app from this 02:15:57.639 --> 02:16:00.109 align:start position:0% major role in turning our app from this to<02:15:58.000> this<02:15:58.599> where<02:15:58.760> we<02:15:58.920> have<02:15:59.159> the<02:15:59.360> sidebar<02:15:59.840> on<02:15:59.960> the 02:16:00.109 --> 02:16:00.119 align:start position:0% to this where we have the sidebar on the 02:16:00.119 --> 02:16:02.390 align:start position:0% to this where we have the sidebar on the left<02:16:00.400> side<02:16:01.000> the<02:16:01.119> whole<02:16:01.480> middle<02:16:01.840> part<02:16:02.040> for<02:16:02.199> the 02:16:02.390 --> 02:16:02.400 align:start position:0% left side the whole middle part for the 02:16:02.400 --> 02:16:04.790 align:start position:0% left side the whole middle part for the post<02:16:03.199> and<02:16:03.360> then<02:16:03.559> the<02:16:03.800> top<02:16:04.000> creators<02:16:04.440> on<02:16:04.599> the 02:16:04.790 --> 02:16:04.800 align:start position:0% post and then the top creators on the 02:16:04.800 --> 02:16:07.069 align:start position:0% post and then the top creators on the right<02:16:05.400> and<02:16:05.559> of<02:16:05.719> course<02:16:06.040> it's<02:16:06.280> all<02:16:06.679> fully 02:16:07.069 --> 02:16:07.079 align:start position:0% right and of course it's all fully 02:16:07.079 --> 02:16:09.430 align:start position:0% right and of course it's all fully mobile<02:16:07.520> responsive<02:16:08.119> so<02:16:08.360> as<02:16:08.480> you<02:16:08.639> scroll<02:16:09.280> we 02:16:09.430 --> 02:16:09.440 align:start position:0% mobile responsive so as you scroll we 02:16:09.440 --> 02:16:12.830 align:start position:0% mobile responsive so as you scroll we have<02:16:09.639> this<02:16:09.840> beautiful<02:16:10.320> mobile<02:16:11.040> UI<02:16:12.040> so<02:16:12.599> let's 02:16:12.830 --> 02:16:12.840 align:start position:0% have this beautiful mobile UI so let's 02:16:12.840 --> 02:16:15.270 align:start position:0% have this beautiful mobile UI so let's get<02:16:13.040> started<02:16:13.400> with<02:16:13.520> the<02:16:13.639> root<02:16:14.000> layout<02:16:15.000> by 02:16:15.270 --> 02:16:15.280 align:start position:0% get started with the root layout by 02:16:15.280 --> 02:16:17.310 align:start position:0% get started with the root layout by wrapping<02:16:15.880> everything<02:16:16.239> in<02:16:16.360> a<02:16:16.559> div<02:16:17.159> that's 02:16:17.310 --> 02:16:17.320 align:start position:0% wrapping everything in a div that's 02:16:17.320 --> 02:16:22.030 align:start position:0% wrapping everything in a div that's going<02:16:17.480> to<02:16:17.840> have<02:16:18.079> a<02:16:18.400> class<02:16:19.040> name<02:16:20.040> equal<02:16:20.400> to<02:16:21.280> w- 02:16:22.030 --> 02:16:22.040 align:start position:0% going to have a class name equal to w- 02:16:22.040 --> 02:16:24.229 align:start position:0% going to have a class name equal to w- fold<02:16:22.320> for<02:16:22.520> full<02:16:22.880> width<02:16:23.520> and<02:16:23.679> on<02:16:23.840> medium 02:16:24.229 --> 02:16:24.239 align:start position:0% fold for full width and on medium 02:16:24.239 --> 02:16:27.830 align:start position:0% fold for full width and on medium devices<02:16:25.480> Flex<02:16:26.480> now<02:16:26.800> within<02:16:27.199> here<02:16:27.440> we'll<02:16:27.679> have 02:16:27.830 --> 02:16:27.840 align:start position:0% devices Flex now within here we'll have 02:16:27.840 --> 02:16:29.870 align:start position:0% devices Flex now within here we'll have a<02:16:28.000> couple<02:16:28.239> of<02:16:28.440> components<02:16:29.199> so<02:16:29.360> let's<02:16:29.559> go<02:16:29.679> ahead 02:16:29.870 --> 02:16:29.880 align:start position:0% a couple of components so let's go ahead 02:16:29.880 --> 02:16:31.990 align:start position:0% a couple of components so let's go ahead and<02:16:30.079> create<02:16:30.400> them<02:16:31.040> we<02:16:31.159> can<02:16:31.280> do<02:16:31.520> them<02:16:31.719> within 02:16:31.990 --> 02:16:32.000 align:start position:0% and create them we can do them within 02:16:32.000 --> 02:16:34.389 align:start position:0% and create them we can do them within the<02:16:32.120> shared<02:16:33.040> and<02:16:33.200> we<02:16:33.280> can<02:16:33.439> create<02:16:33.639> a<02:16:33.800> new<02:16:34.040> file 02:16:34.389 --> 02:16:34.399 align:start position:0% the shared and we can create a new file 02:16:34.399 --> 02:16:39.549 align:start position:0% the shared and we can create a new file called<02:16:34.880> top<02:16:35.519> bar.<02:16:36.920> TSX<02:16:37.920> and<02:16:38.080> run<02:16:38.319> R<02:16:38.679> efce 02:16:39.549 --> 02:16:39.559 align:start position:0% called top bar. TSX and run R efce 02:16:39.559 --> 02:16:42.669 align:start position:0% called top bar. TSX and run R efce inside<02:16:39.880> of<02:16:40.120> there<02:16:40.960> we<02:16:41.040> can<02:16:41.240> do<02:16:41.559> a<02:16:41.880> second<02:16:42.200> one 02:16:42.669 --> 02:16:42.679 align:start position:0% inside of there we can do a second one 02:16:42.679 --> 02:16:48.629 align:start position:0% inside of there we can do a second one called<02:16:43.240> Left<02:16:44.240> sidebar.<02:16:45.280> TSX<02:16:46.280> and<02:16:46.439> run<02:16:46.719> r<02:16:47.160> fce 02:16:48.629 --> 02:16:48.639 align:start position:0% called Left sidebar. TSX and run r fce 02:16:48.639 --> 02:16:50.629 align:start position:0% called Left sidebar. TSX and run r fce if<02:16:48.760> we<02:16:48.880> have<02:16:49.000> a<02:16:49.200> left<02:16:49.439> one<02:16:50.080> we're<02:16:50.240> going<02:16:50.359> to 02:16:50.629 --> 02:16:50.639 align:start position:0% if we have a left one we're going to 02:16:50.639 --> 02:16:53.469 align:start position:0% if we have a left one we're going to also<02:16:51.040> have<02:16:51.399> a<02:16:51.679> bottom<02:16:52.080> bar<02:16:52.519> so<02:16:52.679> let's<02:16:52.920> create<02:16:53.200> a 02:16:53.469 --> 02:16:53.479 align:start position:0% also have a bottom bar so let's create a 02:16:53.479 --> 02:16:57.750 align:start position:0% also have a bottom bar so let's create a bottom<02:16:54.439> bar.<02:16:55.439> TSX<02:16:56.439> run 02:16:57.750 --> 02:16:57.760 align:start position:0% bottom bar. TSX run 02:16:57.760 --> 02:17:00.230 align:start position:0% bottom bar. TSX run rafc<02:16:58.760> and<02:16:59.000> that's<02:16:59.240> everything<02:16:59.599> we<02:16:59.719> need<02:16:59.960> so 02:17:00.230 --> 02:17:00.240 align:start position:0% rafc and that's everything we need so 02:17:00.240 --> 02:17:02.549 align:start position:0% rafc and that's everything we need so far<02:17:00.760> so<02:17:00.960> let's<02:17:01.240> go<02:17:01.559> back<02:17:01.880> into<02:17:02.160> our<02:17:02.280> root 02:17:02.549 --> 02:17:02.559 align:start position:0% far so let's go back into our root 02:17:02.559 --> 02:17:04.990 align:start position:0% far so let's go back into our root layout<02:17:03.280> and<02:17:03.479> let's<02:17:03.840> use<02:17:04.280> all<02:17:04.439> of<02:17:04.639> these 02:17:04.990 --> 02:17:05.000 align:start position:0% layout and let's use all of these 02:17:05.000 --> 02:17:07.830 align:start position:0% layout and let's use all of these components<02:17:06.000> so<02:17:06.319> here<02:17:06.719> we<02:17:06.880> can<02:17:07.120> put<02:17:07.319> the<02:17:07.519> top 02:17:07.830 --> 02:17:07.840 align:start position:0% components so here we can put the top 02:17:07.840 --> 02:17:11.349 align:start position:0% components so here we can put the top bar<02:17:08.280> at<02:17:08.439> the<02:17:08.639> top<02:17:09.080> and<02:17:09.240> just<02:17:09.359> self<02:17:09.760> close<02:17:10.359> it 02:17:11.349 --> 02:17:11.359 align:start position:0% bar at the top and just self close it 02:17:11.359 --> 02:17:13.589 align:start position:0% bar at the top and just self close it and<02:17:11.639> import<02:17:12.000> it<02:17:12.359> by<02:17:12.599> double<02:17:12.960> clicking<02:17:13.399> and 02:17:13.589 --> 02:17:13.599 align:start position:0% and import it by double clicking and 02:17:13.599 --> 02:17:16.150 align:start position:0% and import it by double clicking and pressing<02:17:13.920> control<02:17:14.679> space<02:17:15.679> then<02:17:15.920> we're<02:17:16.040> going 02:17:16.150 --> 02:17:16.160 align:start position:0% pressing control space then we're going 02:17:16.160 --> 02:17:18.270 align:start position:0% pressing control space then we're going to<02:17:16.319> have<02:17:16.479> the<02:17:16.679> left<02:17:17.000> side<02:17:17.200> bar<02:17:17.679> immediately 02:17:18.270 --> 02:17:18.280 align:start position:0% to have the left side bar immediately 02:17:18.280 --> 02:17:21.830 align:start position:0% to have the left side bar immediately below<02:17:19.000> also<02:17:19.319> you<02:17:19.399> need<02:17:19.559> to<02:17:19.719> import<02:17:20.319> it<02:17:21.319> then 02:17:21.830 --> 02:17:21.840 align:start position:0% below also you need to import it then 02:17:21.840 --> 02:17:24.070 align:start position:0% below also you need to import it then below<02:17:22.160> it<02:17:22.319> we're<02:17:22.439> going<02:17:22.559> to<02:17:22.679> have<02:17:22.840> a 02:17:24.070 --> 02:17:24.080 align:start position:0% below it we're going to have a 02:17:24.080 --> 02:17:26.750 align:start position:0% below it we're going to have a section<02:17:25.080> and<02:17:25.439> this<02:17:25.719> section<02:17:26.160> is<02:17:26.280> going<02:17:26.479> to 02:17:26.750 --> 02:17:26.760 align:start position:0% section and this section is going to 02:17:26.760 --> 02:17:30.910 align:start position:0% section and this section is going to have<02:17:27.080> a<02:17:27.359> class<02:17:27.760> name<02:17:28.479> equal<02:17:28.800> to<02:17:29.000> flex<02:17:29.840> Flex<02:17:30.359> D1 02:17:30.910 --> 02:17:30.920 align:start position:0% have a class name equal to flex Flex D1 02:17:30.920 --> 02:17:33.990 align:start position:0% have a class name equal to flex Flex D1 so<02:17:31.120> it<02:17:31.319> expands<02:17:32.240> and<02:17:32.399> then<02:17:32.599> h-<02:17:33.240> full<02:17:33.719> for<02:17:33.920> the 02:17:33.990 --> 02:17:34.000 align:start position:0% so it expands and then h- full for the 02:17:34.000 --> 02:17:36.709 align:start position:0% so it expands and then h- full for the full<02:17:34.399> height<02:17:35.399> and<02:17:35.679> within<02:17:36.000> it<02:17:36.319> we<02:17:36.439> want<02:17:36.559> to 02:17:36.709 --> 02:17:36.719 align:start position:0% full height and within it we want to 02:17:36.719 --> 02:17:40.150 align:start position:0% full height and within it we want to render<02:17:37.479> the<02:17:37.800> outlet<02:17:38.920> component<02:17:39.920> this 02:17:40.150 --> 02:17:40.160 align:start position:0% render the outlet component this 02:17:40.160 --> 02:17:42.709 align:start position:0% render the outlet component this component<02:17:40.679> has<02:17:40.800> to<02:17:40.960> be<02:17:41.120> imported<02:17:41.719> from<02:17:42.240> react 02:17:42.709 --> 02:17:42.719 align:start position:0% component has to be imported from react 02:17:42.719 --> 02:17:48.150 align:start position:0% component has to be imported from react router<02:17:43.120> Dom<02:17:44.040> so<02:17:44.880> outlet<02:17:46.120> from<02:17:47.120> react 02:17:48.150 --> 02:17:48.160 align:start position:0% router Dom so outlet from react 02:17:48.160 --> 02:17:49.990 align:start position:0% router Dom so outlet from react router 02:17:49.990 --> 02:17:50.000 align:start position:0% router 02:17:50.000 --> 02:17:52.509 align:start position:0% router Dom<02:17:51.000> this<02:17:51.120> is<02:17:51.319> similar<02:17:51.679> to<02:17:51.840> what<02:17:51.960> we<02:17:52.080> have<02:17:52.240> done 02:17:52.509 --> 02:17:52.519 align:start position:0% Dom this is similar to what we have done 02:17:52.519 --> 02:17:55.870 align:start position:0% Dom this is similar to what we have done before<02:17:53.160> for<02:17:53.519> our<02:17:54.040> off<02:17:54.399> layout<02:17:55.200> where<02:17:55.599> this 02:17:55.870 --> 02:17:55.880 align:start position:0% before for our off layout where this 02:17:55.880 --> 02:17:58.750 align:start position:0% before for our off layout where this Outlet<02:17:56.760> actually<02:17:57.280> lets<02:17:57.599> us<02:17:57.880> show<02:17:58.519> what's 02:17:58.750 --> 02:17:58.760 align:start position:0% Outlet actually lets us show what's 02:17:58.760 --> 02:18:01.830 align:start position:0% Outlet actually lets us show what's going<02:17:58.920> to<02:17:59.120> be<02:17:59.399> on<02:17:59.559> the<02:17:59.719> homepage<02:18:00.439> later<02:18:00.719> on<02:18:01.719> and 02:18:01.830 --> 02:18:01.840 align:start position:0% going to be on the homepage later on and 02:18:01.840 --> 02:18:04.190 align:start position:0% going to be on the homepage later on and then<02:18:02.040> below<02:18:02.359> it<02:18:02.679> we<02:18:02.840> also<02:18:03.080> want<02:18:03.200> to<02:18:03.359> render<02:18:04.000> the 02:18:04.190 --> 02:18:04.200 align:start position:0% then below it we also want to render the 02:18:04.200 --> 02:18:05.709 align:start position:0% then below it we also want to render the Bottom 02:18:05.709 --> 02:18:05.719 align:start position:0% Bottom 02:18:05.719 --> 02:18:08.270 align:start position:0% Bottom bar<02:18:06.719> there<02:18:06.880> we<02:18:07.040> go<02:18:07.399> so<02:18:07.639> now<02:18:07.800> we<02:18:08.000> have 02:18:08.270 --> 02:18:08.280 align:start position:0% bar there we go so now we have 02:18:08.280 --> 02:18:10.349 align:start position:0% bar there we go so now we have everything<02:18:08.679> we<02:18:08.800> need<02:18:09.319> right<02:18:09.559> here<02:18:10.120> if<02:18:10.240> you 02:18:10.349 --> 02:18:10.359 align:start position:0% everything we need right here if you 02:18:10.359 --> 02:18:12.429 align:start position:0% everything we need right here if you scroll<02:18:10.760> all<02:18:11.000> the<02:18:11.120> way<02:18:11.599> you'll<02:18:11.760> see<02:18:11.960> a<02:18:12.120> bottom 02:18:12.429 --> 02:18:12.439 align:start position:0% scroll all the way you'll see a bottom 02:18:12.439 --> 02:18:15.549 align:start position:0% scroll all the way you'll see a bottom bar<02:18:12.880> there<02:18:13.280> as<02:18:13.479> well<02:18:14.359> so<02:18:14.639> now<02:18:14.960> before<02:18:15.200> we<02:18:15.319> start 02:18:15.549 --> 02:18:15.559 align:start position:0% bar there as well so now before we start 02:18:15.559 --> 02:18:17.669 align:start position:0% bar there as well so now before we start with<02:18:15.719> the<02:18:15.840> homepage<02:18:16.599> let's<02:18:16.840> start<02:18:17.120> with<02:18:17.280> these 02:18:17.669 --> 02:18:17.679 align:start position:0% with the homepage let's start with these 02:18:17.679 --> 02:18:20.669 align:start position:0% with the homepage let's start with these individual<02:18:18.200> Pages<02:18:19.000> such<02:18:19.200> as<02:18:19.599> the<02:18:19.800> top<02:18:20.080> bar 02:18:20.669 --> 02:18:20.679 align:start position:0% individual Pages such as the top bar 02:18:20.679 --> 02:18:23.750 align:start position:0% individual Pages such as the top bar since<02:18:21.080> it's<02:18:21.280> at<02:18:21.439> the<02:18:21.960> top<02:18:22.960> this<02:18:23.240> is<02:18:23.399> going<02:18:23.599> to 02:18:23.750 --> 02:18:23.760 align:start position:0% since it's at the top this is going to 02:18:23.760 --> 02:18:26.349 align:start position:0% since it's at the top this is going to be<02:18:24.040> a<02:18:24.280> simple<02:18:24.760> section<02:18:25.399> so<02:18:25.719> let's<02:18:25.920> turn<02:18:26.160> it 02:18:26.349 --> 02:18:26.359 align:start position:0% be a simple section so let's turn it 02:18:26.359 --> 02:18:27.589 align:start position:0% be a simple section so let's turn it into<02:18:26.599> a 02:18:27.589 --> 02:18:27.599 align:start position:0% into a 02:18:27.599 --> 02:18:29.990 align:start position:0% into a section<02:18:28.599> and<02:18:28.800> it's<02:18:28.960> going<02:18:29.120> to<02:18:29.280> have<02:18:29.439> a<02:18:29.679> class 02:18:29.990 --> 02:18:30.000 align:start position:0% section and it's going to have a class 02:18:30.000 --> 02:18:33.230 align:start position:0% section and it's going to have a class name<02:18:30.599> equal<02:18:30.960> to<02:18:31.599> Top 02:18:33.230 --> 02:18:33.240 align:start position:0% name equal to Top 02:18:33.240 --> 02:18:36.669 align:start position:0% name equal to Top Bar<02:18:34.240> within<02:18:34.519> it<02:18:34.800> we<02:18:34.920> can<02:18:35.120> create<02:18:35.399> a<02:18:35.639> div<02:18:36.439> and 02:18:36.669 --> 02:18:36.679 align:start position:0% Bar within it we can create a div and 02:18:36.679 --> 02:18:39.110 align:start position:0% Bar within it we can create a div and that<02:18:36.880> div<02:18:37.200> is<02:18:37.319> going<02:18:37.519> to<02:18:37.679> have<02:18:37.840> a<02:18:38.080> class<02:18:38.399> name 02:18:39.110 --> 02:18:39.120 align:start position:0% that div is going to have a class name 02:18:39.120 --> 02:18:40.870 align:start position:0% that div is going to have a class name equal<02:18:39.399> to<02:18:39.599> flex 02:18:40.870 --> 02:18:40.880 align:start position:0% equal to flex 02:18:40.880 --> 02:18:43.830 align:start position:0% equal to flex between<02:18:41.880> padding<02:18:42.319> y<02:18:42.559> of<02:18:42.760> four<02:18:43.200> meaning<02:18:43.639> top 02:18:43.830 --> 02:18:43.840 align:start position:0% between padding y of four meaning top 02:18:43.840 --> 02:18:46.270 align:start position:0% between padding y of four meaning top and<02:18:44.040> bottom<02:18:44.679> and<02:18:44.880> padding<02:18:45.280> X<02:18:45.679> meaning<02:18:46.040> left 02:18:46.270 --> 02:18:46.280 align:start position:0% and bottom and padding X meaning left 02:18:46.280 --> 02:18:48.790 align:start position:0% and bottom and padding X meaning left and<02:18:46.519> right<02:18:47.000> of<02:18:47.240> five 02:18:48.790 --> 02:18:48.800 align:start position:0% and right of five 02:18:48.800 --> 02:18:52.110 align:start position:0% and right of five right<02:18:49.040> here<02:18:49.399> we<02:18:49.559> can<02:18:49.679> render<02:18:50.120> a<02:18:50.639> link<02:18:51.639> and<02:18:51.920> that 02:18:52.110 --> 02:18:52.120 align:start position:0% right here we can render a link and that 02:18:52.120 --> 02:18:55.349 align:start position:0% right here we can render a link and that link<02:18:52.439> is<02:18:52.599> going<02:18:52.760> to<02:18:53.000> point<02:18:53.399> to<02:18:54.040> the<02:18:54.359> homepage 02:18:55.349 --> 02:18:55.359 align:start position:0% link is going to point to the homepage 02:18:55.359 --> 02:18:57.429 align:start position:0% link is going to point to the homepage it's<02:18:55.599> also<02:18:55.800> going<02:18:55.960> to<02:18:56.120> have<02:18:56.280> a<02:18:56.479> class<02:18:56.840> name 02:18:57.429 --> 02:18:57.439 align:start position:0% it's also going to have a class name 02:18:57.439 --> 02:19:01.870 align:start position:0% it's also going to have a class name equal<02:18:57.760> to<02:18:58.399> flex<02:18:59.399> Gap<02:18:59.920> D3<02:19:00.920> and<02:19:01.200> items<02:19:01.639> Das 02:19:01.870 --> 02:19:01.880 align:start position:0% equal to flex Gap D3 and items Das 02:19:01.880 --> 02:19:05.230 align:start position:0% equal to flex Gap D3 and items Das Center<02:19:02.719> because<02:19:03.040> it<02:19:03.200> needs<02:19:03.479> to<02:19:03.679> Center<02:19:04.359> our 02:19:05.230 --> 02:19:05.240 align:start position:0% Center because it needs to Center our 02:19:05.240 --> 02:19:08.389 align:start position:0% Center because it needs to Center our image<02:19:06.240> so<02:19:06.519> first<02:19:06.840> let's<02:19:07.120> import<02:19:07.559> this<02:19:07.760> link 02:19:08.389 --> 02:19:08.399 align:start position:0% image so first let's import this link 02:19:08.399 --> 02:19:11.469 align:start position:0% image so first let's import this link from<02:19:08.760> react<02:19:09.160> router<02:19:09.519> Dom<02:19:10.040> by<02:19:10.160> saying<02:19:10.559> import 02:19:11.469 --> 02:19:11.479 align:start position:0% from react router Dom by saying import 02:19:11.479 --> 02:19:15.190 align:start position:0% from react router Dom by saying import link<02:19:12.439> from<02:19:12.920> react<02:19:13.719> router 02:19:15.190 --> 02:19:15.200 align:start position:0% link from react router 02:19:15.200 --> 02:19:17.870 align:start position:0% link from react router Dom<02:19:16.200> and<02:19:16.399> then<02:19:16.639> this<02:19:16.880> image<02:19:17.280> is<02:19:17.519> is<02:19:17.599> going<02:19:17.760> to 02:19:17.870 --> 02:19:17.880 align:start position:0% Dom and then this image is is going to 02:19:17.880 --> 02:19:21.429 align:start position:0% Dom and then this image is is going to have<02:19:18.040> a<02:19:18.240> source<02:19:19.000> equal<02:19:19.319> to<02:19:20.280> SL 02:19:21.429 --> 02:19:21.439 align:start position:0% have a source equal to SL 02:19:21.439 --> 02:19:23.030 align:start position:0% have a source equal to SL assets 02:19:23.030 --> 02:19:23.040 align:start position:0% assets 02:19:23.040 --> 02:19:27.990 align:start position:0% assets slimes<02:19:24.040> SL<02:19:24.559> logo.<02:19:25.840> SVG<02:19:26.840> once<02:19:27.000> we<02:19:27.160> save<02:19:27.439> it<02:19:27.880> you 02:19:27.990 --> 02:19:28.000 align:start position:0% slimes SL logo. SVG once we save it you 02:19:28.000 --> 02:19:31.270 align:start position:0% slimes SL logo. SVG once we save it you can<02:19:28.160> see<02:19:28.359> snapgram<02:19:29.160> appear<02:19:29.639> on<02:19:30.000> top<02:19:31.000> let's 02:19:31.270 --> 02:19:31.280 align:start position:0% can see snapgram appear on top let's 02:19:31.280 --> 02:19:34.790 align:start position:0% can see snapgram appear on top let's also<02:19:31.519> give<02:19:31.639> it<02:19:31.760> an<02:19:31.920> Al<02:19:32.280> tag<02:19:32.519> off<02:19:33.040> logo<02:19:34.040> a<02:19:34.319> width 02:19:34.790 --> 02:19:34.800 align:start position:0% also give it an Al tag off logo a width 02:19:34.800 --> 02:19:40.389 align:start position:0% also give it an Al tag off logo a width of<02:19:35.040> 130<02:19:36.040> pixels<02:19:36.760> and<02:19:37.000> a<02:19:37.280> height<02:19:37.639> of<02:19:38.240> 325<02:19:39.399> pixels 02:19:40.389 --> 02:19:40.399 align:start position:0% of 130 pixels and a height of 325 pixels 02:19:40.399 --> 02:19:43.349 align:start position:0% of 130 pixels and a height of 325 pixels there<02:19:40.559> we<02:19:40.760> go<02:19:41.599> now<02:19:41.880> below<02:19:42.240> the<02:19:42.399> link<02:19:43.000> still 02:19:43.349 --> 02:19:43.359 align:start position:0% there we go now below the link still 02:19:43.359 --> 02:19:45.150 align:start position:0% there we go now below the link still within<02:19:43.679> this<02:19:43.840> div<02:19:44.280> we<02:19:44.359> want<02:19:44.479> to<02:19:44.639> do<02:19:44.800> another 02:19:45.150 --> 02:19:45.160 align:start position:0% within this div we want to do another 02:19:45.160 --> 02:19:47.629 align:start position:0% within this div we want to do another div<02:19:45.840> that's<02:19:46.040> going<02:19:46.200> to<02:19:46.399> have<02:19:46.559> a<02:19:46.760> class<02:19:47.080> name 02:19:47.629 --> 02:19:47.639 align:start position:0% div that's going to have a class name 02:19:47.639 --> 02:19:50.870 align:start position:0% div that's going to have a class name equal<02:19:47.960> to<02:19:48.240> flex<02:19:49.240> and<02:19:49.520> a<02:19:49.760> gap<02:19:50.040> of 02:19:50.870 --> 02:19:50.880 align:start position:0% equal to flex and a gap of 02:19:50.880 --> 02:19:54.309 align:start position:0% equal to flex and a gap of four<02:19:51.880> within<02:19:52.160> it<02:19:52.359> we<02:19:52.439> can<02:19:52.640> create<02:19:53.040> a<02:19:53.319> button 02:19:54.309 --> 02:19:54.319 align:start position:0% four within it we can create a button 02:19:54.319 --> 02:19:56.150 align:start position:0% four within it we can create a button and<02:19:54.479> this<02:19:54.600> is<02:19:54.720> going<02:19:54.880> to<02:19:55.000> be<02:19:55.160> a<02:19:55.399> reusable 02:19:56.150 --> 02:19:56.160 align:start position:0% and this is going to be a reusable 02:19:56.160 --> 02:19:59.349 align:start position:0% and this is going to be a reusable button<02:19:57.000> component<02:19:58.000> of<02:19:58.200> course<02:19:58.680> coming<02:19:59.040> from 02:19:59.349 --> 02:19:59.359 align:start position:0% button component of course coming from 02:19:59.359 --> 02:20:03.070 align:start position:0% button component of course coming from Shad<02:19:59.840> CN<02:20:00.560> meaning<02:20:01.000> from<02:20:01.240> UI<02:20:01.800> button<02:20:02.800> within 02:20:03.070 --> 02:20:03.080 align:start position:0% Shad CN meaning from UI button within 02:20:03.080 --> 02:20:05.910 align:start position:0% Shad CN meaning from UI button within the<02:20:03.200> button<02:20:03.800> we<02:20:03.920> can<02:20:04.080> render<02:20:04.720> the<02:20:04.920> image<02:20:05.680> that 02:20:05.910 --> 02:20:05.920 align:start position:0% the button we can render the image that 02:20:05.920 --> 02:20:09.750 align:start position:0% the button we can render the image that has<02:20:06.160> a<02:20:06.399> source<02:20:07.000> equal<02:20:07.280> to<02:20:07.479> for<02:20:07.840> SL<02:20:08.319> assets<02:20:09.319> SL 02:20:09.750 --> 02:20:09.760 align:start position:0% has a source equal to for SL assets SL 02:20:09.760 --> 02:20:14.070 align:start position:0% has a source equal to for SL assets SL ions<02:20:10.760> SL<02:20:11.160> log<02:20:11.399> out.<02:20:12.040> SVG<02:20:13.040> and<02:20:13.200> the<02:20:13.319> alt<02:20:13.640> tag<02:20:13.920> can 02:20:14.070 --> 02:20:14.080 align:start position:0% ions SL log out. SVG and the alt tag can 02:20:14.080 --> 02:20:15.870 align:start position:0% ions SL log out. SVG and the alt tag can be<02:20:14.240> log<02:20:14.520> out<02:20:14.880> as 02:20:15.870 --> 02:20:15.880 align:start position:0% be log out as 02:20:15.880 --> 02:20:19.110 align:start position:0% be log out as well<02:20:16.880> there<02:20:17.000> we<02:20:17.160> go<02:20:17.520> you<02:20:17.600> can<02:20:17.720> see<02:20:17.920> it<02:20:18.040> on<02:20:18.319> there 02:20:19.110 --> 02:20:19.120 align:start position:0% well there we go you can see it on there 02:20:19.120 --> 02:20:22.150 align:start position:0% well there we go you can see it on there and<02:20:19.359> then<02:20:19.760> we<02:20:19.960> also<02:20:20.240> need<02:20:20.399> to<02:20:20.640> have<02:20:20.920> a<02:20:21.200> variant 02:20:22.150 --> 02:20:22.160 align:start position:0% and then we also need to have a variant 02:20:22.160 --> 02:20:25.590 align:start position:0% and then we also need to have a variant equal<02:20:22.439> to<02:20:22.800> ghost<02:20:23.720> that's<02:20:23.920> an<02:20:24.080> interesting<02:20:24.600> one 02:20:25.590 --> 02:20:25.600 align:start position:0% equal to ghost that's an interesting one 02:20:25.600 --> 02:20:27.910 align:start position:0% equal to ghost that's an interesting one we<02:20:25.720> can<02:20:25.880> give<02:20:26.000> it<02:20:26.120> a<02:20:26.319> class<02:20:26.720> name<02:20:27.359> equal<02:20:27.680> to 02:20:27.910 --> 02:20:27.920 align:start position:0% we can give it a class name equal to 02:20:27.920 --> 02:20:31.910 align:start position:0% we can give it a class name equal to Shad<02:20:28.880> button<02:20:30.120> ghost<02:20:31.120> and<02:20:31.319> we<02:20:31.439> can<02:20:31.560> give<02:20:31.680> it<02:20:31.800> an 02:20:31.910 --> 02:20:31.920 align:start position:0% Shad button ghost and we can give it an 02:20:31.920 --> 02:20:33.270 align:start position:0% Shad button ghost and we can give it an onclick 02:20:33.270 --> 02:20:33.280 align:start position:0% onclick 02:20:33.280 --> 02:20:35.429 align:start position:0% onclick property<02:20:34.280> so<02:20:34.479> that's<02:20:34.640> going<02:20:34.800> to<02:20:34.960> be<02:20:35.240> right 02:20:35.429 --> 02:20:35.439 align:start position:0% property so that's going to be right 02:20:35.439 --> 02:20:38.150 align:start position:0% property so that's going to be right here<02:20:35.680> on<02:20:36.120> click<02:20:37.040> and<02:20:37.200> we<02:20:37.319> simply<02:20:37.600> want<02:20:37.680> to<02:20:37.840> call 02:20:38.150 --> 02:20:38.160 align:start position:0% here on click and we simply want to call 02:20:38.160 --> 02:20:41.510 align:start position:0% here on click and we simply want to call the<02:20:38.439> sign<02:20:38.880> out<02:20:39.640> functionality<02:20:40.640> now<02:20:40.960> this<02:20:41.120> sign 02:20:41.510 --> 02:20:41.520 align:start position:0% the sign out functionality now this sign 02:20:41.520 --> 02:20:44.309 align:start position:0% the sign out functionality now this sign out<02:20:42.000> is<02:20:42.200> something<02:20:42.560> we<02:20:42.720> also<02:20:43.040> have<02:20:43.160> to<02:20:43.399> Define 02:20:44.309 --> 02:20:44.319 align:start position:0% out is something we also have to Define 02:20:44.319 --> 02:20:47.469 align:start position:0% out is something we also have to Define so<02:20:44.560> we'll<02:20:44.800> have<02:20:44.920> to<02:20:45.200> go<02:20:45.640> to<02:20:45.880> our<02:20:46.319> queries 02:20:47.469 --> 02:20:47.479 align:start position:0% so we'll have to go to our queries 02:20:47.479 --> 02:20:49.590 align:start position:0% so we'll have to go to our queries that's<02:20:47.680> going<02:20:47.880> to<02:20:48.000> be<02:20:48.240> within<02:20:48.560> lib<02:20:49.080> react 02:20:49.590 --> 02:20:49.600 align:start position:0% that's going to be within lib react 02:20:49.600 --> 02:20:52.670 align:start position:0% that's going to be within lib react query<02:20:50.479> and<02:20:50.600> then<02:20:50.800> queries<02:20:51.160> and<02:20:51.439> mutations<02:20:52.439> and 02:20:52.670 --> 02:20:52.680 align:start position:0% query and then queries and mutations and 02:20:52.680 --> 02:20:55.270 align:start position:0% query and then queries and mutations and right<02:20:52.920> here<02:20:53.319> we'll<02:20:53.560> have<02:20:53.720> to<02:20:54.000> copy<02:20:54.600> the<02:20:54.800> Ed 02:20:55.270 --> 02:20:55.280 align:start position:0% right here we'll have to copy the Ed 02:20:55.280 --> 02:20:59.429 align:start position:0% right here we'll have to copy the Ed sign<02:20:55.520> in<02:20:56.120> account<02:20:57.120> duplicate<02:20:57.640> it<02:20:58.040> right<02:20:58.439> below 02:20:59.429 --> 02:20:59.439 align:start position:0% sign in account duplicate it right below 02:20:59.439 --> 02:21:04.030 align:start position:0% sign in account duplicate it right below and<02:20:59.760> call<02:21:00.000> it<02:21:00.399> use<02:21:01.120> sign<02:21:01.720> out<02:21:02.760> account<02:21:03.760> and<02:21:03.920> we 02:21:04.030 --> 02:21:04.040 align:start position:0% and call it use sign out account and we 02:21:04.040 --> 02:21:06.550 align:start position:0% and call it use sign out account and we simply<02:21:04.319> want<02:21:04.439> to<02:21:04.640> use<02:21:04.960> a<02:21:05.120> mutation<02:21:06.000> or<02:21:06.359> return 02:21:06.550 --> 02:21:06.560 align:start position:0% simply want to use a mutation or return 02:21:06.560 --> 02:21:09.630 align:start position:0% simply want to use a mutation or return a<02:21:06.800> mutation<02:21:07.800> that<02:21:07.960> doesn't<02:21:08.280> have<02:21:08.439> to<02:21:08.960> get<02:21:09.240> any 02:21:09.630 --> 02:21:09.640 align:start position:0% a mutation that doesn't have to get any 02:21:09.640 --> 02:21:12.630 align:start position:0% a mutation that doesn't have to get any properties<02:21:10.160> in<02:21:10.920> but<02:21:11.120> it<02:21:11.319> has<02:21:11.479> to<02:21:11.680> call<02:21:12.359> the 02:21:12.630 --> 02:21:12.640 align:start position:0% properties in but it has to call the 02:21:12.640 --> 02:21:16.710 align:start position:0% properties in but it has to call the sign<02:21:13.479> out<02:21:14.479> account<02:21:15.359> function<02:21:16.120> so<02:21:16.280> we<02:21:16.399> can<02:21:16.560> do 02:21:16.710 --> 02:21:16.720 align:start position:0% sign out account function so we can do 02:21:16.720 --> 02:21:20.110 align:start position:0% sign out account function so we can do it<02:21:16.960> just<02:21:17.399> like<02:21:17.600> so<02:21:18.399> but<02:21:18.560> of<02:21:18.760> course<02:21:19.439> this<02:21:19.960> has 02:21:20.110 --> 02:21:20.120 align:start position:0% it just like so but of course this has 02:21:20.120 --> 02:21:23.309 align:start position:0% it just like so but of course this has to<02:21:20.319> come<02:21:20.600> from<02:21:21.000> aight<02:21:21.880> so<02:21:22.080> in<02:21:22.240> the<02:21:22.439> aight<02:21:23.080> we'll 02:21:23.309 --> 02:21:23.319 align:start position:0% to come from aight so in the aight we'll 02:21:23.319 --> 02:21:25.710 align:start position:0% to come from aight so in the aight we'll have<02:21:23.439> to<02:21:23.600> create<02:21:23.920> a<02:21:24.160> new<02:21:24.720> function<02:21:25.399> like<02:21:25.560> we 02:21:25.710 --> 02:21:25.720 align:start position:0% have to create a new function like we 02:21:25.720 --> 02:21:28.590 align:start position:0% have to create a new function like we have<02:21:25.920> sign<02:21:26.240> in<02:21:26.600> account<02:21:27.600> we'll<02:21:27.880> also<02:21:28.200> have<02:21:28.319> to 02:21:28.590 --> 02:21:28.600 align:start position:0% have sign in account we'll also have to 02:21:28.600 --> 02:21:31.950 align:start position:0% have sign in account we'll also have to have<02:21:29.000> another<02:21:30.000> export<02:21:30.600> async 02:21:31.950 --> 02:21:31.960 align:start position:0% have another export async 02:21:31.960 --> 02:21:35.429 align:start position:0% have another export async function<02:21:32.960> sign<02:21:33.680> out 02:21:35.429 --> 02:21:35.439 align:start position:0% function sign out 02:21:35.439 --> 02:21:38.190 align:start position:0% function sign out account<02:21:36.439> we<02:21:36.520> can<02:21:36.720> open<02:21:36.960> up<02:21:37.080> a<02:21:37.240> new<02:21:37.520> try<02:21:37.840> and 02:21:38.190 --> 02:21:38.200 align:start position:0% account we can open up a new try and 02:21:38.200 --> 02:21:41.910 align:start position:0% account we can open up a new try and catch<02:21:38.840> block<02:21:39.840> consol<02:21:40.399> log<02:21:40.680> the<02:21:40.880> error<02:21:41.680> right 02:21:41.910 --> 02:21:41.920 align:start position:0% catch block consol log the error right 02:21:41.920 --> 02:21:45.190 align:start position:0% catch block consol log the error right here<02:21:42.680> and<02:21:42.840> then<02:21:43.000> on<02:21:43.280> try<02:21:44.080> we<02:21:44.200> can<02:21:44.359> say<02:21:44.680> con 02:21:45.190 --> 02:21:45.200 align:start position:0% here and then on try we can say con 02:21:45.200 --> 02:21:51.030 align:start position:0% here and then on try we can say con session<02:21:46.120> is<02:21:46.319> equal<02:21:46.640> to<02:21:47.479> await<02:21:48.560> account. 02:21:51.030 --> 02:21:51.040 align:start position:0% session is equal to await account. 02:21:51.040 --> 02:21:54.950 align:start position:0% session is equal to await account. delete<02:21:52.439> session<02:21:53.439> and<02:21:53.560> then<02:21:53.720> we<02:21:53.840> need<02:21:54.000> to<02:21:54.280> pass 02:21:54.950 --> 02:21:54.960 align:start position:0% delete session and then we need to pass 02:21:54.960 --> 02:21:57.389 align:start position:0% delete session and then we need to pass current<02:21:55.960> this<02:21:56.080> is<02:21:56.240> so<02:21:56.479> cool<02:21:56.840> so<02:21:57.040> this<02:21:57.160> was 02:21:57.389 --> 02:21:57.399 align:start position:0% current this is so cool so this was 02:21:57.399 --> 02:22:00.270 align:start position:0% current this is so cool so this was provided<02:21:57.800> to<02:21:58.040> us<02:21:58.640> by<02:21:59.040> app<02:21:59.439> right<02:21:59.840> so<02:22:00.000> we<02:22:00.120> can 02:22:00.270 --> 02:22:00.280 align:start position:0% provided to us by app right so we can 02:22:00.280 --> 02:22:02.469 align:start position:0% provided to us by app right so we can delete<02:22:00.640> the<02:22:00.840> session<02:22:01.680> and<02:22:01.840> then<02:22:01.960> we<02:22:02.080> can 02:22:02.469 --> 02:22:02.479 align:start position:0% delete the session and then we can 02:22:02.479 --> 02:22:04.309 align:start position:0% delete the session and then we can return<02:22:02.880> deleted 02:22:04.309 --> 02:22:04.319 align:start position:0% return deleted 02:22:04.319 --> 02:22:07.590 align:start position:0% return deleted session<02:22:05.319> now<02:22:06.080> we<02:22:06.240> have<02:22:06.479> this<02:22:06.680> sign<02:22:06.960> out 02:22:07.590 --> 02:22:07.600 align:start position:0% session now we have this sign out 02:22:07.600 --> 02:22:10.230 align:start position:0% session now we have this sign out account<02:22:08.600> within<02:22:09.000> queries<02:22:09.359> and<02:22:09.520> mutations<02:22:10.120> we 02:22:10.230 --> 02:22:10.240 align:start position:0% account within queries and mutations we 02:22:10.240 --> 02:22:13.230 align:start position:0% account within queries and mutations we can<02:22:10.479> import<02:22:10.840> it<02:22:11.200> from<02:22:11.520> app<02:22:11.960> right<02:22:12.960> and<02:22:13.120> we 02:22:13.230 --> 02:22:13.240 align:start position:0% can import it from app right and we 02:22:13.240 --> 02:22:14.990 align:start position:0% can import it from app right and we don't<02:22:13.439> have<02:22:13.560> to<02:22:13.720> call<02:22:13.960> it<02:22:14.280> because<02:22:14.760> it's<02:22:14.920> going 02:22:14.990 --> 02:22:15.000 align:start position:0% don't have to call it because it's going 02:22:15.000 --> 02:22:17.429 align:start position:0% don't have to call it because it's going to<02:22:15.080> be<02:22:15.200> self<02:22:15.640> calling<02:22:16.000> function<02:22:16.800> or<02:22:17.240> rather 02:22:17.429 --> 02:22:17.439 align:start position:0% to be self calling function or rather 02:22:17.439 --> 02:22:19.389 align:start position:0% to be self calling function or rather just<02:22:17.560> a<02:22:17.680> function<02:22:18.000> declaration<02:22:18.640> here<02:22:19.280> and 02:22:19.389 --> 02:22:19.399 align:start position:0% just a function declaration here and 02:22:19.399 --> 02:22:21.510 align:start position:0% just a function declaration here and then<02:22:19.600> going<02:22:19.960> back<02:22:20.120> to<02:22:20.280> the<02:22:20.439> top<02:22:20.680> bar<02:22:21.120> we<02:22:21.240> can 02:22:21.510 --> 02:22:21.520 align:start position:0% then going back to the top bar we can 02:22:21.520 --> 02:22:24.990 align:start position:0% then going back to the top bar we can Define<02:22:22.359> that<02:22:23.160> mutation<02:22:24.160> we<02:22:24.280> can<02:22:24.439> do<02:22:24.680> that<02:22:24.840> by 02:22:24.990 --> 02:22:25.000 align:start position:0% Define that mutation we can do that by 02:22:25.000 --> 02:22:28.750 align:start position:0% Define that mutation we can do that by going<02:22:25.319> here<02:22:25.479> to<02:22:25.640> the<02:22:25.880> top<02:22:26.560> and<02:22:26.760> saying<02:22:27.760> const 02:22:28.750 --> 02:22:28.760 align:start position:0% going here to the top and saying const 02:22:28.760 --> 02:22:32.429 align:start position:0% going here to the top and saying const mutate<02:22:29.720> in<02:22:29.920> this<02:22:30.160> case<02:22:30.399> it's<02:22:30.560> going<02:22:30.760> to<02:22:31.200> sign 02:22:32.429 --> 02:22:32.439 align:start position:0% mutate in this case it's going to sign 02:22:32.439 --> 02:22:35.309 align:start position:0% mutate in this case it's going to sign out<02:22:33.439> we're<02:22:33.600> going<02:22:33.720> to<02:22:34.040> get<02:22:34.280> the<02:22:34.479> is<02:22:34.840> Success 02:22:35.309 --> 02:22:35.319 align:start position:0% out we're going to get the is Success 02:22:35.319 --> 02:22:37.349 align:start position:0% out we're going to get the is Success variable<02:22:35.840> as<02:22:36.000> well<02:22:36.640> and<02:22:36.800> that's<02:22:36.960> going<02:22:37.040> to<02:22:37.160> be 02:22:37.349 --> 02:22:37.359 align:start position:0% variable as well and that's going to be 02:22:37.359 --> 02:22:40.910 align:start position:0% variable as well and that's going to be equal<02:22:37.600> to<02:22:37.840> use<02:22:38.439> sign<02:22:39.160> out<02:22:39.920> account<02:22:40.680> coming 02:22:40.910 --> 02:22:40.920 align:start position:0% equal to use sign out account coming 02:22:40.920 --> 02:22:44.750 align:start position:0% equal to use sign out account coming from<02:22:41.240> lib<02:22:41.720> react<02:22:42.200> query<02:22:42.920> queries<02:22:43.399> and 02:22:44.750 --> 02:22:44.760 align:start position:0% from lib react query queries and 02:22:44.760 --> 02:22:47.190 align:start position:0% from lib react query queries and mutations<02:22:45.760> and<02:22:45.920> now<02:22:46.200> we<02:22:46.280> can<02:22:46.439> call<02:22:46.680> the<02:22:46.800> sign 02:22:47.190 --> 02:22:47.200 align:start position:0% mutations and now we can call the sign 02:22:47.200 --> 02:22:51.550 align:start position:0% mutations and now we can call the sign now<02:22:47.560> on<02:22:48.439> click<02:22:49.439> and<02:22:49.560> we<02:22:49.680> can<02:22:49.880> also<02:22:50.200> make<02:22:50.359> it<02:22:51.040> a 02:22:51.550 --> 02:22:51.560 align:start position:0% now on click and we can also make it a 02:22:51.560 --> 02:22:55.110 align:start position:0% now on click and we can also make it a an<02:22:51.760> actual<02:22:52.200> function<02:22:53.200> like<02:22:53.680> so<02:22:54.479> and<02:22:54.640> call<02:22:54.840> it 02:22:55.110 --> 02:22:55.120 align:start position:0% an actual function like so and call it 02:22:55.120 --> 02:22:57.750 align:start position:0% an actual function like so and call it here<02:22:55.800> there<02:22:56.000> we<02:22:56.160> go<02:22:56.920> so<02:22:57.120> now<02:22:57.280> we<02:22:57.359> can<02:22:57.479> see<02:22:57.640> the 02:22:57.750 --> 02:22:57.760 align:start position:0% here there we go so now we can see the 02:22:57.760 --> 02:23:01.110 align:start position:0% here there we go so now we can see the log<02:22:58.000> out<02:22:58.280> button<02:22:58.840> as<02:22:59.160> well<02:23:00.160> here<02:23:00.520> we<02:23:00.720> also<02:23:01.000> want 02:23:01.110 --> 02:23:01.120 align:start position:0% log out button as well here we also want 02:23:01.120 --> 02:23:05.030 align:start position:0% log out button as well here we also want to<02:23:01.319> add<02:23:01.600> a<02:23:01.800> use<02:23:02.160> effect<02:23:02.600> so<02:23:02.760> we<02:23:02.840> can<02:23:02.960> say<02:23:03.319> use 02:23:05.030 --> 02:23:05.040 align:start position:0% to add a use effect so we can say use 02:23:05.040 --> 02:23:08.750 align:start position:0% to add a use effect so we can say use effect<02:23:06.040> and<02:23:06.520> if<02:23:07.080> we<02:23:07.240> have<02:23:07.760> successfully 02:23:08.750 --> 02:23:08.760 align:start position:0% effect and if we have successfully 02:23:08.760 --> 02:23:12.030 align:start position:0% effect and if we have successfully navigated<02:23:09.439> so<02:23:09.760> if<02:23:10.080> is<02:23:10.439> Success<02:23:11.439> then<02:23:11.800> we<02:23:11.920> want 02:23:12.030 --> 02:23:12.040 align:start position:0% navigated so if is Success then we want 02:23:12.040 --> 02:23:16.070 align:start position:0% navigated so if is Success then we want to<02:23:12.200> use<02:23:12.439> the<02:23:12.600> navigate<02:23:13.479> so<02:23:13.760> right<02:23:14.000> here<02:23:14.520> we<02:23:14.640> can 02:23:16.070 --> 02:23:16.080 align:start position:0% to use the navigate so right here we can 02:23:16.080 --> 02:23:20.070 align:start position:0% to use the navigate so right here we can import<02:23:17.160> const<02:23:17.960> so<02:23:18.160> at<02:23:18.319> the<02:23:18.520> top<02:23:18.880> we<02:23:19.000> can<02:23:19.240> import 02:23:20.070 --> 02:23:20.080 align:start position:0% import const so at the top we can import 02:23:20.080 --> 02:23:23.670 align:start position:0% import const so at the top we can import use<02:23:20.680> navigate<02:23:21.600> from<02:23:21.800> react<02:23:22.359> Rd<02:23:23.359> we<02:23:23.439> can 02:23:23.670 --> 02:23:23.680 align:start position:0% use navigate from react Rd we can 02:23:23.680 --> 02:23:26.590 align:start position:0% use navigate from react Rd we can declare<02:23:24.080> it<02:23:24.240> as<02:23:24.359> a<02:23:24.520> function<02:23:25.000> con<02:23:25.399> navigate<02:23:26.359> is 02:23:26.590 --> 02:23:26.600 align:start position:0% declare it as a function con navigate is 02:23:26.600 --> 02:23:30.389 align:start position:0% declare it as a function con navigate is equal<02:23:26.880> to<02:23:27.120> use<02:23:27.600> navigate<02:23:28.600> and<02:23:28.800> then<02:23:29.439> if<02:23:30.120> is 02:23:30.389 --> 02:23:30.399 align:start position:0% equal to use navigate and then if is 02:23:30.399 --> 02:23:34.030 align:start position:0% equal to use navigate and then if is Success<02:23:31.240> we<02:23:31.359> can<02:23:31.479> say<02:23:31.800> navigate<02:23:32.800> Z<02:23:33.800> this<02:23:33.920> is 02:23:34.030 --> 02:23:34.040 align:start position:0% Success we can say navigate Z this is 02:23:34.040 --> 02:23:36.349 align:start position:0% Success we can say navigate Z this is going<02:23:34.200> to<02:23:34.399> navigate<02:23:34.880> us<02:23:35.240> to<02:23:35.479> the<02:23:35.760> sign<02:23:36.000> up<02:23:36.200> or 02:23:36.349 --> 02:23:36.359 align:start position:0% going to navigate us to the sign up or 02:23:36.359 --> 02:23:39.110 align:start position:0% going to navigate us to the sign up or the<02:23:36.520> signin<02:23:36.960> screen<02:23:37.880> and<02:23:38.000> we<02:23:38.160> also<02:23:38.359> need<02:23:38.520> to 02:23:39.110 --> 02:23:39.120 align:start position:0% the signin screen and we also need to 02:23:39.120 --> 02:23:42.070 align:start position:0% the signin screen and we also need to add<02:23:40.120> the<02:23:40.319> dependency<02:23:40.800> array<02:23:41.399> or<02:23:41.600> we<02:23:41.680> can<02:23:41.840> check 02:23:42.070 --> 02:23:42.080 align:start position:0% add the dependency array or we can check 02:23:42.080 --> 02:23:45.030 align:start position:0% add the dependency array or we can check for<02:23:42.319> is<02:23:42.600> success<02:23:43.520> and<02:23:43.640> then<02:23:43.880> import<02:23:44.640> use 02:23:45.030 --> 02:23:45.040 align:start position:0% for is success and then import use 02:23:45.040 --> 02:23:48.150 align:start position:0% for is success and then import use effect<02:23:45.520> from<02:23:45.840> react<02:23:46.479> so<02:23:46.720> the<02:23:46.840> task<02:23:47.520> we<02:23:47.600> can 02:23:48.150 --> 02:23:48.160 align:start position:0% effect from react so the task we can 02:23:48.160 --> 02:23:51.830 align:start position:0% effect from react so the task we can import<02:23:49.160> use<02:23:49.880> effect<02:23:50.880> coming 02:23:51.830 --> 02:23:51.840 align:start position:0% import use effect coming 02:23:51.840 --> 02:23:53.870 align:start position:0% import use effect coming from 02:23:53.870 --> 02:23:53.880 align:start position:0% from 02:23:53.880 --> 02:23:57.990 align:start position:0% from react<02:23:54.880> there<02:23:55.319> we<02:23:55.960> go<02:23:56.960> finally<02:23:57.399> we<02:23:57.479> can<02:23:57.680> also 02:23:57.990 --> 02:23:58.000 align:start position:0% react there we go finally we can also 02:23:58.000 --> 02:24:00.469 align:start position:0% react there we go finally we can also add<02:23:58.319> a<02:23:58.560> profile<02:23:58.960> photo<02:23:59.600> that<02:23:59.720> we<02:23:59.840> can<02:24:00.040> click<02:24:00.319> to 02:24:00.469 --> 02:24:00.479 align:start position:0% add a profile photo that we can click to 02:24:00.479 --> 02:24:02.710 align:start position:0% add a profile photo that we can click to go<02:24:00.600> to<02:24:00.760> our<02:24:01.040> profile<02:24:01.680> so<02:24:02.000> right<02:24:02.240> below<02:24:02.560> the 02:24:02.710 --> 02:24:02.720 align:start position:0% go to our profile so right below the 02:24:02.720 --> 02:24:05.630 align:start position:0% go to our profile so right below the button<02:24:03.359> we<02:24:03.479> can<02:24:03.680> add<02:24:03.840> a<02:24:04.040> link<02:24:05.040> that's<02:24:05.240> going<02:24:05.399> to 02:24:05.630 --> 02:24:05.640 align:start position:0% button we can add a link that's going to 02:24:05.640 --> 02:24:09.830 align:start position:0% button we can add a link that's going to have<02:24:05.840> a<02:24:06.439> two<02:24:07.439> and<02:24:07.680> then<02:24:07.960> we<02:24:08.080> want<02:24:08.200> to<02:24:08.399> go<02:24:08.720> to<02:24:09.359> for 02:24:09.830 --> 02:24:09.840 align:start position:0% have a two and then we want to go to for 02:24:09.840 --> 02:24:13.309 align:start position:0% have a two and then we want to go to for SL<02:24:10.319> profile<02:24:11.200> but<02:24:11.399> now<02:24:11.680> how<02:24:11.880> do<02:24:12.040> we<02:24:12.200> get<02:24:12.399> the<02:24:12.640> ID 02:24:13.309 --> 02:24:13.319 align:start position:0% SL profile but now how do we get the ID 02:24:13.319 --> 02:24:15.750 align:start position:0% SL profile but now how do we get the ID of<02:24:13.439> the<02:24:13.600> currently<02:24:14.000> logged<02:24:14.319> in<02:24:14.520> user<02:24:15.439> well 02:24:15.750 --> 02:24:15.760 align:start position:0% of the currently logged in user well 02:24:15.760 --> 02:24:18.309 align:start position:0% of the currently logged in user well thankfully<02:24:16.359> we<02:24:16.520> have<02:24:16.640> created<02:24:17.160> our<02:24:17.439> context 02:24:18.309 --> 02:24:18.319 align:start position:0% thankfully we have created our context 02:24:18.319 --> 02:24:20.710 align:start position:0% thankfully we have created our context so<02:24:18.680> right<02:24:18.880> here<02:24:19.080> at<02:24:19.240> the<02:24:19.479> top<02:24:20.000> we<02:24:20.120> can<02:24:20.319> say 02:24:20.710 --> 02:24:20.720 align:start position:0% so right here at the top we can say 02:24:20.720 --> 02:24:26.550 align:start position:0% so right here at the top we can say const<02:24:21.720> user<02:24:22.720> is<02:24:22.960> equal<02:24:23.279> to<02:24:24.040> use<02:24:24.720> user<02:24:25.640> context 02:24:26.550 --> 02:24:26.560 align:start position:0% const user is equal to use user context 02:24:26.560 --> 02:24:30.469 align:start position:0% const user is equal to use user context which<02:24:26.720> we<02:24:26.880> have<02:24:27.000> to<02:24:27.279> import<02:24:27.960> from<02:24:28.760> atcontext 02:24:30.469 --> 02:24:30.479 align:start position:0% which we have to import from atcontext 02:24:30.479 --> 02:24:34.670 align:start position:0% which we have to import from atcontext SLO<02:24:31.640> context<02:24:32.640> and<02:24:32.800> then<02:24:33.359> right<02:24:33.600> here<02:24:34.439> we<02:24:34.560> can 02:24:34.670 --> 02:24:34.680 align:start position:0% SLO context and then right here we can 02:24:34.680 --> 02:24:36.990 align:start position:0% SLO context and then right here we can use<02:24:34.880> dollar<02:24:35.200> sign<02:24:35.359> and<02:24:35.520> curly<02:24:35.840> braces<02:24:36.840> and 02:24:36.990 --> 02:24:37.000 align:start position:0% use dollar sign and curly braces and 02:24:37.000 --> 02:24:39.030 align:start position:0% use dollar sign and curly braces and then<02:24:37.160> say<02:24:37.479> user. 02:24:39.030 --> 02:24:39.040 align:start position:0% then say user. 02:24:39.040 --> 02:24:41.670 align:start position:0% then say user. ID<02:24:40.040> we<02:24:40.120> can<02:24:40.279> also<02:24:40.520> give<02:24:40.720> this<02:24:40.840> link<02:24:41.120> a<02:24:41.359> class 02:24:41.670 --> 02:24:41.680 align:start position:0% ID we can also give this link a class 02:24:41.680 --> 02:24:46.590 align:start position:0% ID we can also give this link a class name<02:24:42.479> equal<02:24:42.800> to<02:24:43.120> flex<02:24:44.200> Center<02:24:45.200> Gap<02:24:45.520> 3<02:24:46.439> and 02:24:46.590 --> 02:24:46.600 align:start position:0% name equal to flex Center Gap 3 and 02:24:46.600 --> 02:24:48.630 align:start position:0% name equal to flex Center Gap 3 and write<02:24:47.040> within<02:24:47.319> the<02:24:47.439> link<02:24:47.840> we<02:24:47.960> can<02:24:48.080> render<02:24:48.359> an 02:24:48.630 --> 02:24:48.640 align:start position:0% write within the link we can render an 02:24:48.640 --> 02:24:51.349 align:start position:0% write within the link we can render an image<02:24:49.640> that's<02:24:49.840> going<02:24:50.000> to<02:24:50.200> have<02:24:50.439> a<02:24:50.680> source 02:24:51.349 --> 02:24:51.359 align:start position:0% image that's going to have a source 02:24:51.359 --> 02:24:56.550 align:start position:0% image that's going to have a source equal<02:24:51.720> to<02:24:52.720> either<02:24:53.760> user.<02:24:54.760> image<02:24:55.240> URL<02:24:56.240> or<02:24:56.439> we 02:24:56.550 --> 02:24:56.560 align:start position:0% equal to either user. image URL or we 02:24:56.560 --> 02:24:58.510 align:start position:0% equal to either user. image URL or we can<02:24:56.680> use<02:24:56.880> some<02:24:57.040> kind<02:24:57.160> of<02:24:57.240> a<02:24:57.439> placeholder<02:24:58.359> just 02:24:58.510 --> 02:24:58.520 align:start position:0% can use some kind of a placeholder just 02:24:58.520 --> 02:25:03.190 align:start position:0% can use some kind of a placeholder just to<02:24:58.680> be<02:24:58.880> safe<02:24:59.359> so<02:24:59.560> that's<02:24:59.760> for/<02:25:00.600> assets<02:25:01.600> SL 02:25:03.190 --> 02:25:03.200 align:start position:0% to be safe so that's for/ assets SL 02:25:03.200 --> 02:25:06.910 align:start position:0% to be safe so that's for/ assets SL imagesprofile<02:25:04.200> dplace<02:25:05.120> holder. 02:25:06.910 --> 02:25:06.920 align:start position:0% imagesprofile dplace holder. 02:25:06.920 --> 02:25:11.550 align:start position:0% imagesprofile dplace holder. SVG<02:25:07.920> if<02:25:08.000> we<02:25:08.160> save<02:25:08.439> it<02:25:09.200> we<02:25:09.319> can<02:25:09.439> see<02:25:09.640> our<02:25:09.960> huge 02:25:11.550 --> 02:25:11.560 align:start position:0% SVG if we save it we can see our huge 02:25:11.560 --> 02:25:14.950 align:start position:0% SVG if we save it we can see our huge TR<02:25:12.560> soon<02:25:12.880> enough<02:25:13.120> we'll<02:25:13.319> figure<02:25:13.560> out<02:25:13.840> why<02:25:14.120> TR<02:25:14.880> I 02:25:14.950 --> 02:25:14.960 align:start position:0% TR soon enough we'll figure out why TR I 02:25:14.960 --> 02:25:16.469 align:start position:0% TR soon enough we'll figure out why TR I don't<02:25:15.160> think<02:25:15.319> I've<02:25:15.520> called<02:25:15.840> myself<02:25:16.200> something 02:25:16.469 --> 02:25:16.479 align:start position:0% don't think I've called myself something 02:25:16.479 --> 02:25:19.790 align:start position:0% don't think I've called myself something with<02:25:16.640> t<02:25:17.000> are<02:25:17.560> oh<02:25:17.760> I<02:25:18.000> have<02:25:18.439> it's<02:25:18.640> the<02:25:18.800> real<02:25:19.160> JSM 02:25:19.790 --> 02:25:19.800 align:start position:0% with t are oh I have it's the real JSM 02:25:19.800 --> 02:25:22.429 align:start position:0% with t are oh I have it's the real JSM so<02:25:20.000> that's<02:25:20.120> why<02:25:20.279> it<02:25:20.479> has<02:25:20.680> those<02:25:21.040> initials<02:25:22.040> alt 02:25:22.429 --> 02:25:22.439 align:start position:0% so that's why it has those initials alt 02:25:22.439 --> 02:25:24.950 align:start position:0% so that's why it has those initials alt is<02:25:22.560> going<02:25:22.720> to<02:25:22.840> be<02:25:23.160> profile<02:25:24.160> and<02:25:24.279> then<02:25:24.560> class 02:25:24.950 --> 02:25:24.960 align:start position:0% is going to be profile and then class 02:25:24.960 --> 02:25:27.550 align:start position:0% is going to be profile and then class name<02:25:25.319> is<02:25:25.520> going<02:25:25.720> to<02:25:25.920> be 02:25:27.550 --> 02:25:27.560 align:start position:0% name is going to be 02:25:27.560 --> 02:25:30.150 align:start position:0% name is going to be h-8<02:25:28.560> for<02:25:28.840> height 02:25:30.150 --> 02:25:30.160 align:start position:0% h-8 for height 02:25:30.160 --> 02:25:32.670 align:start position:0% h-8 for height w-8<02:25:31.160> and<02:25:31.279> then<02:25:31.439> Tailwind<02:25:32.040> allows<02:25:32.319> us<02:25:32.439> to<02:25:32.560> make 02:25:32.670 --> 02:25:32.680 align:start position:0% w-8 and then Tailwind allows us to make 02:25:32.680 --> 02:25:34.790 align:start position:0% w-8 and then Tailwind allows us to make it<02:25:32.920> rounded<02:25:33.399> really<02:25:33.680> easily<02:25:34.279> by<02:25:34.439> saying 02:25:34.790 --> 02:25:34.800 align:start position:0% it rounded really easily by saying 02:25:34.800 --> 02:25:38.150 align:start position:0% it rounded really easily by saying rounded<02:25:35.399> Das<02:25:35.880> full<02:25:36.880> and<02:25:37.080> now<02:25:37.319> we<02:25:37.479> have<02:25:37.640> our<02:25:37.880> top 02:25:38.150 --> 02:25:38.160 align:start position:0% rounded Das full and now we have our top 02:25:38.160 --> 02:25:41.030 align:start position:0% rounded Das full and now we have our top bar<02:25:38.840> you<02:25:39.000> might<02:25:39.160> have<02:25:39.279> been<02:25:39.600> wondering<02:25:40.600> where 02:25:41.030 --> 02:25:41.040 align:start position:0% bar you might have been wondering where 02:25:41.040 --> 02:25:43.309 align:start position:0% bar you might have been wondering where is<02:25:41.200> this<02:25:41.359> stop<02:25:41.680> bar<02:25:42.000> right<02:25:42.399> on<02:25:42.560> the<02:25:42.720> desktop<02:25:43.200> we 02:25:43.309 --> 02:25:43.319 align:start position:0% is this stop bar right on the desktop we 02:25:43.319 --> 02:25:45.389 align:start position:0% is this stop bar right on the desktop we don't<02:25:43.600> have<02:25:43.760> it<02:25:44.399> but<02:25:44.520> we're<02:25:44.760> immediately 02:25:45.389 --> 02:25:45.399 align:start position:0% don't have it but we're immediately 02:25:45.399 --> 02:25:47.870 align:start position:0% don't have it but we're immediately building<02:25:45.840> this<02:25:46.040> application<02:25:46.920> so<02:25:47.240> it<02:25:47.439> works 02:25:47.870 --> 02:25:47.880 align:start position:0% building this application so it works 02:25:47.880 --> 02:25:50.790 align:start position:0% building this application so it works well<02:25:48.359> not<02:25:48.680> well<02:25:49.080> so<02:25:49.279> it<02:25:49.399> works<02:25:49.840> phenomenally 02:25:50.790 --> 02:25:50.800 align:start position:0% well not well so it works phenomenally 02:25:50.800 --> 02:25:53.389 align:start position:0% well not well so it works phenomenally on<02:25:51.000> mobile<02:25:51.399> devices<02:25:52.319> so<02:25:52.560> that's<02:25:52.800> why<02:25:53.000> here<02:25:53.200> in 02:25:53.389 --> 02:25:53.399 align:start position:0% on mobile devices so that's why here in 02:25:53.399 --> 02:25:57.110 align:start position:0% on mobile devices so that's why here in Mobile<02:25:54.120> this<02:25:54.359> phenomenal<02:25:55.120> top<02:25:55.399> bar<02:25:56.120> appears 02:25:57.110 --> 02:25:57.120 align:start position:0% Mobile this phenomenal top bar appears 02:25:57.120 --> 02:25:59.269 align:start position:0% Mobile this phenomenal top bar appears that's<02:25:57.399> great<02:25:58.240> and<02:25:58.479> now<02:25:58.640> we<02:25:58.800> also<02:25:59.000> have<02:25:59.160> the 02:25:59.269 --> 02:25:59.279 align:start position:0% that's great and now we also have the 02:25:59.279 --> 02:26:02.230 align:start position:0% that's great and now we also have the log<02:25:59.520> out<02:25:59.760> functionality<02:26:00.600> so<02:26:00.760> if<02:26:00.880> we<02:26:01.040> click<02:26:01.279> it 02:26:02.230 --> 02:26:02.240 align:start position:0% log out functionality so if we click it 02:26:02.240 --> 02:26:04.790 align:start position:0% log out functionality so if we click it actually<02:26:02.560> redirects<02:26:03.319> back<02:26:04.240> and<02:26:04.479> we<02:26:04.600> can 02:26:04.790 --> 02:26:04.800 align:start position:0% actually redirects back and we can 02:26:04.800 --> 02:26:08.110 align:start position:0% actually redirects back and we can immediately<02:26:05.680> jump<02:26:06.359> back<02:26:06.720> in<02:26:07.520> everything<02:26:07.920> is 02:26:08.110 --> 02:26:08.120 align:start position:0% immediately jump back in everything is 02:26:08.120 --> 02:26:11.070 align:start position:0% immediately jump back in everything is working<02:26:08.520> flawlessly<02:26:09.240> so<02:26:09.479> far<02:26:10.120> the<02:26:10.359> top<02:26:10.600> bar<02:26:10.880> is 02:26:11.070 --> 02:26:11.080 align:start position:0% working flawlessly so far the top bar is 02:26:11.080 --> 02:26:14.030 align:start position:0% working flawlessly so far the top bar is done<02:26:11.720> let's<02:26:12.000> focus<02:26:12.399> on<02:26:12.560> the<02:26:12.840> left<02:26:13.279> sidebar 02:26:14.030 --> 02:26:14.040 align:start position:0% done let's focus on the left sidebar 02:26:14.040 --> 02:26:16.110 align:start position:0% done let's focus on the left sidebar next<02:26:15.000> here<02:26:15.120> is<02:26:15.279> where<02:26:15.399> we're<02:26:15.520> going<02:26:15.600> to<02:26:15.800> have 02:26:16.110 --> 02:26:16.120 align:start position:0% next here is where we're going to have 02:26:16.120 --> 02:26:19.710 align:start position:0% next here is where we're going to have all<02:26:16.399> of<02:26:16.560> the<02:26:16.920> links<02:26:17.720> that<02:26:17.880> we<02:26:18.120> have<02:26:18.720> right 02:26:19.710 --> 02:26:19.720 align:start position:0% all of the links that we have right 02:26:19.720 --> 02:26:22.190 align:start position:0% all of the links that we have right here<02:26:20.720> to<02:26:21.080> get<02:26:21.279> started<02:26:21.640> with<02:26:21.800> the<02:26:21.960> left 02:26:22.190 --> 02:26:22.200 align:start position:0% here to get started with the left 02:26:22.200 --> 02:26:24.150 align:start position:0% here to get started with the left sidebar<02:26:22.760> we'll<02:26:23.040> have<02:26:23.160> to<02:26:23.359> keep<02:26:23.520> our<02:26:23.720> window 02:26:24.150 --> 02:26:24.160 align:start position:0% sidebar we'll have to keep our window 02:26:24.160 --> 02:26:26.510 align:start position:0% sidebar we'll have to keep our window expanded<02:26:24.960> so<02:26:25.080> we<02:26:25.200> can<02:26:25.319> see<02:26:25.520> it<02:26:25.680> on<02:26:25.840> the<02:26:26.040> desktop 02:26:26.510 --> 02:26:26.520 align:start position:0% expanded so we can see it on the desktop 02:26:26.520 --> 02:26:28.950 align:start position:0% expanded so we can see it on the desktop mode<02:26:27.080> which<02:26:27.240> we<02:26:27.319> can<02:26:27.560> see<02:26:28.120> right<02:26:28.399> here<02:26:28.720> I<02:26:28.840> guess 02:26:28.950 --> 02:26:28.960 align:start position:0% mode which we can see right here I guess 02:26:28.960 --> 02:26:31.750 align:start position:0% mode which we can see right here I guess it's<02:26:29.200> tablet<02:26:29.680> as<02:26:29.840> well<02:26:30.840> and<02:26:31.040> then<02:26:31.240> we<02:26:31.359> can<02:26:31.479> move 02:26:31.750 --> 02:26:31.760 align:start position:0% it's tablet as well and then we can move 02:26:31.760 --> 02:26:34.830 align:start position:0% it's tablet as well and then we can move our<02:26:31.960> code<02:26:32.359> just<02:26:32.560> a<02:26:32.840> bit<02:26:33.520> to<02:26:33.760> the<02:26:33.960> left<02:26:34.479> there<02:26:34.640> we 02:26:34.830 --> 02:26:34.840 align:start position:0% our code just a bit to the left there we 02:26:34.840 --> 02:26:37.990 align:start position:0% our code just a bit to the left there we go<02:26:35.600> so<02:26:35.840> let's<02:26:36.080> start<02:26:36.439> with<02:26:36.640> creating<02:26:37.080> a<02:26:37.279> nav 02:26:37.990 --> 02:26:38.000 align:start position:0% go so let's start with creating a nav 02:26:38.000 --> 02:26:39.790 align:start position:0% go so let's start with creating a nav because<02:26:38.439> yeah<02:26:38.640> even<02:26:38.840> though<02:26:38.960> it's<02:26:39.040> a<02:26:39.240> sidebar 02:26:39.790 --> 02:26:39.800 align:start position:0% because yeah even though it's a sidebar 02:26:39.800 --> 02:26:42.429 align:start position:0% because yeah even though it's a sidebar it<02:26:39.880> is<02:26:40.000> a<02:26:40.160> navigation<02:26:40.760> bar<02:26:41.760> we<02:26:41.880> can<02:26:42.000> give<02:26:42.120> it<02:26:42.240> a 02:26:42.429 --> 02:26:42.439 align:start position:0% it is a navigation bar we can give it a 02:26:42.439 --> 02:26:46.830 align:start position:0% it is a navigation bar we can give it a class<02:26:42.800> name<02:26:43.399> equal<02:26:43.760> to<02:26:44.560> left<02:26:45.399> sidebar<02:26:46.399> we<02:26:46.520> can 02:26:46.830 --> 02:26:46.840 align:start position:0% class name equal to left sidebar we can 02:26:46.840 --> 02:26:49.230 align:start position:0% class name equal to left sidebar we can save<02:26:47.080> it<02:26:47.319> and<02:26:47.520> go<02:26:47.800> back<02:26:48.399> and<02:26:48.520> now<02:26:48.840> here<02:26:49.040> you<02:26:49.120> can 02:26:49.230 --> 02:26:49.240 align:start position:0% save it and go back and now here you can 02:26:49.240 --> 02:26:51.429 align:start position:0% save it and go back and now here you can see<02:26:49.520> immediately<02:26:50.080> that<02:26:50.279> this<02:26:50.479> shifted<02:26:51.279> the 02:26:51.429 --> 02:26:51.439 align:start position:0% see immediately that this shifted the 02:26:51.439 --> 02:26:53.910 align:start position:0% see immediately that this shifted the homepage<02:26:52.040> a<02:26:52.200> bit<02:26:52.399> to<02:26:52.560> the<02:26:52.760> right<02:26:53.479> within<02:26:53.800> the 02:26:53.910 --> 02:26:53.920 align:start position:0% homepage a bit to the right within the 02:26:53.920 --> 02:26:56.269 align:start position:0% homepage a bit to the right within the nav<02:26:54.359> let's<02:26:54.600> create<02:26:54.960> a<02:26:55.200> div<02:26:55.720> that's<02:26:55.920> going<02:26:56.080> to 02:26:56.269 --> 02:26:56.279 align:start position:0% nav let's create a div that's going to 02:26:56.279 --> 02:27:00.190 align:start position:0% nav let's create a div that's going to have<02:26:56.439> a<02:26:56.680> class<02:26:57.040> name<02:26:57.520> equal<02:26:57.800> to<02:26:58.000> flex<02:26:59.200> flex-all 02:27:00.190 --> 02:27:00.200 align:start position:0% have a class name equal to flex flex-all 02:27:00.200 --> 02:27:01.910 align:start position:0% have a class name equal to flex flex-all as<02:27:00.319> the<02:27:00.439> elements<02:27:00.760> are<02:27:00.880> going<02:27:01.040> to<02:27:01.240> appear<02:27:01.680> one 02:27:01.910 --> 02:27:01.920 align:start position:0% as the elements are going to appear one 02:27:01.920 --> 02:27:04.910 align:start position:0% as the elements are going to appear one on<02:27:02.200> top<02:27:02.359> of<02:27:02.479> another<02:27:03.279> and<02:27:03.399> then<02:27:03.560> a<02:27:03.800> gap<02:27:04.120> of<02:27:04.439> 11 02:27:04.910 --> 02:27:04.920 align:start position:0% on top of another and then a gap of 11 02:27:04.920 --> 02:27:07.590 align:start position:0% on top of another and then a gap of 11 to<02:27:05.160> create<02:27:05.439> some<02:27:05.760> space<02:27:06.760> right<02:27:07.000> within<02:27:07.359> that 02:27:07.590 --> 02:27:07.600 align:start position:0% to create some space right within that 02:27:07.600 --> 02:27:10.230 align:start position:0% to create some space right within that div<02:27:07.960> we're<02:27:08.080> going<02:27:08.200> to<02:27:08.439> have<02:27:08.680> our<02:27:08.920> first<02:27:09.399> link 02:27:10.230 --> 02:27:10.240 align:start position:0% div we're going to have our first link 02:27:10.240 --> 02:27:12.230 align:start position:0% div we're going to have our first link and<02:27:10.359> this<02:27:10.439> is<02:27:10.560> going<02:27:10.760> to<02:27:10.840> be<02:27:11.000> the<02:27:11.120> same<02:27:11.399> link<02:27:12.000> as 02:27:12.230 --> 02:27:12.240 align:start position:0% and this is going to be the same link as 02:27:12.240 --> 02:27:16.349 align:start position:0% and this is going to be the same link as on<02:27:12.520> mobile<02:27:13.160> so<02:27:13.319> we<02:27:13.439> can<02:27:13.720> go<02:27:14.160> back<02:27:14.840> to<02:27:15.439> our<02:27:16.000> top 02:27:16.349 --> 02:27:16.359 align:start position:0% on mobile so we can go back to our top 02:27:16.359 --> 02:27:19.510 align:start position:0% on mobile so we can go back to our top bar<02:27:17.080> and<02:27:17.240> we<02:27:17.359> can<02:27:17.640> copy<02:27:18.279> this<02:27:18.520> entire<02:27:18.960> link 02:27:19.510 --> 02:27:19.520 align:start position:0% bar and we can copy this entire link 02:27:19.520 --> 02:27:21.910 align:start position:0% bar and we can copy this entire link right<02:27:19.760> here<02:27:20.439> and<02:27:20.760> paste<02:27:21.000> it<02:27:21.160> in<02:27:21.279> the<02:27:21.439> left<02:27:21.720> side 02:27:21.910 --> 02:27:21.920 align:start position:0% right here and paste it in the left side 02:27:21.920 --> 02:27:24.910 align:start position:0% right here and paste it in the left side bar<02:27:22.720> we<02:27:22.840> of<02:27:22.960> course<02:27:23.160> need<02:27:23.319> to<02:27:23.520> import<02:27:24.040> Link<02:27:24.800> at 02:27:24.910 --> 02:27:24.920 align:start position:0% bar we of course need to import Link at 02:27:24.920 --> 02:27:27.469 align:start position:0% bar we of course need to import Link at the<02:27:25.120> top<02:27:25.520> from<02:27:25.760> react<02:27:26.120> router<02:27:26.439> Dom<02:27:27.080> so<02:27:27.240> we<02:27:27.359> can 02:27:27.469 --> 02:27:27.479 align:start position:0% the top from react router Dom so we can 02:27:27.479 --> 02:27:31.429 align:start position:0% the top from react router Dom so we can say<02:27:28.160> link<02:27:29.160> and<02:27:29.319> that's<02:27:29.520> coming<02:27:29.800> from<02:27:30.080> react 02:27:31.429 --> 02:27:31.439 align:start position:0% say link and that's coming from react 02:27:31.439 --> 02:27:32.990 align:start position:0% say link and that's coming from react router 02:27:32.990 --> 02:27:33.000 align:start position:0% router 02:27:33.000 --> 02:27:36.269 align:start position:0% router Dom<02:27:34.000> if<02:27:34.120> we<02:27:34.279> save<02:27:34.520> it<02:27:35.279> it's<02:27:35.479> looking<02:27:35.840> good<02:27:36.160> but 02:27:36.269 --> 02:27:36.279 align:start position:0% Dom if we save it it's looking good but 02:27:36.279 --> 02:27:39.269 align:start position:0% Dom if we save it it's looking good but we<02:27:36.399> can<02:27:36.560> modify<02:27:37.000> the<02:27:37.160> width<02:27:37.600> to<02:27:37.920> 170<02:27:38.920> and<02:27:39.080> the 02:27:39.269 --> 02:27:39.279 align:start position:0% we can modify the width to 170 and the 02:27:39.279 --> 02:27:41.030 align:start position:0% we can modify the width to 170 and the height<02:27:39.560> to 02:27:41.030 --> 02:27:41.040 align:start position:0% height to 02:27:41.040 --> 02:27:43.550 align:start position:0% height to 36<02:27:42.040> there<02:27:42.200> we<02:27:42.359> go<02:27:42.640> that<02:27:42.800> looks<02:27:43.000> a<02:27:43.160> bit<02:27:43.319> better 02:27:43.550 --> 02:27:43.560 align:start position:0% 36 there we go that looks a bit better 02:27:43.560 --> 02:27:46.750 align:start position:0% 36 there we go that looks a bit better for<02:27:43.800> the<02:27:44.279> sidebar<02:27:45.279> right<02:27:45.520> below<02:27:45.880> it<02:27:46.279> we<02:27:46.399> can 02:27:46.750 --> 02:27:46.760 align:start position:0% for the sidebar right below it we can 02:27:46.760 --> 02:27:48.990 align:start position:0% for the sidebar right below it we can show<02:27:47.040> our<02:27:47.279> link<02:27:47.520> to<02:27:47.680> the<02:27:47.880> profile 02:27:48.990 --> 02:27:49.000 align:start position:0% show our link to the profile 02:27:49.000 --> 02:27:52.910 align:start position:0% show our link to the profile page<02:27:50.000> so<02:27:50.359> let's<02:27:50.600> go<02:27:50.840> below<02:27:51.200> the<02:27:51.359> link<02:27:52.359> and<02:27:52.560> then 02:27:52.910 --> 02:27:52.920 align:start position:0% page so let's go below the link and then 02:27:52.920 --> 02:27:55.750 align:start position:0% page so let's go below the link and then create<02:27:53.319> another<02:27:53.880> link<02:27:54.880> this<02:27:55.080> link<02:27:55.439> is<02:27:55.600> going 02:27:55.750 --> 02:27:55.760 align:start position:0% create another link this link is going 02:27:55.760 --> 02:27:58.830 align:start position:0% create another link this link is going to<02:27:56.000> point<02:27:56.479> to<02:27:57.160> forward<02:27:57.640> slash<02:27:58.399> and<02:27:58.560> it's<02:27:58.720> going 02:27:58.830 --> 02:27:58.840 align:start position:0% to point to forward slash and it's going 02:27:58.840 --> 02:28:01.150 align:start position:0% to point to forward slash and it's going to<02:27:58.960> be<02:27:59.120> as<02:27:59.319> before<02:28:00.080> a<02:28:00.319> dynamic<02:28:00.760> link<02:28:01.000> to 02:28:01.150 --> 02:28:01.160 align:start position:0% to be as before a dynamic link to 02:28:01.160 --> 02:28:04.190 align:start position:0% to be as before a dynamic link to forward<02:28:01.520> SL<02:28:02.040> profile<02:28:03.040> not<02:28:03.399> this<02:28:03.760> what<02:28:03.880> I<02:28:04.040> just 02:28:04.190 --> 02:28:04.200 align:start position:0% forward SL profile not this what I just 02:28:04.200 --> 02:28:07.389 align:start position:0% forward SL profile not this what I just typed<02:28:04.840> but<02:28:05.160> profile<02:28:05.800> and<02:28:05.920> then<02:28:06.120> forward<02:28:06.520> slash 02:28:07.389 --> 02:28:07.399 align:start position:0% typed but profile and then forward slash 02:28:07.399 --> 02:28:10.710 align:start position:0% typed but profile and then forward slash the<02:28:07.600> user<02:28:08.319> ID<02:28:09.040> right<02:28:09.920> and<02:28:10.080> we<02:28:10.200> already<02:28:10.439> know 02:28:10.710 --> 02:28:10.720 align:start position:0% the user ID right and we already know 02:28:10.720 --> 02:28:12.510 align:start position:0% the user ID right and we already know where<02:28:10.880> the<02:28:10.960> user<02:28:11.200> ID<02:28:11.439> is<02:28:11.600> coming<02:28:11.920> from<02:28:12.359> it's 02:28:12.510 --> 02:28:12.520 align:start position:0% where the user ID is coming from it's 02:28:12.520 --> 02:28:15.469 align:start position:0% where the user ID is coming from it's going<02:28:12.680> to<02:28:12.800> be<02:28:13.040> similar<02:28:13.720> as<02:28:13.960> with<02:28:14.080> the<02:28:14.319> top<02:28:14.640> bar 02:28:15.469 --> 02:28:15.479 align:start position:0% going to be similar as with the top bar 02:28:15.479 --> 02:28:18.030 align:start position:0% going to be similar as with the top bar so<02:28:15.840> here<02:28:16.160> we<02:28:16.279> can<02:28:16.399> IM<02:28:16.640> immediately<02:28:17.160> copy<02:28:17.880> what 02:28:18.030 --> 02:28:18.040 align:start position:0% so here we can IM immediately copy what 02:28:18.040 --> 02:28:20.710 align:start position:0% so here we can IM immediately copy what we<02:28:18.319> have<02:28:19.319> because<02:28:19.600> in<02:28:19.720> the<02:28:19.920> sidebar<02:28:20.520> we'll 02:28:20.710 --> 02:28:20.720 align:start position:0% we have because in the sidebar we'll 02:28:20.720 --> 02:28:22.389 align:start position:0% we have because in the sidebar we'll also<02:28:20.960> have<02:28:21.080> to<02:28:21.240> deal<02:28:21.439> with<02:28:21.560> the<02:28:21.720> logout 02:28:22.389 --> 02:28:22.399 align:start position:0% also have to deal with the logout 02:28:22.399 --> 02:28:25.590 align:start position:0% also have to deal with the logout functionality<02:28:23.399> so<02:28:23.720> we<02:28:23.880> might<02:28:24.120> as<02:28:24.279> well<02:28:24.680> copy 02:28:25.590 --> 02:28:25.600 align:start position:0% functionality so we might as well copy 02:28:25.600 --> 02:28:27.750 align:start position:0% functionality so we might as well copy most<02:28:25.880> of<02:28:26.040> the<02:28:26.160> things<02:28:26.439> we<02:28:26.600> have<02:28:26.880> here<02:28:27.319> on<02:28:27.520> the 02:28:27.750 --> 02:28:27.760 align:start position:0% most of the things we have here on the 02:28:27.760 --> 02:28:30.070 align:start position:0% most of the things we have here on the top<02:28:28.520> as<02:28:28.680> well<02:28:28.840> as<02:28:29.000> what<02:28:29.120> we<02:28:29.240> have<02:28:29.439> defined<02:28:29.960> in 02:28:30.070 --> 02:28:30.080 align:start position:0% top as well as what we have defined in 02:28:30.080 --> 02:28:32.710 align:start position:0% top as well as what we have defined in the<02:28:30.399> component<02:28:31.399> so<02:28:31.600> let's<02:28:31.840> copy<02:28:32.240> everything 02:28:32.710 --> 02:28:32.720 align:start position:0% the component so let's copy everything 02:28:32.720 --> 02:28:35.469 align:start position:0% the component so let's copy everything from<02:28:33.240> here<02:28:34.240> and<02:28:34.479> paste<02:28:34.760> it<02:28:34.920> in<02:28:35.080> the<02:28:35.240> left 02:28:35.469 --> 02:28:35.479 align:start position:0% from here and paste it in the left 02:28:35.479 --> 02:28:38.790 align:start position:0% from here and paste it in the left sidebar<02:28:36.240> on<02:28:36.520> top<02:28:37.479> just<02:28:37.800> replacing<02:28:38.399> the<02:28:38.560> name 02:28:38.790 --> 02:28:38.800 align:start position:0% sidebar on top just replacing the name 02:28:38.800 --> 02:28:41.990 align:start position:0% sidebar on top just replacing the name of<02:28:38.960> the<02:28:39.160> component<02:28:39.800> to<02:28:40.160> left<02:28:40.840> sidebar<02:28:41.840> there 02:28:41.990 --> 02:28:42.000 align:start position:0% of the component to left sidebar there 02:28:42.000 --> 02:28:44.389 align:start position:0% of the component to left sidebar there we<02:28:42.200> go<02:28:42.720> now<02:28:42.880> if<02:28:43.000> we<02:28:43.160> save<02:28:43.479> this<02:28:44.000> everything 02:28:44.389 --> 02:28:44.399 align:start position:0% we go now if we save this everything 02:28:44.399 --> 02:28:47.550 align:start position:0% we go now if we save this everything still<02:28:44.680> works<02:28:45.680> we<02:28:45.840> have<02:28:45.960> the<02:28:46.080> user<02:28:46.359> ID<02:28:46.680> D<02:28:47.240> we<02:28:47.359> can 02:28:47.550 --> 02:28:47.560 align:start position:0% still works we have the user ID D we can 02:28:47.560 --> 02:28:53.110 align:start position:0% still works we have the user ID D we can give<02:28:47.680> it<02:28:47.880> a<02:28:48.200> class<02:28:48.800> name<02:28:49.800> equal<02:28:50.319> to<02:28:51.520> flex 02:28:53.110 --> 02:28:53.120 align:start position:0% give it a class name equal to flex 02:28:53.120 --> 02:28:57.030 align:start position:0% give it a class name equal to flex g-3<02:28:54.120> and<02:28:54.479> items<02:28:55.000> Das<02:28:55.240> center<02:28:56.200> right<02:28:56.439> within<02:28:56.720> it 02:28:57.030 --> 02:28:57.040 align:start position:0% g-3 and items Das center right within it 02:28:57.040 --> 02:28:58.870 align:start position:0% g-3 and items Das center right within it we<02:28:57.160> can<02:28:57.279> show<02:28:57.560> an<02:28:57.760> image<02:28:58.319> that's<02:28:58.520> going<02:28:58.680> to 02:28:58.870 --> 02:28:58.880 align:start position:0% we can show an image that's going to 02:28:58.880 --> 02:29:04.510 align:start position:0% we can show an image that's going to have<02:28:59.080> a<02:28:59.279> source<02:28:59.960> equal<02:29:00.640> to<02:29:01.800> user.<02:29:02.800> image<02:29:03.160> URL 02:29:04.510 --> 02:29:04.520 align:start position:0% have a source equal to user. image URL 02:29:04.520 --> 02:29:12.630 align:start position:0% have a source equal to user. image URL or<02:29:05.520> SL<02:29:06.040> assets<02:29:07.040> SL<02:29:07.520> ions<02:29:08.520> SL<02:29:09.359> profile<02:29:10.200> Das 02:29:12.630 --> 02:29:12.640 align:start position:0% or SL assets SL ions SL profile Das 02:29:12.640 --> 02:29:14.790 align:start position:0% or SL assets SL ions SL profile Das placeholder.svg 02:29:14.790 --> 02:29:14.800 align:start position:0% placeholder.svg 02:29:14.800 --> 02:29:17.870 align:start position:0% placeholder.svg there<02:29:15.800> we<02:29:15.960> go<02:29:16.160> we<02:29:16.240> have<02:29:16.359> our<02:29:16.720> huge<02:29:17.160> the<02:29:17.279> real 02:29:17.870 --> 02:29:17.880 align:start position:0% there we go we have our huge the real 02:29:17.880 --> 02:29:20.990 align:start position:0% there we go we have our huge the real JSM<02:29:18.880> let's<02:29:19.080> give<02:29:19.200> it<02:29:19.279> an<02:29:19.439> ALT<02:29:19.760> tag<02:29:20.080> of 02:29:20.990 --> 02:29:21.000 align:start position:0% JSM let's give it an ALT tag of 02:29:21.000 --> 02:29:25.550 align:start position:0% JSM let's give it an ALT tag of profile<02:29:22.000> as<02:29:22.240> well<02:29:22.560> as<02:29:22.680> a<02:29:22.960> class<02:29:23.359> name<02:29:24.040> equal<02:29:24.319> to 02:29:25.550 --> 02:29:25.560 align:start position:0% profile as well as a class name equal to 02:29:25.560 --> 02:29:29.469 align:start position:0% profile as well as a class name equal to age-14<02:29:26.560> width<02:29:27.000> of<02:29:27.240> 14<02:29:27.800> as<02:29:28.000> well<02:29:28.640> and<02:29:28.840> rounded 02:29:29.469 --> 02:29:29.479 align:start position:0% age-14 width of 14 as well and rounded 02:29:29.479 --> 02:29:32.469 align:start position:0% age-14 width of 14 as well and rounded Das<02:29:30.040> full<02:29:31.040> now<02:29:31.279> next<02:29:31.520> to<02:29:31.720> this<02:29:32.040> we<02:29:32.160> also<02:29:32.359> want 02:29:32.469 --> 02:29:32.479 align:start position:0% Das full now next to this we also want 02:29:32.479 --> 02:29:34.230 align:start position:0% Das full now next to this we also want to<02:29:32.600> show<02:29:32.840> the<02:29:33.040> name<02:29:33.439> of<02:29:33.600> the<02:29:33.760> person<02:29:34.040> that's 02:29:34.230 --> 02:29:34.240 align:start position:0% to show the name of the person that's 02:29:34.240 --> 02:29:36.110 align:start position:0% to show the name of the person that's logged<02:29:34.600> in<02:29:35.000> because<02:29:35.240> we<02:29:35.359> have<02:29:35.479> a<02:29:35.640> bit<02:29:35.840> more 02:29:36.110 --> 02:29:36.120 align:start position:0% logged in because we have a bit more 02:29:36.120 --> 02:29:38.550 align:start position:0% logged in because we have a bit more space<02:29:36.439> than<02:29:36.560> on<02:29:36.800> mobile<02:29:37.720> so<02:29:37.920> let's<02:29:38.120> create<02:29:38.359> a 02:29:38.550 --> 02:29:38.560 align:start position:0% space than on mobile so let's create a 02:29:38.560 --> 02:29:41.830 align:start position:0% space than on mobile so let's create a div<02:29:39.560> that's<02:29:39.760> going<02:29:39.960> to<02:29:40.120> have<02:29:40.279> a<02:29:40.600> class<02:29:40.960> name 02:29:41.830 --> 02:29:41.840 align:start position:0% div that's going to have a class name 02:29:41.840 --> 02:29:45.910 align:start position:0% div that's going to have a class name equal<02:29:42.160> to<02:29:42.560> flex<02:29:43.920> flex-all<02:29:44.920> so<02:29:45.120> it<02:29:45.319> appears<02:29:45.720> one 02:29:45.910 --> 02:29:45.920 align:start position:0% equal to flex flex-all so it appears one 02:29:45.920 --> 02:29:47.469 align:start position:0% equal to flex flex-all so it appears one below<02:29:46.240> another 02:29:47.469 --> 02:29:47.479 align:start position:0% below another 02:29:47.479 --> 02:29:50.910 align:start position:0% below another and<02:29:47.760> here<02:29:48.200> we<02:29:48.319> can<02:29:48.479> do<02:29:48.600> a<02:29:48.760> P<02:29:49.520> tag<02:29:50.520> that's<02:29:50.720> going 02:29:50.910 --> 02:29:50.920 align:start position:0% and here we can do a P tag that's going 02:29:50.920 --> 02:29:57.190 align:start position:0% and here we can do a P tag that's going to<02:29:51.200> have<02:29:51.600> a<02:29:51.960> class<02:29:52.800> name<02:29:53.800> equal<02:29:54.120> to<02:29:55.120> body-<02:29:56.200> bold 02:29:57.190 --> 02:29:57.200 align:start position:0% to have a class name equal to body- bold 02:29:57.200 --> 02:30:01.150 align:start position:0% to have a class name equal to body- bold here<02:29:57.680> we<02:29:57.840> can<02:29:57.960> render<02:29:59.160> user.name<02:30:00.160> and<02:30:00.960> that's 02:30:01.150 --> 02:30:01.160 align:start position:0% here we can render user.name and that's 02:30:01.160 --> 02:30:03.950 align:start position:0% here we can render user.name and that's going<02:30:01.279> to<02:30:01.399> show<02:30:01.680> the<02:30:01.800> real<02:30:02.479> JSM<02:30:03.479> and<02:30:03.720> right 02:30:03.950 --> 02:30:03.960 align:start position:0% going to show the real JSM and right 02:30:03.960 --> 02:30:06.870 align:start position:0% going to show the real JSM and right below<02:30:04.960> we<02:30:05.080> can<02:30:05.240> render<02:30:05.600> another<02:30:05.880> P 02:30:06.870 --> 02:30:06.880 align:start position:0% below we can render another P 02:30:06.880 --> 02:30:10.030 align:start position:0% below we can render another P tag<02:30:07.880> that's<02:30:08.080> going<02:30:08.240> to<02:30:08.439> have<02:30:08.640> a<02:30:08.920> class<02:30:09.240> name 02:30:10.030 --> 02:30:10.040 align:start position:0% tag that's going to have a class name 02:30:10.040 --> 02:30:14.630 align:start position:0% tag that's going to have a class name equal<02:30:10.479> to<02:30:11.160> small-<02:30:12.200> regular<02:30:13.200> text- 02:30:14.630 --> 02:30:14.640 align:start position:0% equal to small- regular text- 02:30:14.640 --> 02:30:16.950 align:start position:0% equal to small- regular text- light-3<02:30:15.640> and<02:30:15.800> it's<02:30:15.960> going<02:30:16.120> to<02:30:16.200> say 02:30:16.950 --> 02:30:16.960 align:start position:0% light-3 and it's going to say 02:30:16.960 --> 02:30:21.110 align:start position:0% light-3 and it's going to say at<02:30:17.760> and<02:30:17.920> then<02:30:18.120> dynamically<02:30:18.920> user.<02:30:20.120> username 02:30:21.110 --> 02:30:21.120 align:start position:0% at and then dynamically user. username 02:30:21.120 --> 02:30:23.309 align:start position:0% at and then dynamically user. username if<02:30:21.279> we<02:30:21.439> save<02:30:21.680> it<02:30:22.439> now<02:30:22.600> we<02:30:22.720> can<02:30:22.840> see<02:30:23.040> this<02:30:23.160> is 02:30:23.309 --> 02:30:23.319 align:start position:0% if we save it now we can see this is 02:30:23.319 --> 02:30:24.990 align:start position:0% if we save it now we can see this is going<02:30:23.479> to<02:30:23.640> work<02:30:23.920> but<02:30:24.040> we<02:30:24.160> can<02:30:24.279> remove<02:30:24.840> the 02:30:24.990 --> 02:30:25.000 align:start position:0% going to work but we can remove the 02:30:25.000 --> 02:30:28.230 align:start position:0% going to work but we can remove the dollar<02:30:25.359> sign<02:30:25.920> there<02:30:26.080> we<02:30:26.479> go<02:30:27.479> how<02:30:27.680> cool<02:30:27.920> it<02:30:28.040> is 02:30:28.230 --> 02:30:28.240 align:start position:0% dollar sign there we go how cool it is 02:30:28.240 --> 02:30:30.429 align:start position:0% dollar sign there we go how cool it is that<02:30:28.399> we<02:30:28.479> can<02:30:28.680> immediately<02:30:29.359> extract<02:30:30.120> all<02:30:30.240> of 02:30:30.429 --> 02:30:30.439 align:start position:0% that we can immediately extract all of 02:30:30.439 --> 02:30:33.830 align:start position:0% that we can immediately extract all of this<02:30:30.560> user<02:30:30.960> information<02:30:32.080> directly<02:30:33.080> from<02:30:33.720> the 02:30:33.830 --> 02:30:33.840 align:start position:0% this user information directly from the 02:30:33.840 --> 02:30:36.110 align:start position:0% this user information directly from the user<02:30:34.399> context<02:30:35.399> that's<02:30:35.680> what<02:30:35.800> we've<02:30:35.960> been 02:30:36.110 --> 02:30:36.120 align:start position:0% user context that's what we've been 02:30:36.120 --> 02:30:38.150 align:start position:0% user context that's what we've been working<02:30:36.359> on<02:30:36.600> so<02:30:36.920> hard<02:30:37.279> while<02:30:37.520> creating<02:30:37.840> the 02:30:38.150 --> 02:30:38.160 align:start position:0% working on so hard while creating the 02:30:38.160 --> 02:30:40.510 align:start position:0% working on so hard while creating the authentication<02:30:39.160> so<02:30:39.399> now<02:30:39.640> we<02:30:39.760> can<02:30:39.920> simply<02:30:40.240> use 02:30:40.510 --> 02:30:40.520 align:start position:0% authentication so now we can simply use 02:30:40.520 --> 02:30:43.150 align:start position:0% authentication so now we can simply use it<02:30:41.200> now<02:30:41.439> going<02:30:41.720> below<02:30:42.240> we<02:30:42.319> want<02:30:42.439> to<02:30:42.560> render<02:30:42.960> the 02:30:43.150 --> 02:30:43.160 align:start position:0% it now going below we want to render the 02:30:43.160 --> 02:30:45.910 align:start position:0% it now going below we want to render the sidebar<02:30:43.640> links<02:30:44.399> so<02:30:44.600> let's<02:30:44.880> move<02:30:45.279> below<02:30:45.720> this 02:30:45.910 --> 02:30:45.920 align:start position:0% sidebar links so let's move below this 02:30:45.920 --> 02:30:46.950 align:start position:0% sidebar links so let's move below this link 02:30:46.950 --> 02:30:46.960 align:start position:0% link 02:30:46.960 --> 02:30:50.190 align:start position:0% link and<02:30:47.160> let's<02:30:47.359> create<02:30:47.720> a<02:30:47.920> new<02:30:48.319> UL<02:30:49.319> an<02:30:49.520> unordered 02:30:50.190 --> 02:30:50.200 align:start position:0% and let's create a new UL an unordered 02:30:50.200 --> 02:30:53.230 align:start position:0% and let's create a new UL an unordered list<02:30:51.080> that's<02:30:51.279> going<02:30:51.439> to<02:30:51.680> have<02:30:51.880> a<02:30:52.120> class<02:30:52.520> name 02:30:53.230 --> 02:30:53.240 align:start position:0% list that's going to have a class name 02:30:53.240 --> 02:30:55.590 align:start position:0% list that's going to have a class name equal<02:30:53.520> to<02:30:53.920> flex 02:30:55.590 --> 02:30:55.600 align:start position:0% equal to flex 02:30:55.600 --> 02:30:59.790 align:start position:0% equal to flex flex-all<02:30:56.600> and<02:30:56.880> a<02:30:57.120> gap<02:30:57.399> of<02:30:57.600> six<02:30:58.479> right<02:30:58.720> here<02:30:59.399> we 02:30:59.790 --> 02:30:59.800 align:start position:0% flex-all and a gap of six right here we 02:30:59.800 --> 02:31:02.389 align:start position:0% flex-all and a gap of six right here we might<02:31:00.040> as<02:31:00.240> well<02:31:00.600> render<02:31:01.080> all<02:31:01.359> the<02:31:01.479> nav<02:31:01.840> links 02:31:02.389 --> 02:31:02.399 align:start position:0% might as well render all the nav links 02:31:02.399 --> 02:31:05.469 align:start position:0% might as well render all the nav links one<02:31:02.560> by<02:31:02.760> one<02:31:03.160> by<02:31:03.279> saying<02:31:03.640> Link<02:31:04.279> Link<02:31:04.800> Link<02:31:05.359> and 02:31:05.469 --> 02:31:05.479 align:start position:0% one by one by saying Link Link Link and 02:31:05.479 --> 02:31:07.990 align:start position:0% one by one by saying Link Link Link and then<02:31:05.640> duplicate<02:31:06.120> this<02:31:06.359> many<02:31:06.600> many<02:31:06.960> times<02:31:07.880> of 02:31:07.990 --> 02:31:08.000 align:start position:0% then duplicate this many many times of 02:31:08.000 --> 02:31:10.230 align:start position:0% then duplicate this many many times of course<02:31:08.319> each<02:31:08.520> link<02:31:08.840> has<02:31:08.960> to<02:31:09.160> have<02:31:09.279> a<02:31:09.560> path<02:31:10.080> it 02:31:10.230 --> 02:31:10.240 align:start position:0% course each link has to have a path it 02:31:10.240 --> 02:31:12.710 align:start position:0% course each link has to have a path it has<02:31:10.399> to<02:31:10.600> have<02:31:10.720> some<02:31:11.000> content<02:31:11.960> so<02:31:12.359> it's<02:31:12.520> going 02:31:12.710 --> 02:31:12.720 align:start position:0% has to have some content so it's going 02:31:12.720 --> 02:31:15.790 align:start position:0% has to have some content so it's going to<02:31:13.120> expand<02:31:13.640> on<02:31:13.840> many<02:31:14.080> many<02:31:14.319> lines<02:31:14.760> right<02:31:14.960> here 02:31:15.790 --> 02:31:15.800 align:start position:0% to expand on many many lines right here 02:31:15.800 --> 02:31:18.150 align:start position:0% to expand on many many lines right here instead<02:31:16.120> of<02:31:16.520> that<02:31:16.920> what<02:31:17.040> we<02:31:17.240> try<02:31:17.439> to<02:31:17.600> do<02:31:17.920> as 02:31:18.150 --> 02:31:18.160 align:start position:0% instead of that what we try to do as 02:31:18.160 --> 02:31:21.030 align:start position:0% instead of that what we try to do as good<02:31:18.399> developers<02:31:19.000> being<02:31:19.279> more<02:31:19.760> structured<02:31:20.760> is 02:31:21.030 --> 02:31:21.040 align:start position:0% good developers being more structured is 02:31:21.040 --> 02:31:22.750 align:start position:0% good developers being more structured is we<02:31:21.120> can<02:31:21.359> create<02:31:21.760> something<02:31:22.080> known<02:31:22.439> as 02:31:22.750 --> 02:31:22.760 align:start position:0% we can create something known as 02:31:22.760 --> 02:31:26.070 align:start position:0% we can create something known as constants<02:31:23.640> file<02:31:24.600> that's<02:31:24.760> a<02:31:25.040> special<02:31:25.479> file<02:31:25.880> and 02:31:26.070 --> 02:31:26.080 align:start position:0% constants file that's a special file and 02:31:26.080 --> 02:31:28.950 align:start position:0% constants file that's a special file and folder<02:31:26.960> right<02:31:27.200> here<02:31:27.600> above<02:31:27.880> our<02:31:28.120> context 02:31:28.950 --> 02:31:28.960 align:start position:0% folder right here above our context 02:31:28.960 --> 02:31:31.110 align:start position:0% folder right here above our context still<02:31:29.319> within<02:31:29.560> the<02:31:29.760> source<02:31:30.319> so<02:31:30.560> create<02:31:30.800> a<02:31:30.960> new 02:31:31.110 --> 02:31:31.120 align:start position:0% still within the source so create a new 02:31:31.120 --> 02:31:32.830 align:start position:0% still within the source so create a new folder<02:31:31.560> called 02:31:32.830 --> 02:31:32.840 align:start position:0% folder called 02:31:32.840 --> 02:31:35.510 align:start position:0% folder called constants<02:31:33.840> and<02:31:33.960> then<02:31:34.120> create<02:31:34.359> a<02:31:34.560> new 02:31:35.510 --> 02:31:35.520 align:start position:0% constants and then create a new 02:31:35.520 --> 02:31:38.429 align:start position:0% constants and then create a new index.ts<02:31:36.520> right<02:31:36.800> within<02:31:37.040> it<02:31:37.720> here<02:31:38.080> you<02:31:38.200> can 02:31:38.429 --> 02:31:38.439 align:start position:0% index.ts right within it here you can 02:31:38.439 --> 02:31:41.630 align:start position:0% index.ts right within it here you can Define<02:31:38.960> some<02:31:39.240> sidebar<02:31:39.760> links<02:31:40.680> just<02:31:40.920> like<02:31:41.120> so 02:31:41.630 --> 02:31:41.640 align:start position:0% Define some sidebar links just like so 02:31:41.640 --> 02:31:43.230 align:start position:0% Define some sidebar links just like so it's<02:31:41.800> going<02:31:41.960> to<02:31:42.080> be<02:31:42.200> an<02:31:42.359> array<02:31:42.920> and<02:31:43.000> then<02:31:43.160> we 02:31:43.230 --> 02:31:43.240 align:start position:0% it's going to be an array and then we 02:31:43.240 --> 02:31:45.389 align:start position:0% it's going to be an array and then we can<02:31:43.399> say<02:31:43.760> home<02:31:44.479> anything<02:31:44.800> else<02:31:45.000> you<02:31:45.120> want<02:31:45.240> to 02:31:45.389 --> 02:31:45.399 align:start position:0% can say home anything else you want to 02:31:45.399 --> 02:31:48.590 align:start position:0% can say home anything else you want to say<02:31:45.800> you<02:31:45.920> can<02:31:46.080> add<02:31:46.720> here<02:31:47.720> since<02:31:48.040> this<02:31:48.160> is<02:31:48.319> not 02:31:48.590 --> 02:31:48.600 align:start position:0% say you can add here since this is not 02:31:48.600 --> 02:31:51.429 align:start position:0% say you can add here since this is not any<02:31:48.960> logic<02:31:49.560> but<02:31:49.760> rather<02:31:50.040> just<02:31:50.279> static<02:31:50.680> code 02:31:51.429 --> 02:31:51.439 align:start position:0% any logic but rather just static code 02:31:51.439 --> 02:31:53.389 align:start position:0% any logic but rather just static code what<02:31:51.600> we<02:31:51.720> can<02:31:51.880> do<02:31:52.319> is<02:31:52.680> in<02:31:52.800> the<02:31:52.960> description 02:31:53.389 --> 02:31:53.399 align:start position:0% what we can do is in the description 02:31:53.399 --> 02:31:55.830 align:start position:0% what we can do is in the description Down<02:31:53.640> Below<02:31:54.200> in<02:31:54.399> the<02:31:54.520> GitHub<02:31:54.880> gist<02:31:55.520> you<02:31:55.640> can 02:31:55.830 --> 02:31:55.840 align:start position:0% Down Below in the GitHub gist you can 02:31:55.840 --> 02:31:58.910 align:start position:0% Down Below in the GitHub gist you can find<02:31:56.120> the<02:31:56.319> complete<02:31:57.200> constants<02:31:57.920> index.ts 02:31:58.910 --> 02:31:58.920 align:start position:0% find the complete constants index.ts 02:31:58.920 --> 02:32:02.429 align:start position:0% find the complete constants index.ts file<02:31:59.680> so<02:32:00.000> copy<02:32:00.279> it<02:32:00.760> and<02:32:01.000> paste<02:32:01.240> it<02:32:01.479> here<02:32:02.319> you 02:32:02.429 --> 02:32:02.439 align:start position:0% file so copy it and paste it here you 02:32:02.439 --> 02:32:04.269 align:start position:0% file so copy it and paste it here you can<02:32:02.600> notice<02:32:03.000> that<02:32:03.160> this<02:32:03.279> is<02:32:03.479> mostly<02:32:03.920> Bottom 02:32:04.269 --> 02:32:04.279 align:start position:0% can notice that this is mostly Bottom 02:32:04.279 --> 02:32:08.510 align:start position:0% can notice that this is mostly Bottom bar<02:32:04.560> links<02:32:05.479> as<02:32:05.680> well<02:32:06.040> as<02:32:06.560> sidebar<02:32:07.240> links<02:32:08.240> so 02:32:08.510 --> 02:32:08.520 align:start position:0% bar links as well as sidebar links so 02:32:08.520 --> 02:32:11.349 align:start position:0% bar links as well as sidebar links so what<02:32:08.720> this<02:32:08.880> allows<02:32:09.200> us<02:32:09.359> to<02:32:09.479> do<02:32:10.240> is<02:32:10.560> just<02:32:10.840> jump 02:32:11.349 --> 02:32:11.359 align:start position:0% what this allows us to do is just jump 02:32:11.359 --> 02:32:14.990 align:start position:0% what this allows us to do is just jump right<02:32:11.600> into<02:32:12.080> here<02:32:13.080> and<02:32:13.840> open<02:32:14.120> up<02:32:14.279> a<02:32:14.439> dynamic 02:32:14.990 --> 02:32:15.000 align:start position:0% right into here and open up a dynamic 02:32:15.000 --> 02:32:19.510 align:start position:0% right into here and open up a dynamic block<02:32:15.240> of<02:32:15.439> code<02:32:16.319> and<02:32:16.439> say<02:32:16.760> sidebar<02:32:17.800> links.<02:32:18.800> map 02:32:19.510 --> 02:32:19.520 align:start position:0% block of code and say sidebar links. map 02:32:19.520 --> 02:32:22.510 align:start position:0% block of code and say sidebar links. map where<02:32:19.720> we<02:32:19.880> get<02:32:20.279> each<02:32:20.600> individual<02:32:21.359> link<02:32:22.359> which 02:32:22.510 --> 02:32:22.520 align:start position:0% where we get each individual link which 02:32:22.520 --> 02:32:25.910 align:start position:0% where we get each individual link which is<02:32:22.640> of<02:32:22.800> a<02:32:23.000> type<02:32:23.359> I<02:32:24.040> nav<02:32:24.439> link<02:32:25.040> interface<02:32:25.600> nav 02:32:25.910 --> 02:32:25.920 align:start position:0% is of a type I nav link interface nav 02:32:25.920 --> 02:32:29.469 align:start position:0% is of a type I nav link interface nav link<02:32:26.439> which<02:32:26.600> we<02:32:26.720> can<02:32:26.960> import<02:32:27.399> from<02:32:27.640> at/<02:32:28.600> types 02:32:29.469 --> 02:32:29.479 align:start position:0% link which we can import from at/ types 02:32:29.479 --> 02:32:31.510 align:start position:0% link which we can import from at/ types and<02:32:29.600> then<02:32:29.720> you<02:32:29.840> can<02:32:30.000> open<02:32:30.240> up<02:32:30.439> a<02:32:30.640> new<02:32:30.880> function 02:32:31.510 --> 02:32:31.520 align:start position:0% and then you can open up a new function 02:32:31.520 --> 02:32:35.309 align:start position:0% and then you can open up a new function block<02:32:32.520> also<02:32:33.080> import<02:32:33.520> sidebar<02:32:33.960> links<02:32:34.479> from<02:32:34.720> ad 02:32:35.309 --> 02:32:35.319 align:start position:0% block also import sidebar links from ad 02:32:35.319 --> 02:32:38.910 align:start position:0% block also import sidebar links from ad SLC<02:32:35.680> constants<02:32:36.680> here<02:32:37.040> we<02:32:37.160> can<02:32:37.399> simply<02:32:38.080> return 02:32:38.910 --> 02:32:38.920 align:start position:0% SLC constants here we can simply return 02:32:38.920 --> 02:32:42.389 align:start position:0% SLC constants here we can simply return something<02:32:39.240> known<02:32:39.600> as<02:32:39.760> a<02:32:39.960> nav<02:32:40.720> link<02:32:41.720> and<02:32:41.880> a<02:32:42.080> nav 02:32:42.389 --> 02:32:42.399 align:start position:0% something known as a nav link and a nav 02:32:42.399 --> 02:32:44.870 align:start position:0% something known as a nav link and a nav link<02:32:42.640> is<02:32:42.760> a<02:32:42.960> component<02:32:43.680> coming<02:32:44.000> from<02:32:44.359> react 02:32:44.870 --> 02:32:44.880 align:start position:0% link is a component coming from react 02:32:44.880 --> 02:32:47.590 align:start position:0% link is a component coming from react router<02:32:45.279> Dom<02:32:45.800> so<02:32:46.040> right<02:32:46.279> right<02:32:46.479> here<02:32:46.680> on<02:32:47.000> top<02:32:47.479> we 02:32:47.590 --> 02:32:47.600 align:start position:0% router Dom so right right here on top we 02:32:47.600 --> 02:32:52.510 align:start position:0% router Dom so right right here on top we can<02:32:47.760> import<02:32:48.160> link<02:32:49.160> as<02:32:49.319> well<02:32:49.600> as<02:32:49.800> a<02:32:50.279> nav<02:32:51.520> link 02:32:52.510 --> 02:32:52.520 align:start position:0% can import link as well as a nav link 02:32:52.520 --> 02:32:55.910 align:start position:0% can import link as well as a nav link there<02:32:52.680> we<02:32:52.880> go<02:32:53.640> so<02:32:53.840> now<02:32:54.200> going<02:32:54.520> here<02:32:55.240> each<02:32:55.520> nav 02:32:55.910 --> 02:32:55.920 align:start position:0% there we go so now going here each nav 02:32:55.920 --> 02:32:58.990 align:start position:0% there we go so now going here each nav link<02:32:56.479> has<02:32:56.640> to<02:32:56.920> have<02:32:57.160> a<02:32:57.359> two<02:32:57.800> property<02:32:58.520> so<02:32:58.800> where 02:32:58.990 --> 02:32:59.000 align:start position:0% link has to have a two property so where 02:32:59.000 --> 02:33:01.670 align:start position:0% link has to have a two property so where are<02:32:59.160> we<02:32:59.359> going<02:32:59.680> to<02:33:00.680> in<02:33:00.920> this<02:33:01.120> case<02:33:01.319> we're<02:33:01.520> going 02:33:01.670 --> 02:33:01.680 align:start position:0% are we going to in this case we're going 02:33:01.680 --> 02:33:04.429 align:start position:0% are we going to in this case we're going to<02:33:01.840> link<02:33:02.240> that<02:33:02.600> route<02:33:03.319> because<02:33:03.640> each<02:33:03.920> sidebar 02:33:04.429 --> 02:33:04.439 align:start position:0% to link that route because each sidebar 02:33:04.439 --> 02:33:08.469 align:start position:0% to link that route because each sidebar link<02:33:05.160> has<02:33:05.319> a<02:33:05.560> route<02:33:06.319> an<02:33:06.479> image<02:33:06.760> URL<02:33:07.640> and<02:33:07.880> a 02:33:08.469 --> 02:33:08.479 align:start position:0% link has a route an image URL and a 02:33:08.479 --> 02:33:11.790 align:start position:0% link has a route an image URL and a label<02:33:09.479> so<02:33:09.800> now<02:33:10.479> we<02:33:10.600> can<02:33:10.760> also<02:33:11.000> give<02:33:11.120> it<02:33:11.240> a<02:33:11.439> class 02:33:11.790 --> 02:33:11.800 align:start position:0% label so now we can also give it a class 02:33:11.800 --> 02:33:17.030 align:start position:0% label so now we can also give it a class name<02:33:12.600> equal<02:33:12.920> to<02:33:13.200> left<02:33:14.240> sidebar<02:33:15.240> daslink 02:33:17.030 --> 02:33:17.040 align:start position:0% name equal to left sidebar daslink 02:33:17.040 --> 02:33:18.710 align:start position:0% name equal to left sidebar daslink and<02:33:17.200> as<02:33:17.319> a<02:33:17.439> matter<02:33:17.680> of<02:33:17.920> fact<02:33:18.240> I<02:33:18.359> think<02:33:18.479> we<02:33:18.600> need 02:33:18.710 --> 02:33:18.720 align:start position:0% and as a matter of fact I think we need 02:33:18.720 --> 02:33:22.230 align:start position:0% and as a matter of fact I think we need to<02:33:19.000> wrap<02:33:19.640> this<02:33:20.040> nav<02:33:20.439> link<02:33:20.840> with<02:33:21.000> an<02:33:21.200> Li<02:33:22.000> because 02:33:22.230 --> 02:33:22.240 align:start position:0% to wrap this nav link with an Li because 02:33:22.240 --> 02:33:25.150 align:start position:0% to wrap this nav link with an Li because An<02:33:22.399> Li<02:33:22.800> is<02:33:22.920> a<02:33:23.160> list<02:33:23.560> item<02:33:23.880> that<02:33:24.040> has<02:33:24.319> to<02:33:24.520> go 02:33:25.150 --> 02:33:25.160 align:start position:0% An Li is a list item that has to go 02:33:25.160 --> 02:33:27.950 align:start position:0% An Li is a list item that has to go between<02:33:25.600> the<02:33:25.960> uls<02:33:26.960> so<02:33:27.120> you<02:33:27.200> can<02:33:27.359> put<02:33:27.520> the<02:33:27.680> nav 02:33:27.950 --> 02:33:27.960 align:start position:0% between the uls so you can put the nav 02:33:27.960 --> 02:33:29.790 align:start position:0% between the uls so you can put the nav link<02:33:28.319> between<02:33:29.040> the 02:33:29.790 --> 02:33:29.800 align:start position:0% link between the 02:33:29.800 --> 02:33:32.389 align:start position:0% link between the Li<02:33:30.800> and<02:33:31.000> then<02:33:31.240> the<02:33:31.439> class<02:33:31.760> name<02:33:31.920> of<02:33:32.200> left 02:33:32.389 --> 02:33:32.399 align:start position:0% Li and then the class name of left 02:33:32.399 --> 02:33:35.110 align:start position:0% Li and then the class name of left sidebar<02:33:32.840> link<02:33:33.359> is<02:33:33.560> actually<02:33:33.880> going<02:33:34.040> to<02:33:34.240> go<02:33:34.520> to 02:33:35.110 --> 02:33:35.120 align:start position:0% sidebar link is actually going to go to 02:33:35.120 --> 02:33:37.429 align:start position:0% sidebar link is actually going to go to the<02:33:35.279> LI<02:33:36.000> since<02:33:36.200> we're<02:33:36.399> mapping<02:33:36.800> over<02:33:37.040> it<02:33:37.279> we 02:33:37.429 --> 02:33:37.439 align:start position:0% the LI since we're mapping over it we 02:33:37.439 --> 02:33:39.630 align:start position:0% the LI since we're mapping over it we also<02:33:37.640> have<02:33:37.760> to<02:33:37.880> give<02:33:38.000> it<02:33:38.120> a<02:33:38.279> key<02:33:38.960> equal<02:33:39.319> to 02:33:39.630 --> 02:33:39.640 align:start position:0% also have to give it a key equal to 02:33:39.640 --> 02:33:42.790 align:start position:0% also have to give it a key equal to link.<02:33:40.319> label<02:33:41.080> now<02:33:41.640> our<02:33:41.840> nav<02:33:42.200> link<02:33:42.399> is<02:33:42.520> going<02:33:42.680> to 02:33:42.790 --> 02:33:42.800 align:start position:0% link. label now our nav link is going to 02:33:42.800 --> 02:33:45.070 align:start position:0% link. label now our nav link is going to say<02:33:43.120> something<02:33:43.600> right<02:33:44.000> and<02:33:44.240> that<02:33:44.479> something 02:33:45.070 --> 02:33:45.080 align:start position:0% say something right and that something 02:33:45.080 --> 02:33:46.670 align:start position:0% say something right and that something is<02:33:45.439> link 02:33:46.670 --> 02:33:46.680 align:start position:0% is link 02:33:46.680 --> 02:33:49.510 align:start position:0% is link label<02:33:47.640> so<02:33:47.800> if<02:33:47.880> we<02:33:48.040> save<02:33:48.319> it<02:33:48.680> now<02:33:48.880> you<02:33:49.000> can<02:33:49.120> see 02:33:49.510 --> 02:33:49.520 align:start position:0% label so if we save it now you can see 02:33:49.520 --> 02:33:51.990 align:start position:0% label so if we save it now you can see all<02:33:49.800> of<02:33:50.040> these<02:33:50.319> different<02:33:50.800> labels<02:33:51.800> let's 02:33:51.990 --> 02:33:52.000 align:start position:0% all of these different labels let's 02:33:52.000 --> 02:33:54.510 align:start position:0% all of these different labels let's style<02:33:52.319> it<02:33:52.439> a<02:33:52.560> bit<02:33:52.760> further<02:33:53.479> by<02:33:53.720> giving<02:33:53.960> it<02:33:54.240> a 02:33:54.510 --> 02:33:54.520 align:start position:0% style it a bit further by giving it a 02:33:54.520 --> 02:33:59.830 align:start position:0% style it a bit further by giving it a class<02:33:54.840> name<02:33:55.479> equal<02:33:56.200> to<02:33:57.399> flex<02:33:58.399> gap<02:33:58.680> of<02:33:58.880> four 02:33:59.830 --> 02:33:59.840 align:start position:0% class name equal to flex gap of four 02:33:59.840 --> 02:34:04.070 align:start position:0% class name equal to flex gap of four items<02:34:00.319> Das<02:34:00.560> Center<02:34:01.479> and<02:34:01.920> padding<02:34:02.399> off<02:34:03.080> four 02:34:04.070 --> 02:34:04.080 align:start position:0% items Das Center and padding off four 02:34:04.080 --> 02:34:05.990 align:start position:0% items Das Center and padding off four there<02:34:04.240> we<02:34:04.439> go<02:34:04.840> this<02:34:05.000> gives<02:34:05.200> us<02:34:05.479> much<02:34:05.680> more 02:34:05.990 --> 02:34:06.000 align:start position:0% there we go this gives us much more 02:34:06.000 --> 02:34:08.830 align:start position:0% there we go this gives us much more space<02:34:06.920> we<02:34:07.040> can<02:34:07.240> also<02:34:07.520> render<02:34:07.880> an<02:34:08.120> image<02:34:08.640> right 02:34:08.830 --> 02:34:08.840 align:start position:0% space we can also render an image right 02:34:08.840 --> 02:34:11.870 align:start position:0% space we can also render an image right here<02:34:09.040> next<02:34:09.200> to<02:34:09.319> the<02:34:09.479> label<02:34:10.200> by<02:34:10.319> saying 02:34:11.870 --> 02:34:11.880 align:start position:0% here next to the label by saying 02:34:11.880 --> 02:34:16.870 align:start position:0% here next to the label by saying IMG<02:34:12.880> we<02:34:13.000> can<02:34:13.160> give<02:34:13.279> it<02:34:13.439> a<02:34:14.040> source<02:34:15.040> equal<02:34:15.359> to 02:34:16.870 --> 02:34:16.880 align:start position:0% IMG we can give it a source equal to 02:34:16.880 --> 02:34:22.110 align:start position:0% IMG we can give it a source equal to link.<02:34:17.880> image<02:34:18.399> URL<02:34:19.399> alt<02:34:19.960> is<02:34:20.120> equal<02:34:20.359> to<02:34:20.600> link. 02:34:22.110 --> 02:34:22.120 align:start position:0% link. image URL alt is equal to link. 02:34:22.120 --> 02:34:24.870 align:start position:0% link. image URL alt is equal to link. label<02:34:23.120> and<02:34:23.279> we<02:34:23.399> can<02:34:23.560> give<02:34:23.640> it<02:34:23.760> a<02:34:23.880> class<02:34:24.319> name 02:34:24.870 --> 02:34:24.880 align:start position:0% label and we can give it a class name 02:34:24.880 --> 02:34:27.950 align:start position:0% label and we can give it a class name equal<02:34:25.439> to<02:34:26.439> group- 02:34:27.950 --> 02:34:27.960 align:start position:0% equal to group- 02:34:27.960 --> 02:34:31.550 align:start position:0% equal to group- hover<02:34:28.960> invert<02:34:29.800> D<02:34:30.319> white<02:34:30.880> so<02:34:31.080> this<02:34:31.160> is<02:34:31.319> just<02:34:31.439> to 02:34:31.550 --> 02:34:31.560 align:start position:0% hover invert D white so this is just to 02:34:31.560 --> 02:34:34.710 align:start position:0% hover invert D white so this is just to make<02:34:31.760> the<02:34:31.880> color<02:34:32.840> work<02:34:33.840> and<02:34:34.040> there<02:34:34.160> we<02:34:34.319> go<02:34:34.560> so 02:34:34.710 --> 02:34:34.720 align:start position:0% make the color work and there we go so 02:34:34.720 --> 02:34:36.630 align:start position:0% make the color work and there we go so now<02:34:34.840> if<02:34:34.920> you<02:34:35.040> hover<02:34:35.359> over<02:34:35.600> it<02:34:35.960> you<02:34:36.120> cannot<02:34:36.439> see 02:34:36.630 --> 02:34:36.640 align:start position:0% now if you hover over it you cannot see 02:34:36.640 --> 02:34:39.269 align:start position:0% now if you hover over it you cannot see it<02:34:36.960> we're<02:34:37.200> about<02:34:37.359> to<02:34:37.560> fix<02:34:37.920> that<02:34:38.680> but<02:34:38.960> this<02:34:39.080> is 02:34:39.269 --> 02:34:39.279 align:start position:0% it we're about to fix that but this is 02:34:39.279 --> 02:34:41.590 align:start position:0% it we're about to fix that but this is looking<02:34:39.640> good<02:34:40.359> but<02:34:40.520> on<02:34:40.680> the<02:34:40.880> final<02:34:41.200> version<02:34:41.479> of 02:34:41.590 --> 02:34:41.600 align:start position:0% looking good but on the final version of 02:34:41.600 --> 02:34:43.790 align:start position:0% looking good but on the final version of our<02:34:41.800> application<02:34:42.800> you<02:34:42.920> can<02:34:43.080> see<02:34:43.279> that<02:34:43.439> we<02:34:43.600> have 02:34:43.790 --> 02:34:43.800 align:start position:0% our application you can see that we have 02:34:43.800 --> 02:34:47.110 align:start position:0% our application you can see that we have a<02:34:44.040> currently<02:34:44.760> active<02:34:45.439> link<02:34:46.439> so<02:34:46.640> we<02:34:46.760> can<02:34:46.920> do 02:34:47.110 --> 02:34:47.120 align:start position:0% a currently active link so we can do 02:34:47.120 --> 02:34:49.510 align:start position:0% a currently active link so we can do that<02:34:47.399> here<02:34:47.680> as<02:34:47.840> well<02:34:48.600> but<02:34:48.800> how<02:34:48.920> do<02:34:49.080> we<02:34:49.240> figure 02:34:49.510 --> 02:34:49.520 align:start position:0% that here as well but how do we figure 02:34:49.520 --> 02:34:53.150 align:start position:0% that here as well but how do we figure out<02:34:49.960> on<02:34:50.279> which<02:34:50.560> link<02:34:50.920> are<02:34:51.160> we<02:34:51.680> on<02:34:52.680> well<02:34:52.880> we<02:34:53.040> have 02:34:53.150 --> 02:34:53.160 align:start position:0% out on which link are we on well we have 02:34:53.160 --> 02:34:56.510 align:start position:0% out on which link are we on well we have to<02:34:53.319> use<02:34:53.680> something<02:34:54.040> known<02:34:54.359> as<02:34:54.479> a<02:34:54.760> use<02:34:55.520> location 02:34:56.510 --> 02:34:56.520 align:start position:0% to use something known as a use location 02:34:56.520 --> 02:34:59.190 align:start position:0% to use something known as a use location so<02:34:56.880> right<02:34:57.080> here<02:34:57.359> from<02:34:57.640> react<02:34:58.000> R<02:34:58.359> Dom<02:34:58.880> we<02:34:58.960> can 02:34:59.190 --> 02:34:59.200 align:start position:0% so right here from react R Dom we can 02:34:59.200 --> 02:35:03.150 align:start position:0% so right here from react R Dom we can also<02:34:59.600> import<02:35:00.200> use<02:35:00.760> location<02:35:01.680> which<02:35:01.800> is<02:35:01.920> a<02:35:02.200> hook 02:35:03.150 --> 02:35:03.160 align:start position:0% also import use location which is a hook 02:35:03.160 --> 02:35:05.349 align:start position:0% also import use location which is a hook and<02:35:03.319> then<02:35:03.439> we<02:35:03.560> can<02:35:03.760> declare<02:35:04.200> it<02:35:04.800> right<02:35:05.000> here<02:35:05.200> at 02:35:05.349 --> 02:35:05.359 align:start position:0% and then we can declare it right here at 02:35:05.359 --> 02:35:09.710 align:start position:0% and then we can declare it right here at the<02:35:05.600> top<02:35:06.200> by<02:35:06.399> saying<02:35:07.080> const<02:35:08.080> path 02:35:09.710 --> 02:35:09.720 align:start position:0% the top by saying const path 02:35:09.720 --> 02:35:14.070 align:start position:0% the top by saying const path name<02:35:10.720> is<02:35:11.000> equal<02:35:11.319> to<02:35:12.040> use 02:35:14.070 --> 02:35:14.080 align:start position:0% name is equal to use 02:35:14.080 --> 02:35:16.550 align:start position:0% name is equal to use location<02:35:15.080> and<02:35:15.240> now<02:35:15.439> we<02:35:15.520> can<02:35:15.680> use<02:35:16.080> that<02:35:16.319> path 02:35:16.550 --> 02:35:16.560 align:start position:0% location and now we can use that path 02:35:16.560 --> 02:35:19.990 align:start position:0% location and now we can use that path name<02:35:17.080> right<02:35:17.319> here<02:35:17.800> in<02:35:17.960> the<02:35:18.120> sidebar<02:35:18.800> links<02:35:19.800> to 02:35:19.990 --> 02:35:20.000 align:start position:0% name right here in the sidebar links to 02:35:20.000 --> 02:35:22.190 align:start position:0% name right here in the sidebar links to create<02:35:20.240> a<02:35:20.399> Boolean<02:35:20.960> variable<02:35:21.520> called<02:35:21.880> is 02:35:22.190 --> 02:35:22.200 align:start position:0% create a Boolean variable called is 02:35:22.200 --> 02:35:26.469 align:start position:0% create a Boolean variable called is active<02:35:22.960> so<02:35:23.240> const<02:35:23.800> is<02:35:24.240> active<02:35:25.160> is<02:35:25.399> equal<02:35:25.680> to 02:35:26.469 --> 02:35:26.479 align:start position:0% active so const is active is equal to 02:35:26.479 --> 02:35:28.910 align:start position:0% active so const is active is equal to and<02:35:26.720> it's<02:35:27.080> active<02:35:27.720> if<02:35:27.880> the<02:35:28.120> path<02:35:28.359> name<02:35:28.680> is 02:35:28.910 --> 02:35:28.920 align:start position:0% and it's active if the path name is 02:35:28.920 --> 02:35:33.030 align:start position:0% and it's active if the path name is equal<02:35:29.240> to<02:35:29.760> link.<02:35:30.840> route<02:35:31.840> based<02:35:32.439> off<02:35:32.680> of<02:35:32.840> this 02:35:33.030 --> 02:35:33.040 align:start position:0% equal to link. route based off of this 02:35:33.040 --> 02:35:35.429 align:start position:0% equal to link. route based off of this is<02:35:33.359> active<02:35:33.680> Boolean<02:35:34.560> we<02:35:34.680> can<02:35:34.880> also<02:35:35.160> change 02:35:35.429 --> 02:35:35.439 align:start position:0% is active Boolean we can also change 02:35:35.439 --> 02:35:38.790 align:start position:0% is active Boolean we can also change some<02:35:35.680> Styles<02:35:36.680> so<02:35:36.880> in<02:35:37.080> this<02:35:37.279> Li<02:35:38.120> we<02:35:38.240> can<02:35:38.399> make<02:35:38.520> it 02:35:38.790 --> 02:35:38.800 align:start position:0% some Styles so in this Li we can make it 02:35:38.800 --> 02:35:41.550 align:start position:0% some Styles so in this Li we can make it Dynamic<02:35:39.800> by<02:35:40.000> turning<02:35:40.279> it<02:35:40.479> into<02:35:40.880> a<02:35:41.080> template 02:35:41.550 --> 02:35:41.560 align:start position:0% Dynamic by turning it into a template 02:35:41.560 --> 02:35:46.590 align:start position:0% Dynamic by turning it into a template string<02:35:42.399> like<02:35:42.840> so<02:35:43.840> and<02:35:44.080> then<02:35:44.520> we<02:35:44.640> can<02:35:44.960> say 02:35:46.590 --> 02:35:46.600 align:start position:0% string like so and then we can say 02:35:46.600 --> 02:35:48.230 align:start position:0% string like so and then we can say if<02:35:47.319> is 02:35:48.230 --> 02:35:48.240 align:start position:0% if is 02:35:48.240 --> 02:35:52.309 align:start position:0% if is active<02:35:49.240> then<02:35:49.800> also<02:35:50.120> render<02:35:50.560> the<02:35:50.720> BG<02:35:51.240> primary 02:35:52.309 --> 02:35:52.319 align:start position:0% active then also render the BG primary 02:35:52.319 --> 02:35:54.830 align:start position:0% active then also render the BG primary 500<02:35:53.319> so<02:35:53.439> if<02:35:53.560> we<02:35:53.680> save<02:35:53.880> it<02:35:54.279> you<02:35:54.399> can<02:35:54.520> see<02:35:54.680> the 02:35:54.830 --> 02:35:54.840 align:start position:0% 500 so if we save it you can see the 02:35:54.840 --> 02:35:57.389 align:start position:0% 500 so if we save it you can see the color<02:35:55.240> changes<02:35:56.240> now<02:35:56.439> the<02:35:56.600> last<02:35:56.840> thing<02:35:57.000> is<02:35:57.160> also 02:35:57.389 --> 02:35:57.399 align:start position:0% color changes now the last thing is also 02:35:57.399 --> 02:36:00.070 align:start position:0% color changes now the last thing is also to<02:35:57.560> change<02:35:58.000> the<02:35:58.160> color<02:35:58.399> of<02:35:58.560> the<02:35:58.720> icon<02:35:59.640> so<02:35:59.840> let's 02:36:00.070 --> 02:36:00.080 align:start position:0% to change the color of the icon so let's 02:36:00.080 --> 02:36:02.389 align:start position:0% to change the color of the icon so let's change<02:36:00.359> the<02:36:00.560> image<02:36:01.080> to<02:36:01.279> be<02:36:01.479> also<02:36:01.880> dyamic 02:36:02.389 --> 02:36:02.399 align:start position:0% change the image to be also dyamic 02:36:02.399 --> 02:36:05.910 align:start position:0% change the image to be also dyamic template<02:36:02.920> string<02:36:03.920> and<02:36:04.200> if<02:36:04.319> it<02:36:04.479> is 02:36:05.910 --> 02:36:05.920 align:start position:0% template string and if it is 02:36:05.920 --> 02:36:10.269 align:start position:0% template string and if it is active<02:36:06.920> then<02:36:07.319> we<02:36:07.439> can<02:36:07.640> call<02:36:08.080> the<02:36:08.319> invert<02:36:09.279> white 02:36:10.269 --> 02:36:10.279 align:start position:0% active then we can call the invert white 02:36:10.279 --> 02:36:13.469 align:start position:0% active then we can call the invert white so<02:36:10.399> if<02:36:10.520> I<02:36:10.680> now<02:36:10.880> save<02:36:11.640> it<02:36:12.640> we<02:36:12.800> have<02:36:12.920> to<02:36:13.080> properly 02:36:13.469 --> 02:36:13.479 align:start position:0% so if I now save it we have to properly 02:36:13.479 --> 02:36:14.910 align:start position:0% so if I now save it we have to properly spell<02:36:13.720> it<02:36:13.840> for<02:36:14.000> this<02:36:14.160> to 02:36:14.910 --> 02:36:14.920 align:start position:0% spell it for this to 02:36:14.920 --> 02:36:17.150 align:start position:0% spell it for this to work<02:36:15.960> it<02:36:16.040> seems<02:36:16.240> like<02:36:16.359> we<02:36:16.479> have<02:36:16.640> one<02:36:16.840> extra 02:36:17.150 --> 02:36:17.160 align:start position:0% work it seems like we have one extra 02:36:17.160 --> 02:36:20.710 align:start position:0% work it seems like we have one extra brace<02:36:17.840> so<02:36:17.960> if<02:36:18.080> we<02:36:18.279> fix<02:36:18.479> it<02:36:19.160> there<02:36:19.359> we<02:36:19.560> go<02:36:20.439> but<02:36:20.600> if 02:36:20.710 --> 02:36:20.720 align:start position:0% brace so if we fix it there we go but if 02:36:20.720 --> 02:36:23.110 align:start position:0% brace so if we fix it there we go but if we<02:36:20.880> hover<02:36:21.359> it's<02:36:21.520> not<02:36:21.800> yet<02:36:22.000> fixed<02:36:22.520> so<02:36:22.680> let's<02:36:22.840> see 02:36:23.110 --> 02:36:23.120 align:start position:0% we hover it's not yet fixed so let's see 02:36:23.120 --> 02:36:25.750 align:start position:0% we hover it's not yet fixed so let's see what<02:36:23.319> that<02:36:23.479> is<02:36:23.840> about<02:36:24.840> let's<02:36:25.040> try<02:36:25.200> to<02:36:25.399> properly 02:36:25.750 --> 02:36:25.760 align:start position:0% what that is about let's try to properly 02:36:25.760 --> 02:36:28.150 align:start position:0% what that is about let's try to properly space<02:36:26.080> it<02:36:26.200> out<02:36:26.399> so<02:36:26.520> we<02:36:26.640> can<02:36:26.800> better<02:36:27.080> see<02:36:27.279> it 02:36:28.150 --> 02:36:28.160 align:start position:0% space it out so we can better see it 02:36:28.160 --> 02:36:32.630 align:start position:0% space it out so we can better see it group<02:36:28.720> hover<02:36:29.720> invert<02:36:30.760> white<02:36:31.760> and<02:36:32.120> then<02:36:32.479> we 02:36:32.630 --> 02:36:32.640 align:start position:0% group hover invert white and then we 02:36:32.640 --> 02:36:35.910 align:start position:0% group hover invert white and then we have<02:36:32.880> if<02:36:33.120> is<02:36:33.439> active<02:36:34.120> then<02:36:34.359> also<02:36:34.720> invert<02:36:35.120> white 02:36:35.910 --> 02:36:35.920 align:start position:0% have if is active then also invert white 02:36:35.920 --> 02:36:38.349 align:start position:0% have if is active then also invert white if<02:36:36.040> we<02:36:36.200> go<02:36:36.479> here<02:36:37.279> you<02:36:37.399> can<02:36:37.520> see<02:36:37.720> that<02:36:37.840> it<02:36:38.000> works 02:36:38.349 --> 02:36:38.359 align:start position:0% if we go here you can see that it works 02:36:38.359 --> 02:36:41.750 align:start position:0% if we go here you can see that it works really<02:36:38.680> nicely<02:36:39.279> it<02:36:39.479> inverts<02:36:40.479> but<02:36:40.640> in<02:36:40.880> this<02:36:41.080> one 02:36:41.750 --> 02:36:41.760 align:start position:0% really nicely it inverts but in this one 02:36:41.760 --> 02:36:45.190 align:start position:0% really nicely it inverts but in this one it<02:36:42.319> doesn't<02:36:43.319> that's<02:36:43.960> interesting<02:36:44.960> that's 02:36:45.190 --> 02:36:45.200 align:start position:0% it doesn't that's interesting that's 02:36:45.200 --> 02:36:47.710 align:start position:0% it doesn't that's interesting that's because<02:36:45.399> we<02:36:45.520> have<02:36:45.640> to<02:36:45.960> make<02:36:46.279> this<02:36:46.560> a<02:36:46.800> group<02:36:47.479> so 02:36:47.710 --> 02:36:47.720 align:start position:0% because we have to make this a group so 02:36:47.720 --> 02:36:50.429 align:start position:0% because we have to make this a group so this<02:36:47.920> Li<02:36:48.680> actually<02:36:49.040> has<02:36:49.160> to<02:36:49.359> have<02:36:49.560> a<02:36:49.840> group 02:36:50.429 --> 02:36:50.439 align:start position:0% this Li actually has to have a group 02:36:50.439 --> 02:36:52.710 align:start position:0% this Li actually has to have a group property<02:36:51.319> so<02:36:51.479> it<02:36:51.600> knows<02:36:51.920> it's<02:36:52.120> grouped<02:36:52.520> with 02:36:52.710 --> 02:36:52.720 align:start position:0% property so it knows it's grouped with 02:36:52.720 --> 02:36:54.710 align:start position:0% property so it knows it's grouped with this<02:36:52.880> so<02:36:53.000> if<02:36:53.080> we<02:36:53.200> hover<02:36:53.479> over<02:36:53.840> this<02:36:54.560> it 02:36:54.710 --> 02:36:54.720 align:start position:0% this so if we hover over this it 02:36:54.720 --> 02:36:57.309 align:start position:0% this so if we hover over this it actually<02:36:55.080> applies<02:36:55.560> a<02:36:55.800> group<02:36:56.160> hover<02:36:56.960> there<02:36:57.120> we 02:36:57.309 --> 02:36:57.319 align:start position:0% actually applies a group hover there we 02:36:57.319 --> 02:36:59.950 align:start position:0% actually applies a group hover there we go<02:36:57.800> so<02:36:58.080> now<02:36:58.359> this<02:36:58.479> is<02:36:58.760> such<02:36:58.960> a<02:36:59.200> wonderful 02:36:59.950 --> 02:36:59.960 align:start position:0% go so now this is such a wonderful 02:36:59.960 --> 02:37:02.190 align:start position:0% go so now this is such a wonderful sidebar<02:37:00.960> the<02:37:01.160> last<02:37:01.319> thing<02:37:01.439> we're<02:37:01.600> missing<02:37:02.040> is 02:37:02.190 --> 02:37:02.200 align:start position:0% sidebar the last thing we're missing is 02:37:02.200 --> 02:37:05.150 align:start position:0% sidebar the last thing we're missing is the<02:37:02.359> logout<02:37:03.240> functionality<02:37:04.240> so<02:37:04.560> let's<02:37:04.880> add 02:37:05.150 --> 02:37:05.160 align:start position:0% the logout functionality so let's add 02:37:05.160 --> 02:37:09.030 align:start position:0% the logout functionality so let's add that<02:37:05.560> right<02:37:05.800> here<02:37:06.479> below<02:37:07.279> this<02:37:07.720> ul<02:37:08.720> and<02:37:08.880> then 02:37:09.030 --> 02:37:09.040 align:start position:0% that right here below this ul and then 02:37:09.040 --> 02:37:12.150 align:start position:0% that right here below this ul and then going<02:37:09.359> one<02:37:09.560> more<02:37:09.880> time<02:37:10.160> below<02:37:10.520> the<02:37:10.800> div<02:37:11.800> here 02:37:12.150 --> 02:37:12.160 align:start position:0% going one more time below the div here 02:37:12.160 --> 02:37:14.950 align:start position:0% going one more time below the div here we<02:37:12.279> want<02:37:12.399> to<02:37:12.680> add<02:37:12.960> a<02:37:13.240> button<02:37:14.240> and<02:37:14.439> this<02:37:14.600> button 02:37:14.950 --> 02:37:14.960 align:start position:0% we want to add a button and this button 02:37:14.960 --> 02:37:16.750 align:start position:0% we want to add a button and this button is<02:37:15.080> going<02:37:15.240> to<02:37:15.359> be<02:37:15.520> only<02:37:15.880> almost<02:37:16.160> exactly<02:37:16.640> the 02:37:16.750 --> 02:37:16.760 align:start position:0% is going to be only almost exactly the 02:37:16.760 --> 02:37:19.349 align:start position:0% is going to be only almost exactly the same<02:37:17.160> as<02:37:17.240> in<02:37:17.399> the<02:37:17.600> top<02:37:17.880> bar<02:37:18.600> so<02:37:18.760> we<02:37:18.880> can<02:37:19.040> just 02:37:19.349 --> 02:37:19.359 align:start position:0% same as in the top bar so we can just 02:37:19.359 --> 02:37:22.469 align:start position:0% same as in the top bar so we can just copy<02:37:20.160> this<02:37:20.439> entire<02:37:20.960> sign<02:37:21.319> out 02:37:22.469 --> 02:37:22.479 align:start position:0% copy this entire sign out 02:37:22.479 --> 02:37:26.469 align:start position:0% copy this entire sign out button<02:37:23.479> and<02:37:23.680> then<02:37:24.000> paste<02:37:24.240> it<02:37:24.960> here<02:37:25.960> if<02:37:26.080> you<02:37:26.200> do 02:37:26.469 --> 02:37:26.479 align:start position:0% button and then paste it here if you do 02:37:26.479 --> 02:37:29.070 align:start position:0% button and then paste it here if you do that<02:37:27.000> you<02:37:27.120> can<02:37:27.279> notice<02:37:27.600> the<02:37:27.720> icon<02:37:28.120> appear<02:37:28.880> but 02:37:29.070 --> 02:37:29.080 align:start position:0% that you can notice the icon appear but 02:37:29.080 --> 02:37:31.469 align:start position:0% that you can notice the icon appear but here<02:37:29.240> we<02:37:29.399> have<02:37:29.520> a<02:37:29.640> bit<02:37:29.840> more<02:37:30.319> space<02:37:31.000> so<02:37:31.160> we<02:37:31.279> can 02:37:31.469 --> 02:37:31.479 align:start position:0% here we have a bit more space so we can 02:37:31.479 --> 02:37:34.710 align:start position:0% here we have a bit more space so we can also<02:37:31.840> add<02:37:32.040> the<02:37:32.240> text<02:37:32.760> that<02:37:32.880> says<02:37:33.200> log<02:37:33.560> out<02:37:34.560> and 02:37:34.710 --> 02:37:34.720 align:start position:0% also add the text that says log out and 02:37:34.720 --> 02:37:36.550 align:start position:0% also add the text that says log out and let's<02:37:34.880> also<02:37:35.120> space<02:37:35.520> this<02:37:35.720> correctly<02:37:36.319> so<02:37:36.439> we 02:37:36.550 --> 02:37:36.560 align:start position:0% let's also space this correctly so we 02:37:36.560 --> 02:37:39.510 align:start position:0% let's also space this correctly so we have<02:37:36.680> a<02:37:36.880> variant<02:37:37.439> class<02:37:37.800> name<02:37:38.399> onclick<02:37:39.399> and 02:37:39.510 --> 02:37:39.520 align:start position:0% have a variant class name onclick and 02:37:39.520 --> 02:37:42.429 align:start position:0% have a variant class name onclick and then<02:37:39.640> we<02:37:39.840> have<02:37:39.960> an<02:37:40.279> image<02:37:41.279> and<02:37:41.399> then<02:37:41.640> finally 02:37:42.429 --> 02:37:42.439 align:start position:0% then we have an image and then finally 02:37:42.439 --> 02:37:44.750 align:start position:0% then we have an image and then finally below<02:37:42.800> the<02:37:42.960> image<02:37:43.399> we<02:37:43.520> can<02:37:43.680> have<02:37:43.800> a<02:37:43.960> P<02:37:44.240> tag 02:37:44.750 --> 02:37:44.760 align:start position:0% below the image we can have a P tag 02:37:44.760 --> 02:37:46.910 align:start position:0% below the image we can have a P tag that's<02:37:44.920> going<02:37:45.080> to<02:37:45.200> say<02:37:45.439> log<02:37:45.640> out<02:37:45.840> out<02:37:46.680> and<02:37:46.800> we 02:37:46.910 --> 02:37:46.920 align:start position:0% that's going to say log out out and we 02:37:46.920 --> 02:37:51.429 align:start position:0% that's going to say log out out and we can<02:37:47.040> give<02:37:47.160> it<02:37:47.240> a<02:37:47.479> class<02:37:47.960> name<02:37:48.960> equal<02:37:49.279> to<02:37:50.120> small 02:37:51.429 --> 02:37:51.439 align:start position:0% can give it a class name equal to small 02:37:51.439 --> 02:37:56.429 align:start position:0% can give it a class name equal to small medium<02:37:52.439> and<02:37:53.000> LG<02:37:54.000> base<02:37:54.760> medium<02:37:55.760> so<02:37:55.920> if<02:37:56.040> we<02:37:56.200> save 02:37:56.429 --> 02:37:56.439 align:start position:0% medium and LG base medium so if we save 02:37:56.439 --> 02:37:59.230 align:start position:0% medium and LG base medium so if we save it<02:37:56.840> you<02:37:56.960> can<02:37:57.120> see<02:37:57.359> log<02:37:57.600> out<02:37:58.399> and<02:37:58.680> that 02:37:59.230 --> 02:37:59.240 align:start position:0% it you can see log out and that 02:37:59.240 --> 02:38:02.309 align:start position:0% it you can see log out and that concludes<02:38:00.120> our<02:38:00.720> sidebar<02:38:01.720> of<02:38:01.880> course<02:38:02.080> now<02:38:02.240> if 02:38:02.309 --> 02:38:02.319 align:start position:0% concludes our sidebar of course now if 02:38:02.319 --> 02:38:04.469 align:start position:0% concludes our sidebar of course now if you<02:38:02.439> try<02:38:02.680> clicking<02:38:03.080> explore<02:38:04.040> nothing's<02:38:04.399> going 02:38:04.469 --> 02:38:04.479 align:start position:0% you try clicking explore nothing's going 02:38:04.479 --> 02:38:07.349 align:start position:0% you try clicking explore nothing's going to<02:38:04.720> happen<02:38:05.359> because<02:38:05.760> that<02:38:06.040> route<02:38:06.680> doesn't<02:38:07.080> yet 02:38:07.349 --> 02:38:07.359 align:start position:0% to happen because that route doesn't yet 02:38:07.359 --> 02:38:09.790 align:start position:0% to happen because that route doesn't yet exist<02:38:08.319> so<02:38:08.560> while<02:38:08.760> we're<02:38:09.040> here<02:38:09.399> what<02:38:09.479> do<02:38:09.600> you 02:38:09.790 --> 02:38:09.800 align:start position:0% exist so while we're here what do you 02:38:09.800 --> 02:38:12.269 align:start position:0% exist so while we're here what do you say<02:38:10.000> that<02:38:10.120> we<02:38:10.279> implement<02:38:10.800> the<02:38:11.000> routing<02:38:12.000> so 02:38:12.269 --> 02:38:12.279 align:start position:0% say that we implement the routing so 02:38:12.279 --> 02:38:13.990 align:start position:0% say that we implement the routing so that<02:38:12.520> everything<02:38:12.880> we<02:38:13.040> work<02:38:13.279> so<02:38:13.479> hard<02:38:13.720> on 02:38:13.990 --> 02:38:14.000 align:start position:0% that everything we work so hard on 02:38:14.000 --> 02:38:17.269 align:start position:0% that everything we work so hard on doesn't<02:38:14.399> just<02:38:14.840> disappear<02:38:15.960> so<02:38:16.200> to<02:38:16.399> do<02:38:16.640> that<02:38:17.160> we 02:38:17.269 --> 02:38:17.279 align:start position:0% doesn't just disappear so to do that we 02:38:17.279 --> 02:38:21.389 align:start position:0% doesn't just disappear so to do that we can<02:38:17.439> now<02:38:17.680> go<02:38:18.080> back<02:38:18.760> to<02:38:19.120> our<02:38:19.720> main<02:38:20.720> or<02:38:20.960> rather<02:38:21.240> to 02:38:21.389 --> 02:38:21.399 align:start position:0% can now go back to our main or rather to 02:38:21.399 --> 02:38:23.309 align:start position:0% can now go back to our main or rather to our<02:38:21.680> app<02:38:22.160> right<02:38:22.399> here<02:38:22.680> because<02:38:23.000> that's<02:38:23.200> where 02:38:23.309 --> 02:38:23.319 align:start position:0% our app right here because that's where 02:38:23.319 --> 02:38:25.670 align:start position:0% our app right here because that's where we<02:38:23.479> have<02:38:23.600> the<02:38:23.760> routing<02:38:24.520> and<02:38:24.680> we<02:38:24.760> can<02:38:25.000> Implement 02:38:25.670 --> 02:38:25.680 align:start position:0% we have the routing and we can Implement 02:38:25.680 --> 02:38:27.670 align:start position:0% we have the routing and we can Implement all<02:38:25.960> the<02:38:26.160> other<02:38:26.560> private 02:38:27.670 --> 02:38:27.680 align:start position:0% all the other private 02:38:27.680 --> 02:38:30.910 align:start position:0% all the other private routes<02:38:28.680> and<02:38:28.880> trust<02:38:29.200> me<02:38:29.680> we're<02:38:29.880> going<02:38:29.960> to<02:38:30.240> have 02:38:30.910 --> 02:38:30.920 align:start position:0% routes and trust me we're going to have 02:38:30.920 --> 02:38:34.190 align:start position:0% routes and trust me we're going to have quite<02:38:31.319> a<02:38:31.479> few<02:38:32.399> so<02:38:32.640> let's<02:38:32.880> create<02:38:33.120> a<02:38:33.279> new<02:38:33.520> route 02:38:34.190 --> 02:38:34.200 align:start position:0% quite a few so let's create a new route 02:38:34.200 --> 02:38:35.670 align:start position:0% quite a few so let's create a new route which<02:38:34.319> is<02:38:34.439> going<02:38:34.600> to<02:38:34.720> be<02:38:34.840> a<02:38:34.920> self-closing 02:38:35.670 --> 02:38:35.680 align:start position:0% which is going to be a self-closing 02:38:35.680 --> 02:38:39.990 align:start position:0% which is going to be a self-closing component<02:38:36.520> with<02:38:36.720> a<02:38:37.080> path<02:38:37.520> of<02:38:37.800> for<02:38:38.240> SL<02:38:39.000> explore 02:38:39.990 --> 02:38:40.000 align:start position:0% component with a path of for SL explore 02:38:40.000 --> 02:38:42.190 align:start position:0% component with a path of for SL explore and<02:38:40.240> it's<02:38:40.399> going<02:38:40.560> to<02:38:40.720> render<02:38:41.040> an<02:38:41.240> element 02:38:42.190 --> 02:38:42.200 align:start position:0% and it's going to render an element 02:38:42.200 --> 02:38:44.150 align:start position:0% and it's going to render an element that's<02:38:42.399> going<02:38:42.560> to<02:38:42.680> be<02:38:42.880> called<02:38:43.800> I<02:38:43.880> think<02:38:44.040> you 02:38:44.150 --> 02:38:44.160 align:start position:0% that's going to be called I think you 02:38:44.160 --> 02:38:48.349 align:start position:0% that's going to be called I think you can<02:38:44.359> guess<02:38:44.720> it<02:38:45.760> explore<02:38:46.560> there<02:38:46.720> we<02:38:46.920> go<02:38:47.840> so<02:38:48.080> now 02:38:48.349 --> 02:38:48.359 align:start position:0% can guess it explore there we go so now 02:38:48.359 --> 02:38:50.349 align:start position:0% can guess it explore there we go so now we<02:38:48.479> want<02:38:48.600> to<02:38:48.800> duplicate<02:38:49.359> this<02:38:49.800> many<02:38:50.080> many 02:38:50.349 --> 02:38:50.359 align:start position:0% we want to duplicate this many many 02:38:50.359 --> 02:38:53.349 align:start position:0% we want to duplicate this many many times<02:38:51.120> below<02:38:52.120> the<02:38:52.279> second<02:38:52.600> one<02:38:52.880> is<02:38:53.040> going<02:38:53.240> to 02:38:53.349 --> 02:38:53.359 align:start position:0% times below the second one is going to 02:38:53.359 --> 02:38:56.429 align:start position:0% times below the second one is going to be<02:38:53.720> saved<02:38:54.319> meaning<02:38:54.720> all<02:38:55.000> the<02:38:55.160> saved<02:38:55.600> posts 02:38:56.429 --> 02:38:56.439 align:start position:0% be saved meaning all the saved posts 02:38:56.439 --> 02:38:58.150 align:start position:0% be saved meaning all the saved posts right<02:38:56.680> here<02:38:57.040> but<02:38:57.160> we<02:38:57.279> cannot<02:38:57.600> now<02:38:57.760> see<02:38:57.960> it 02:38:58.150 --> 02:38:58.160 align:start position:0% right here but we cannot now see it 02:38:58.160 --> 02:38:59.830 align:start position:0% right here but we cannot now see it because<02:38:58.359> we<02:38:58.520> broke<02:38:58.760> it<02:38:59.200> and<02:38:59.359> that's<02:38:59.560> going<02:38:59.680> to 02:38:59.830 --> 02:38:59.840 align:start position:0% because we broke it and that's going to 02:38:59.840 --> 02:39:03.630 align:start position:0% because we broke it and that's going to render<02:39:00.680> saved<02:39:01.680> then<02:39:01.960> we<02:39:02.120> have<02:39:02.240> to<02:39:02.479> have<02:39:02.800> all 02:39:03.630 --> 02:39:03.640 align:start position:0% render saved then we have to have all 02:39:03.640 --> 02:39:06.870 align:start position:0% render saved then we have to have all users<02:39:04.520> which<02:39:04.640> is<02:39:04.760> going<02:39:04.920> to<02:39:05.120> go<02:39:05.319> to<02:39:05.680> all 02:39:06.870 --> 02:39:06.880 align:start position:0% users which is going to go to all 02:39:06.880 --> 02:39:11.870 align:start position:0% users which is going to go to all users<02:39:07.880> let's<02:39:08.120> expand<02:39:08.479> this<02:39:08.680> just<02:39:08.800> a 02:39:11.870 --> 02:39:11.880 align:start position:0% 02:39:11.880 --> 02:39:16.269 align:start position:0% bit<02:39:12.880> then<02:39:13.200> we<02:39:13.319> can<02:39:13.560> have<02:39:14.040> create<02:39:15.040> post<02:39:16.120> and 02:39:16.269 --> 02:39:16.279 align:start position:0% bit then we can have create post and 02:39:16.279 --> 02:39:19.710 align:start position:0% bit then we can have create post and that's<02:39:16.479> going<02:39:16.640> to<02:39:16.840> be<02:39:17.359> create<02:39:18.359> post<02:39:19.359> we<02:39:19.479> can 02:39:19.710 --> 02:39:19.720 align:start position:0% that's going to be create post we can 02:39:19.720 --> 02:39:23.670 align:start position:0% that's going to be create post we can also<02:39:20.120> have<02:39:20.520> update<02:39:21.359> Das<02:39:22.200> poost<02:39:23.200> and<02:39:23.399> we<02:39:23.479> need 02:39:23.670 --> 02:39:23.680 align:start position:0% also have update Das poost and we need 02:39:23.680 --> 02:39:25.590 align:start position:0% also have update Das poost and we need to<02:39:23.800> know<02:39:24.000> the<02:39:24.200> ID<02:39:24.680> of<02:39:24.800> the<02:39:24.960> post<02:39:25.240> we're 02:39:25.590 --> 02:39:25.600 align:start position:0% to know the ID of the post we're 02:39:25.600 --> 02:39:28.389 align:start position:0% to know the ID of the post we're updating<02:39:26.600> take<02:39:26.880> care<02:39:27.200> of<02:39:27.439> these<02:39:27.840> columns 02:39:28.389 --> 02:39:28.399 align:start position:0% updating take care of these columns 02:39:28.399 --> 02:39:32.710 align:start position:0% updating take care of these columns right<02:39:28.560> here<02:39:29.439> that's<02:39:29.680> going<02:39:29.840> to<02:39:30.000> be<02:39:30.359> edit<02:39:31.720> post 02:39:32.710 --> 02:39:32.720 align:start position:0% right here that's going to be edit post 02:39:32.720 --> 02:39:34.950 align:start position:0% right here that's going to be edit post then<02:39:33.000> we're<02:39:33.160> going<02:39:33.240> to<02:39:33.479> have<02:39:33.880> a<02:39:34.120> specific<02:39:34.600> post 02:39:34.950 --> 02:39:34.960 align:start position:0% then we're going to have a specific post 02:39:34.960 --> 02:39:37.190 align:start position:0% then we're going to have a specific post details<02:39:35.640> so<02:39:35.800> that's<02:39:36.000> going<02:39:36.120> to<02:39:36.240> be<02:39:36.479> posts<02:39:37.080> and 02:39:37.190 --> 02:39:37.200 align:start position:0% details so that's going to be posts and 02:39:37.200 --> 02:39:40.070 align:start position:0% details so that's going to be posts and then<02:39:37.399> the<02:39:37.600> ID<02:39:37.960> of<02:39:38.160> that<02:39:38.520> post<02:39:39.520> so<02:39:39.760> that's<02:39:39.920> going 02:39:40.070 --> 02:39:40.080 align:start position:0% then the ID of that post so that's going 02:39:40.080 --> 02:39:41.469 align:start position:0% then the ID of that post so that's going to<02:39:40.160> be<02:39:40.399> post 02:39:41.469 --> 02:39:41.479 align:start position:0% to be post 02:39:41.479 --> 02:39:44.630 align:start position:0% to be post details<02:39:42.479> and<02:39:42.680> then<02:39:43.040> we<02:39:43.240> have<02:39:43.520> a<02:39:43.840> profile<02:39:44.479> so 02:39:44.630 --> 02:39:44.640 align:start position:0% details and then we have a profile so 02:39:44.640 --> 02:39:47.630 align:start position:0% details and then we have a profile so that's<02:39:44.840> for/<02:39:45.720> profile 02:39:47.630 --> 02:39:47.640 align:start position:0% that's for/ profile 02:39:47.640 --> 02:39:50.269 align:start position:0% that's for/ profile slid<02:39:48.640> and<02:39:48.760> we<02:39:48.840> can<02:39:49.080> also<02:39:49.399> add<02:39:49.680> this<02:39:49.880> special 02:39:50.269 --> 02:39:50.279 align:start position:0% slid and we can also add this special 02:39:50.279 --> 02:39:52.230 align:start position:0% slid and we can also add this special asterisk<02:39:51.200> which<02:39:51.319> means<02:39:51.560> that<02:39:51.800> everything 02:39:52.230 --> 02:39:52.240 align:start position:0% asterisk which means that everything 02:39:52.240 --> 02:39:54.630 align:start position:0% asterisk which means that everything after<02:39:52.520> the<02:39:52.760> profile<02:39:53.319> is<02:39:53.600> also<02:39:53.800> going<02:39:53.960> to<02:39:54.200> point 02:39:54.630 --> 02:39:54.640 align:start position:0% after the profile is also going to point 02:39:54.640 --> 02:39:58.389 align:start position:0% after the profile is also going to point to<02:39:54.880> that<02:39:55.200> profile<02:39:56.200> we<02:39:56.279> can<02:39:56.439> say<02:39:57.080> profile<02:39:58.080> and 02:39:58.389 --> 02:39:58.399 align:start position:0% to that profile we can say profile and 02:39:58.399 --> 02:40:00.469 align:start position:0% to that profile we can say profile and finally<02:39:58.880> we're<02:39:59.040> going<02:39:59.160> to<02:39:59.319> have<02:39:59.520> the<02:39:59.760> update 02:40:00.469 --> 02:40:00.479 align:start position:0% finally we're going to have the update 02:40:00.479 --> 02:40:02.670 align:start position:0% finally we're going to have the update Das<02:40:01.120> profile 02:40:02.670 --> 02:40:02.680 align:start position:0% Das profile 02:40:02.680 --> 02:40:05.590 align:start position:0% Das profile slid<02:40:03.680> where<02:40:03.960> we're<02:40:04.080> going<02:40:04.200> to<02:40:04.319> render<02:40:05.000> the 02:40:05.590 --> 02:40:05.600 align:start position:0% slid where we're going to render the 02:40:05.600 --> 02:40:08.070 align:start position:0% slid where we're going to render the update 02:40:08.070 --> 02:40:08.080 align:start position:0% update 02:40:08.080 --> 02:40:10.750 align:start position:0% update profile<02:40:09.080> and<02:40:09.279> with<02:40:09.479> that<02:40:09.720> said<02:40:10.120> we<02:40:10.240> now<02:40:10.520> have 02:40:10.750 --> 02:40:10.760 align:start position:0% profile and with that said we now have 02:40:10.760 --> 02:40:12.710 align:start position:0% profile and with that said we now have all<02:40:10.960> of<02:40:11.080> our<02:40:11.279> routes<02:40:11.960> the<02:40:12.120> last<02:40:12.319> thing<02:40:12.479> we<02:40:12.600> have 02:40:12.710 --> 02:40:12.720 align:start position:0% all of our routes the last thing we have 02:40:12.720 --> 02:40:16.550 align:start position:0% all of our routes the last thing we have to<02:40:12.880> do<02:40:13.600> is<02:40:14.000> create<02:40:14.640> those<02:40:14.960> pages<02:40:15.800> within<02:40:16.359> the 02:40:16.550 --> 02:40:16.560 align:start position:0% to do is create those pages within the 02:40:16.560 --> 02:40:19.790 align:start position:0% to do is create those pages within the pages<02:40:16.960> folder<02:40:17.800> right<02:40:18.040> here<02:40:18.840> so<02:40:19.200> let's<02:40:19.439> create 02:40:19.790 --> 02:40:19.800 align:start position:0% pages folder right here so let's create 02:40:19.800 --> 02:40:22.269 align:start position:0% pages folder right here so let's create them<02:40:20.040> one<02:40:20.279> by<02:40:20.479> one<02:40:21.120> that's<02:40:21.359> going<02:40:21.560> to<02:40:21.760> be 02:40:22.269 --> 02:40:22.279 align:start position:0% them one by one that's going to be 02:40:22.279 --> 02:40:24.030 align:start position:0% them one by one that's going to be starting<02:40:22.720> from<02:40:22.960> the 02:40:24.030 --> 02:40:24.040 align:start position:0% starting from the 02:40:24.040 --> 02:40:30.389 align:start position:0% starting from the top<02:40:25.040> all<02:40:26.040> users.<02:40:27.200> TSX<02:40:28.200> where<02:40:28.479> we<02:40:28.600> can<02:40:28.760> run 02:40:30.389 --> 02:40:30.399 align:start position:0% top all users. TSX where we can run 02:40:30.399 --> 02:40:32.910 align:start position:0% top all users. TSX where we can run ource<02:40:31.399> let's<02:40:31.640> go<02:40:31.800> to<02:40:31.960> the<02:40:32.120> next<02:40:32.359> one<02:40:32.720> that's 02:40:32.910 --> 02:40:32.920 align:start position:0% ource let's go to the next one that's 02:40:32.920 --> 02:40:37.030 align:start position:0% ource let's go to the next one that's going<02:40:33.080> to<02:40:33.240> be<02:40:33.479> create<02:40:34.319> post.<02:40:35.399> TSX<02:40:36.399> and<02:40:36.640> again 02:40:37.030 --> 02:40:37.040 align:start position:0% going to be create post. TSX and again 02:40:37.040 --> 02:40:38.550 align:start position:0% going to be create post. TSX and again run 02:40:38.550 --> 02:40:38.560 align:start position:0% run 02:40:38.560 --> 02:40:41.269 align:start position:0% run RFC<02:40:39.560> after<02:40:39.840> create<02:40:40.279> post<02:40:40.840> we're<02:40:40.960> going<02:40:41.080> to 02:40:41.269 --> 02:40:41.279 align:start position:0% RFC after create post we're going to 02:40:41.279 --> 02:40:45.190 align:start position:0% RFC after create post we're going to have<02:40:41.600> edit<02:40:42.520> post.<02:40:43.600> TSX<02:40:44.600> where<02:40:44.840> we're<02:40:44.960> going<02:40:45.080> to 02:40:45.190 --> 02:40:45.200 align:start position:0% have edit post. TSX where we're going to 02:40:45.200 --> 02:40:46.910 align:start position:0% have edit post. TSX where we're going to create 02:40:46.910 --> 02:40:46.920 align:start position:0% create 02:40:46.920 --> 02:40:49.790 align:start position:0% create rafc<02:40:47.920> after<02:40:48.279> that<02:40:48.560> we're<02:40:48.720> going<02:40:48.800> to<02:40:49.040> have 02:40:49.790 --> 02:40:49.800 align:start position:0% rafc after that we're going to have 02:40:49.800 --> 02:40:54.230 align:start position:0% rafc after that we're going to have explore.<02:40:51.080> TSX<02:40:52.080> once<02:40:52.359> again<02:40:52.800> run 02:40:54.230 --> 02:40:54.240 align:start position:0% explore. TSX once again run 02:40:54.240 --> 02:40:58.630 align:start position:0% explore. TSX once again run rce<02:40:55.240> after<02:40:55.600> that<02:40:55.960> we're<02:40:56.120> going<02:40:56.240> to<02:40:56.399> run<02:40:57.279> post 02:40:58.630 --> 02:40:58.640 align:start position:0% rce after that we're going to run post 02:40:58.640 --> 02:41:01.870 align:start position:0% rce after that we're going to run post details.<02:40:59.800> TSX<02:41:00.800> run 02:41:01.870 --> 02:41:01.880 align:start position:0% details. TSX run 02:41:01.880 --> 02:41:04.550 align:start position:0% details. TSX run rce<02:41:02.880> we're<02:41:03.040> going<02:41:03.160> to<02:41:03.319> have<02:41:03.520> our<02:41:03.920> profile<02:41:04.359> of 02:41:04.550 --> 02:41:04.560 align:start position:0% rce we're going to have our profile of 02:41:04.560 --> 02:41:07.830 align:start position:0% rce we're going to have our profile of course<02:41:05.520> TSX<02:41:06.520> and<02:41:06.720> run 02:41:07.830 --> 02:41:07.840 align:start position:0% course TSX and run 02:41:07.840 --> 02:41:10.510 align:start position:0% course TSX and run RFC<02:41:08.840> and<02:41:09.000> we're<02:41:09.120> going<02:41:09.240> to<02:41:09.479> also<02:41:09.840> have<02:41:10.160> our 02:41:10.510 --> 02:41:10.520 align:start position:0% RFC and we're going to also have our 02:41:10.520 --> 02:41:16.269 align:start position:0% RFC and we're going to also have our saved<02:41:11.040> for<02:41:11.319> saved<02:41:11.760> posts.<02:41:12.760> TSX<02:41:13.680> and<02:41:13.840> run<02:41:14.439> RFC 02:41:16.269 --> 02:41:16.279 align:start position:0% saved for saved posts. TSX and run RFC 02:41:16.279 --> 02:41:19.790 align:start position:0% saved for saved posts. TSX and run RFC and<02:41:16.479> we're<02:41:16.600> going<02:41:16.720> to<02:41:16.920> also<02:41:17.319> have<02:41:17.760> the<02:41:18.279> update 02:41:19.790 --> 02:41:19.800 align:start position:0% and we're going to also have the update 02:41:19.800 --> 02:41:24.510 align:start position:0% and we're going to also have the update profile.<02:41:21.040> TSX<02:41:22.040> and<02:41:22.160> we<02:41:22.279> can<02:41:22.399> run<02:41:22.600> R<02:41:23.359> afce<02:41:24.359> so 02:41:24.510 --> 02:41:24.520 align:start position:0% profile. TSX and we can run R afce so 02:41:24.520 --> 02:41:27.030 align:start position:0% profile. TSX and we can run R afce so now<02:41:24.760> we<02:41:24.920> have<02:41:25.200> all<02:41:25.399> of<02:41:25.600> these<02:41:25.880> Pages<02:41:26.720> you<02:41:26.840> can 02:41:27.030 --> 02:41:27.040 align:start position:0% now we have all of these Pages you can 02:41:27.040 --> 02:41:28.750 align:start position:0% now we have all of these Pages you can close<02:41:27.399> them<02:41:27.600> by<02:41:27.720> pressing<02:41:28.040> control<02:41:28.479> or 02:41:28.750 --> 02:41:28.760 align:start position:0% close them by pressing control or 02:41:28.760 --> 02:41:31.510 align:start position:0% close them by pressing control or command<02:41:29.680> W<02:41:30.399> don't<02:41:30.640> do<02:41:30.880> that<02:41:31.080> while<02:41:31.240> you're<02:41:31.359> in 02:41:31.510 --> 02:41:31.520 align:start position:0% command W don't do that while you're in 02:41:31.520 --> 02:41:33.429 align:start position:0% command W don't do that while you're in your<02:41:31.640> browser<02:41:32.279> move<02:41:32.520> to<02:41:32.640> your<02:41:32.800> Visual<02:41:33.080> Studio 02:41:33.429 --> 02:41:33.439 align:start position:0% your browser move to your Visual Studio 02:41:33.439 --> 02:41:35.469 align:start position:0% your browser move to your Visual Studio code<02:41:34.000> because<02:41:34.240> usually<02:41:34.560> it<02:41:34.680> would<02:41:34.840> close<02:41:35.160> your 02:41:35.469 --> 02:41:35.479 align:start position:0% code because usually it would close your 02:41:35.479 --> 02:41:38.469 align:start position:0% code because usually it would close your tab<02:41:36.479> and<02:41:36.600> then<02:41:36.760> you<02:41:36.840> can<02:41:37.080> close<02:41:37.439> all<02:41:37.600> of<02:41:37.800> these 02:41:38.469 --> 02:41:38.479 align:start position:0% tab and then you can close all of these 02:41:38.479 --> 02:41:41.910 align:start position:0% tab and then you can close all of these tabs<02:41:39.479> and<02:41:39.600> we<02:41:39.720> can<02:41:39.960> go<02:41:40.439> to<02:41:40.720> this<02:41:40.960> index<02:41:41.640> within 02:41:41.910 --> 02:41:41.920 align:start position:0% tabs and we can go to this index within 02:41:41.920 --> 02:41:44.389 align:start position:0% tabs and we can go to this index within the<02:41:42.080> pages<02:41:43.000> and<02:41:43.120> we<02:41:43.240> can<02:41:43.479> export<02:41:43.920> all<02:41:44.040> of<02:41:44.200> these 02:41:44.389 --> 02:41:44.399 align:start position:0% the pages and we can export all of these 02:41:44.399 --> 02:41:46.429 align:start position:0% the pages and we can export all of these components<02:41:45.040> so<02:41:45.200> that<02:41:45.479> it's<02:41:45.600> easier<02:41:45.920> to<02:41:46.080> import 02:41:46.429 --> 02:41:46.439 align:start position:0% components so that it's easier to import 02:41:46.439 --> 02:41:49.590 align:start position:0% components so that it's easier to import them<02:41:46.920> so<02:41:47.120> let's<02:41:47.359> duplicate<02:41:47.840> this<02:41:48.000> a<02:41:48.120> few<02:41:48.600> times 02:41:49.590 --> 02:41:49.600 align:start position:0% them so let's duplicate this a few times 02:41:49.600 --> 02:41:50.870 align:start position:0% them so let's duplicate this a few times quite<02:41:49.760> a<02:41:49.920> few 02:41:50.870 --> 02:41:50.880 align:start position:0% quite a few 02:41:50.880 --> 02:41:54.670 align:start position:0% quite a few actually<02:41:51.880> and<02:41:52.000> then<02:41:52.160> we<02:41:52.240> can<02:41:52.800> export<02:41:53.800> explore 02:41:54.670 --> 02:41:54.680 align:start position:0% actually and then we can export explore 02:41:54.680 --> 02:41:58.870 align:start position:0% actually and then we can export explore from<02:41:55.640> exlore<02:41:56.640> we<02:41:56.760> can<02:41:57.000> also<02:41:57.720> export 02:41:58.870 --> 02:41:58.880 align:start position:0% from exlore we can also export 02:41:58.880 --> 02:42:04.230 align:start position:0% from exlore we can also export saved<02:41:59.880> we<02:42:00.000> can<02:42:00.319> export<02:42:01.279> create<02:42:02.720> post<02:42:03.720> we<02:42:03.840> can 02:42:04.230 --> 02:42:04.240 align:start position:0% saved we can export create post we can 02:42:04.240 --> 02:42:05.990 align:start position:0% saved we can export create post we can export 02:42:05.990 --> 02:42:06.000 align:start position:0% export 02:42:06.000 --> 02:42:09.950 align:start position:0% export profile<02:42:07.000> we<02:42:07.120> can<02:42:07.399> export<02:42:08.040> update<02:42:08.920> profile<02:42:09.840> we 02:42:09.950 --> 02:42:09.960 align:start position:0% profile we can export update profile we 02:42:09.960 --> 02:42:14.830 align:start position:0% profile we can export update profile we can<02:42:10.240> export<02:42:10.840> edit<02:42:12.080> post<02:42:13.080> we<02:42:13.200> can<02:42:13.479> export<02:42:14.439> post 02:42:14.830 --> 02:42:14.840 align:start position:0% can export edit post we can export post 02:42:14.840 --> 02:42:17.309 align:start position:0% can export edit post we can export post details 02:42:17.309 --> 02:42:17.319 align:start position:0% details 02:42:17.319 --> 02:42:19.750 align:start position:0% details and<02:42:17.520> we<02:42:17.640> can<02:42:17.880> export<02:42:18.640> all 02:42:19.750 --> 02:42:19.760 align:start position:0% and we can export all 02:42:19.760 --> 02:42:22.469 align:start position:0% and we can export all users<02:42:20.760> right<02:42:21.200> here<02:42:21.600> as 02:42:22.469 --> 02:42:22.479 align:start position:0% users right here as 02:42:22.479 --> 02:42:25.389 align:start position:0% users right here as well<02:42:23.479> and<02:42:23.840> I<02:42:24.040> think<02:42:24.479> we're<02:42:24.640> going<02:42:24.720> to<02:42:24.920> use<02:42:25.200> the 02:42:25.389 --> 02:42:25.399 align:start position:0% well and I think we're going to use the 02:42:25.399 --> 02:42:28.150 align:start position:0% well and I think we're going to use the like<02:42:25.760> post<02:42:26.160> as<02:42:26.319> well<02:42:26.840> so<02:42:27.160> let's<02:42:27.479> add<02:42:27.760> like 02:42:28.150 --> 02:42:28.160 align:start position:0% like post as well so let's add like 02:42:28.160 --> 02:42:32.550 align:start position:0% like post as well so let's add like posts<02:42:29.160> as<02:42:29.840> well<02:42:30.840> and<02:42:31.040> we<02:42:31.160> need<02:42:31.279> to<02:42:31.520> create<02:42:32.359> the 02:42:32.550 --> 02:42:32.560 align:start position:0% posts as well and we need to create the 02:42:32.560 --> 02:42:38.670 align:start position:0% posts as well and we need to create the component<02:42:33.040> for<02:42:34.160> liked<02:42:35.359> posts.<02:42:36.399> TSX<02:42:37.399> and<02:42:37.560> run 02:42:38.670 --> 02:42:38.680 align:start position:0% component for liked posts. TSX and run 02:42:38.680 --> 02:42:41.150 align:start position:0% component for liked posts. TSX and run RFC<02:42:39.680> now<02:42:39.880> that<02:42:40.000> we<02:42:40.160> have<02:42:40.319> created<02:42:40.800> all<02:42:40.960> of 02:42:41.150 --> 02:42:41.160 align:start position:0% RFC now that we have created all of 02:42:41.160 --> 02:42:43.870 align:start position:0% RFC now that we have created all of these<02:42:41.479> Pages<02:42:42.479> within<02:42:43.000> app<02:42:43.479> you<02:42:43.600> can 02:42:43.870 --> 02:42:43.880 align:start position:0% these Pages within app you can 02:42:43.880 --> 02:42:46.070 align:start position:0% these Pages within app you can doubleclick<02:42:44.479> each<02:42:44.720> word<02:42:45.359> press<02:42:45.560> control<02:42:45.880> or 02:42:46.070 --> 02:42:46.080 align:start position:0% doubleclick each word press control or 02:42:46.080 --> 02:42:47.990 align:start position:0% doubleclick each word press control or command<02:42:46.479> space<02:42:47.240> and<02:42:47.439> it's<02:42:47.560> going<02:42:47.760> to 02:42:47.990 --> 02:42:48.000 align:start position:0% command space and it's going to 02:42:48.000 --> 02:42:50.469 align:start position:0% command space and it's going to automatically<02:42:48.720> give<02:42:48.840> you<02:42:49.000> the<02:42:49.160> import<02:42:50.040> repeat 02:42:50.469 --> 02:42:50.479 align:start position:0% automatically give you the import repeat 02:42:50.479 --> 02:42:53.670 align:start position:0% automatically give you the import repeat this<02:42:50.720> procedure<02:42:51.359> all<02:42:51.920> seven<02:42:52.200> or<02:42:52.359> eight<02:42:52.680> times 02:42:53.670 --> 02:42:53.680 align:start position:0% this procedure all seven or eight times 02:42:53.680 --> 02:42:56.990 align:start position:0% this procedure all seven or eight times however<02:42:53.920> many<02:42:54.200> components<02:42:55.160> we<02:42:55.600> have<02:42:56.600> so<02:42:56.880> if 02:42:56.990 --> 02:42:57.000 align:start position:0% however many components we have so if 02:42:57.000 --> 02:43:00.710 align:start position:0% however many components we have so if you<02:42:57.160> do<02:42:57.600> this<02:42:58.600> you<02:42:58.720> can<02:42:58.960> see<02:42:59.840> that<02:43:00.160> they're<02:43:00.479> all 02:43:00.710 --> 02:43:00.720 align:start position:0% you do this you can see that they're all 02:43:00.720 --> 02:43:02.710 align:start position:0% you do this you can see that they're all getting<02:43:00.960> imported<02:43:01.479> from<02:43:01.680> one<02:43:01.920> line<02:43:02.439> which<02:43:02.560> is 02:43:02.710 --> 02:43:02.720 align:start position:0% getting imported from one line which is 02:43:02.720 --> 02:43:04.630 align:start position:0% getting imported from one line which is pretty<02:43:03.000> cool<02:43:03.520> that's<02:43:03.760> exactly<02:43:04.160> why<02:43:04.279> we<02:43:04.399> needed 02:43:04.630 --> 02:43:04.640 align:start position:0% pretty cool that's exactly why we needed 02:43:04.640 --> 02:43:07.750 align:start position:0% pretty cool that's exactly why we needed to<02:43:04.880> export<02:43:05.359> them<02:43:06.120> whereas<02:43:06.680> these<02:43:06.960> components 02:43:07.750 --> 02:43:07.760 align:start position:0% to export them whereas these components 02:43:07.760 --> 02:43:09.590 align:start position:0% to export them whereas these components are<02:43:07.960> being<02:43:08.200> imported<02:43:08.680> in<02:43:08.880> their<02:43:09.040> own 02:43:09.590 --> 02:43:09.600 align:start position:0% are being imported in their own 02:43:09.600 --> 02:43:13.429 align:start position:0% are being imported in their own individual<02:43:10.359> lines<02:43:11.359> so<02:43:11.680> now<02:43:12.160> if<02:43:12.279> we<02:43:12.479> save<02:43:12.800> this 02:43:13.429 --> 02:43:13.439 align:start position:0% individual lines so now if we save this 02:43:13.439 --> 02:43:16.349 align:start position:0% individual lines so now if we save this file<02:43:14.439> and<02:43:14.600> reload<02:43:15.000> the<02:43:15.080> page<02:43:15.399> page<02:43:16.080> you<02:43:16.200> can 02:43:16.349 --> 02:43:16.359 align:start position:0% file and reload the page page you can 02:43:16.359 --> 02:43:18.870 align:start position:0% file and reload the page page you can see<02:43:16.560> the<02:43:16.880> sidebar<02:43:17.880> and<02:43:18.160> you<02:43:18.279> can<02:43:18.439> see<02:43:18.640> that<02:43:18.760> it 02:43:18.870 --> 02:43:18.880 align:start position:0% see the sidebar and you can see that it 02:43:18.880 --> 02:43:22.150 align:start position:0% see the sidebar and you can see that it says<02:43:19.240> explore<02:43:20.240> and<02:43:20.399> it<02:43:20.520> says<02:43:20.800> home<02:43:21.600> the<02:43:21.760> URL 02:43:22.150 --> 02:43:22.160 align:start position:0% says explore and it says home the URL 02:43:22.160 --> 02:43:26.030 align:start position:0% says explore and it says home the URL changes<02:43:23.120> and<02:43:23.680> what<02:43:23.920> it<02:43:24.080> says<02:43:24.640> also<02:43:24.920> changes<02:43:25.760> so 02:43:26.030 --> 02:43:26.040 align:start position:0% changes and what it says also changes so 02:43:26.040 --> 02:43:28.990 align:start position:0% changes and what it says also changes so now<02:43:26.240> we<02:43:26.399> have<02:43:26.640> complete<02:43:27.240> routing<02:43:28.080> implemented 02:43:28.990 --> 02:43:29.000 align:start position:0% now we have complete routing implemented 02:43:29.000 --> 02:43:31.990 align:start position:0% now we have complete routing implemented in<02:43:29.200> our<02:43:29.520> great<02:43:30.200> application<02:43:31.200> before<02:43:31.520> we<02:43:31.680> focus 02:43:31.990 --> 02:43:32.000 align:start position:0% in our great application before we focus 02:43:32.000 --> 02:43:34.469 align:start position:0% in our great application before we focus on<02:43:32.279> that<02:43:32.680> central<02:43:33.200> part<02:43:33.960> we're<02:43:34.120> going<02:43:34.200> to 02:43:34.469 --> 02:43:34.479 align:start position:0% on that central part we're going to 02:43:34.479 --> 02:43:36.990 align:start position:0% on that central part we're going to first<02:43:34.920> focus<02:43:35.399> on<02:43:35.600> the<02:43:35.800> bottom<02:43:36.160> bar<02:43:36.680> which<02:43:36.800> is<02:43:36.920> a 02:43:36.990 --> 02:43:37.000 align:start position:0% first focus on the bottom bar which is a 02:43:37.000 --> 02:43:39.429 align:start position:0% first focus on the bottom bar which is a bit<02:43:37.200> weird<02:43:37.680> right<02:43:38.319> where<02:43:38.560> do<02:43:38.680> we<02:43:38.920> have<02:43:39.160> a 02:43:39.429 --> 02:43:39.439 align:start position:0% bit weird right where do we have a 02:43:39.439 --> 02:43:43.110 align:start position:0% bit weird right where do we have a bottom<02:43:39.840> bar<02:43:40.160> here<02:43:41.080> well<02:43:41.520> as<02:43:41.720> with<02:43:41.920> the<02:43:42.120> top<02:43:42.399> bar 02:43:43.110 --> 02:43:43.120 align:start position:0% bottom bar here well as with the top bar 02:43:43.120 --> 02:43:47.309 align:start position:0% bottom bar here well as with the top bar it<02:43:43.399> only<02:43:44.240> happens<02:43:44.920> on<02:43:45.399> mobile<02:43:45.800> devices<02:43:46.760> I<02:43:46.840> mean 02:43:47.309 --> 02:43:47.319 align:start position:0% it only happens on mobile devices I mean 02:43:47.319 --> 02:43:50.429 align:start position:0% it only happens on mobile devices I mean how<02:43:47.680> cool<02:43:47.960> is<02:43:48.200> this<02:43:48.880> this<02:43:49.040> is<02:43:49.240> a<02:43:49.560> special 02:43:50.429 --> 02:43:50.439 align:start position:0% how cool is this this is a special 02:43:50.439 --> 02:43:53.670 align:start position:0% how cool is this this is a special native<02:43:51.160> mobile<02:43:51.760> like<02:43:52.319> Bottom<02:43:52.680> bar<02:43:53.080> so<02:43:53.319> you<02:43:53.399> can 02:43:53.670 --> 02:43:53.680 align:start position:0% native mobile like Bottom bar so you can 02:43:53.680 --> 02:43:56.950 align:start position:0% native mobile like Bottom bar so you can press<02:43:54.160> your<02:43:55.160> so<02:43:55.359> you<02:43:55.439> can<02:43:55.680> navigate<02:43:56.160> your<02:43:56.439> app 02:43:56.950 --> 02:43:56.960 align:start position:0% press your so you can navigate your app 02:43:56.960 --> 02:44:00.070 align:start position:0% press your so you can navigate your app with<02:43:57.120> your<02:43:57.359> thumb<02:43:58.200> how<02:43:58.439> cool<02:43:58.680> is<02:43:58.880> that<02:43:59.600> so<02:43:59.880> now 02:44:00.070 --> 02:44:00.080 align:start position:0% with your thumb how cool is that so now 02:44:00.080 --> 02:44:02.230 align:start position:0% with your thumb how cool is that so now we're<02:44:00.240> going<02:44:00.319> to<02:44:00.560> definitely<02:44:00.920> stay<02:44:01.279> in<02:44:01.439> mobile 02:44:02.230 --> 02:44:02.240 align:start position:0% we're going to definitely stay in mobile 02:44:02.240 --> 02:44:05.790 align:start position:0% we're going to definitely stay in mobile view<02:44:03.240> we<02:44:03.359> can<02:44:03.800> return<02:44:04.600> back<02:44:04.920> to<02:44:05.160> our<02:44:05.399> root 02:44:05.790 --> 02:44:05.800 align:start position:0% view we can return back to our root 02:44:05.800 --> 02:44:09.070 align:start position:0% view we can return back to our root layout<02:44:06.560> and<02:44:06.840> move<02:44:07.399> to<02:44:07.600> our<02:44:07.840> Bottom<02:44:08.279> bar<02:44:08.880> as 02:44:09.070 --> 02:44:09.080 align:start position:0% layout and move to our Bottom bar as 02:44:09.080 --> 02:44:10.590 align:start position:0% layout and move to our Bottom bar as that's<02:44:09.319> going<02:44:09.439> to<02:44:09.560> be<02:44:09.680> the<02:44:09.840> component<02:44:10.439> we're 02:44:10.590 --> 02:44:10.600 align:start position:0% that's going to be the component we're 02:44:10.600 --> 02:44:12.990 align:start position:0% that's going to be the component we're going<02:44:10.680> to<02:44:10.880> implement<02:44:11.479> next<02:44:12.279> trust<02:44:12.560> me<02:44:12.840> it's 02:44:12.990 --> 02:44:13.000 align:start position:0% going to implement next trust me it's 02:44:13.000 --> 02:44:15.309 align:start position:0% going to implement next trust me it's not<02:44:13.200> going<02:44:13.359> to<02:44:13.520> be<02:44:13.840> that<02:44:14.200> complicated<02:44:15.200> we'll 02:44:15.309 --> 02:44:15.319 align:start position:0% not going to be that complicated we'll 02:44:15.319 --> 02:44:17.590 align:start position:0% not going to be that complicated we'll be<02:44:15.439> able<02:44:15.600> to<02:44:15.800> use<02:44:16.520> the<02:44:16.680> majority<02:44:17.080> of<02:44:17.240> things<02:44:17.479> we 02:44:17.590 --> 02:44:17.600 align:start position:0% be able to use the majority of things we 02:44:17.600 --> 02:44:19.950 align:start position:0% be able to use the majority of things we have<02:44:17.760> in<02:44:17.880> the<02:44:18.040> left<02:44:18.319> sidebar<02:44:19.120> to<02:44:19.319> make<02:44:19.479> it 02:44:19.950 --> 02:44:19.960 align:start position:0% have in the left sidebar to make it 02:44:19.960 --> 02:44:23.230 align:start position:0% have in the left sidebar to make it happen<02:44:20.960> so<02:44:21.279> first<02:44:21.479> of<02:44:21.640> all<02:44:22.160> let's<02:44:22.399> create<02:44:22.680> a 02:44:23.230 --> 02:44:23.240 align:start position:0% happen so first of all let's create a 02:44:23.240 --> 02:44:26.469 align:start position:0% happen so first of all let's create a section<02:44:24.240> and<02:44:24.520> that<02:44:24.760> section<02:44:25.520> is<02:44:25.720> going<02:44:25.960> to 02:44:26.469 --> 02:44:26.479 align:start position:0% section and that section is going to 02:44:26.479 --> 02:44:31.469 align:start position:0% section and that section is going to have<02:44:26.640> a<02:44:26.920> class<02:44:27.279> name<02:44:28.279> equal<02:44:28.600> to<02:44:29.479> bottom<02:44:30.479> dasar 02:44:31.469 --> 02:44:31.479 align:start position:0% have a class name equal to bottom dasar 02:44:31.479 --> 02:44:32.710 align:start position:0% have a class name equal to bottom dasar we<02:44:31.600> can 02:44:32.710 --> 02:44:32.720 align:start position:0% we can 02:44:32.720 --> 02:44:37.550 align:start position:0% we can import<02:44:33.720> a<02:44:34.359> link<02:44:35.359> as<02:44:35.520> well<02:44:35.720> as<02:44:35.960> use<02:44:36.560> location 02:44:37.550 --> 02:44:37.560 align:start position:0% import a link as well as use location 02:44:37.560 --> 02:44:39.230 align:start position:0% import a link as well as use location coming<02:44:37.920> from 02:44:39.230 --> 02:44:39.240 align:start position:0% coming from 02:44:39.240 --> 02:44:42.870 align:start position:0% coming from react<02:44:40.240> router<02:44:41.319> Dom<02:44:42.319> and<02:44:42.439> then<02:44:42.600> we<02:44:42.680> can 02:44:42.870 --> 02:44:42.880 align:start position:0% react router Dom and then we can 02:44:42.880 --> 02:44:45.590 align:start position:0% react router Dom and then we can initialize<02:44:43.560> that<02:44:43.800> path<02:44:44.080> name<02:44:44.640> to<02:44:44.800> know<02:44:45.399> on 02:44:45.590 --> 02:44:45.600 align:start position:0% initialize that path name to know on 02:44:45.600 --> 02:44:48.710 align:start position:0% initialize that path name to know on which<02:44:45.800> page<02:44:46.000> are<02:44:46.120> we<02:44:46.279> currently<02:44:46.680> on<02:44:47.520> so<02:44:47.840> const 02:44:48.710 --> 02:44:48.720 align:start position:0% which page are we currently on so const 02:44:48.720 --> 02:44:52.870 align:start position:0% which page are we currently on so const path<02:44:49.160> name<02:44:49.960> is<02:44:50.240> equal<02:44:50.560> to<02:44:51.359> use 02:44:52.870 --> 02:44:52.880 align:start position:0% path name is equal to use 02:44:52.880 --> 02:44:55.550 align:start position:0% path name is equal to use location<02:44:53.880> now<02:44:54.160> we<02:44:54.279> can<02:44:54.399> do<02:44:54.600> something<02:44:55.000> similar 02:44:55.550 --> 02:44:55.560 align:start position:0% location now we can do something similar 02:44:55.560 --> 02:44:57.830 align:start position:0% location now we can do something similar to<02:44:55.800> what<02:44:55.960> we've<02:44:56.160> done<02:44:56.359> with<02:44:56.479> the<02:44:56.680> sidebar<02:44:57.640> so 02:44:57.830 --> 02:44:57.840 align:start position:0% to what we've done with the sidebar so 02:44:57.840 --> 02:45:00.710 align:start position:0% to what we've done with the sidebar so let's<02:44:58.040> go<02:44:58.240> into<02:44:58.439> the<02:44:58.640> sidebar<02:44:59.600> and<02:44:59.800> let's<02:45:00.120> copy 02:45:00.710 --> 02:45:00.720 align:start position:0% let's go into the sidebar and let's copy 02:45:00.720 --> 02:45:04.070 align:start position:0% let's go into the sidebar and let's copy all<02:45:00.880> of<02:45:01.120> these<02:45:01.399> sidebar 02:45:04.070 --> 02:45:04.080 align:start position:0% 02:45:04.080 --> 02:45:06.670 align:start position:0% links<02:45:05.080> all<02:45:05.359> the<02:45:05.520> way<02:45:05.720> until<02:45:06.000> the 02:45:06.670 --> 02:45:06.680 align:start position:0% links all the way until the 02:45:06.680 --> 02:45:09.830 align:start position:0% links all the way until the end<02:45:07.680> and<02:45:07.800> then<02:45:08.080> paste<02:45:08.399> it<02:45:08.880> right<02:45:09.160> here<02:45:09.520> in<02:45:09.680> the 02:45:09.830 --> 02:45:09.840 align:start position:0% end and then paste it right here in the 02:45:09.840 --> 02:45:13.790 align:start position:0% end and then paste it right here in the bottom<02:45:10.600> bar<02:45:11.600> so<02:45:11.840> essentially<02:45:12.840> we<02:45:13.000> are<02:45:13.439> going 02:45:13.790 --> 02:45:13.800 align:start position:0% bottom bar so essentially we are going 02:45:13.800 --> 02:45:17.150 align:start position:0% bottom bar so essentially we are going over<02:45:14.399> now<02:45:14.720> the<02:45:14.880> side<02:45:15.399> links<02:45:15.760> this<02:45:15.960> time<02:45:16.600> but 02:45:17.150 --> 02:45:17.160 align:start position:0% over now the side links this time but 02:45:17.160 --> 02:45:20.030 align:start position:0% over now the side links this time but Bottom<02:45:17.920> bar<02:45:18.600> links<02:45:19.439> which<02:45:19.560> you<02:45:19.720> have<02:45:19.840> to 02:45:20.030 --> 02:45:20.040 align:start position:0% Bottom bar links which you have to 02:45:20.040 --> 02:45:23.510 align:start position:0% Bottom bar links which you have to import<02:45:20.479> from<02:45:20.760> at<02:45:21.399> SL<02:45:21.880> constants<02:45:22.880> in<02:45:23.120> this<02:45:23.319> case 02:45:23.510 --> 02:45:23.520 align:start position:0% import from at SL constants in this case 02:45:23.520 --> 02:45:26.030 align:start position:0% import from at SL constants in this case we<02:45:23.640> don't<02:45:23.840> need<02:45:24.000> to<02:45:24.240> provide<02:45:24.840> the 02:45:26.030 --> 02:45:26.040 align:start position:0% we don't need to provide the 02:45:26.040 --> 02:45:28.429 align:start position:0% we don't need to provide the interface<02:45:27.040> and<02:45:27.279> instead<02:45:27.520> of<02:45:27.640> a<02:45:27.760> nav<02:45:28.080> link 02:45:28.429 --> 02:45:28.439 align:start position:0% interface and instead of a nav link 02:45:28.439 --> 02:45:30.590 align:start position:0% interface and instead of a nav link we're<02:45:28.600> going<02:45:28.680> to<02:45:28.840> use<02:45:29.240> a 02:45:30.590 --> 02:45:30.600 align:start position:0% we're going to use a 02:45:30.600 --> 02:45:33.870 align:start position:0% we're going to use a link<02:45:31.600> now<02:45:31.800> if<02:45:31.880> you<02:45:32.040> save<02:45:32.439> this<02:45:32.960> already<02:45:33.680> it's 02:45:33.870 --> 02:45:33.880 align:start position:0% link now if you save this already it's 02:45:33.880 --> 02:45:36.790 align:start position:0% link now if you save this already it's looking<02:45:34.520> okay<02:45:35.240> but<02:45:35.399> we<02:45:35.520> can<02:45:35.680> make<02:45:35.800> it<02:45:36.000> look 02:45:36.790 --> 02:45:36.800 align:start position:0% looking okay but we can make it look 02:45:36.800 --> 02:45:40.030 align:start position:0% looking okay but we can make it look better<02:45:37.800> instead<02:45:38.120> of<02:45:38.279> a<02:45:38.600> left<02:45:39.000> sidebar<02:45:39.479> link 02:45:40.030 --> 02:45:40.040 align:start position:0% better instead of a left sidebar link 02:45:40.040 --> 02:45:43.710 align:start position:0% better instead of a left sidebar link you<02:45:40.120> can<02:45:40.279> say<02:45:40.720> Bottom<02:45:41.680> bar<02:45:42.319> link<02:45:43.200> but<02:45:43.359> in<02:45:43.560> this 02:45:43.710 --> 02:45:43.720 align:start position:0% you can say Bottom bar link but in this 02:45:43.720 --> 02:45:45.630 align:start position:0% you can say Bottom bar link but in this case<02:45:43.920> we<02:45:44.040> don't<02:45:44.279> even<02:45:44.439> need<02:45:44.640> an<02:45:44.800> l 02:45:45.630 --> 02:45:45.640 align:start position:0% case we don't even need an l 02:45:45.640 --> 02:45:47.790 align:start position:0% case we don't even need an l everything<02:45:45.960> is<02:45:46.080> going<02:45:46.240> to<02:45:46.399> be<02:45:46.560> in<02:45:46.680> a<02:45:46.880> link<02:45:47.600> so 02:45:47.790 --> 02:45:47.800 align:start position:0% everything is going to be in a link so 02:45:47.800 --> 02:45:50.030 align:start position:0% everything is going to be in a link so simply<02:45:48.240> copy<02:45:48.600> the<02:45:48.760> key<02:45:49.200> and<02:45:49.359> the<02:45:49.560> class<02:45:49.840> name 02:45:50.030 --> 02:45:50.040 align:start position:0% simply copy the key and the class name 02:45:50.040 --> 02:45:53.870 align:start position:0% simply copy the key and the class name from<02:45:50.200> the<02:45:50.720> LI<02:45:51.720> remove<02:45:52.080> it<02:45:52.640> completely<02:45:53.640> as<02:45:53.760> well 02:45:53.870 --> 02:45:53.880 align:start position:0% from the LI remove it completely as well 02:45:53.880 --> 02:45:56.429 align:start position:0% from the LI remove it completely as well as<02:45:54.000> the<02:45:54.120> ending<02:45:54.520> tag<02:45:55.520> and<02:45:55.680> then<02:45:55.920> add<02:45:56.120> it 02:45:56.429 --> 02:45:56.439 align:start position:0% as the ending tag and then add it 02:45:56.439 --> 02:45:58.190 align:start position:0% as the ending tag and then add it instead<02:45:56.760> of<02:45:56.920> the<02:45:57.120> class<02:45:57.399> name<02:45:57.680> right<02:45:57.840> here<02:45:58.000> to 02:45:58.190 --> 02:45:58.200 align:start position:0% instead of the class name right here to 02:45:58.200 --> 02:45:59.230 align:start position:0% instead of the class name right here to the 02:45:59.230 --> 02:45:59.240 align:start position:0% the 02:45:59.240 --> 02:46:02.670 align:start position:0% the link<02:46:00.240> there<02:46:00.399> we<02:46:00.600> go<02:46:01.040> that's<02:46:01.240> more<02:46:01.560> like<02:46:01.760> it 02:46:02.670 --> 02:46:02.680 align:start position:0% link there we go that's more like it 02:46:02.680 --> 02:46:04.990 align:start position:0% link there we go that's more like it let's<02:46:02.920> put<02:46:03.120> this<02:46:03.200> in<02:46:03.319> a<02:46:03.439> new<02:46:03.760> line<02:46:04.760> let's 02:46:04.990 --> 02:46:05.000 align:start position:0% let's put this in a new line let's 02:46:05.000 --> 02:46:07.030 align:start position:0% let's put this in a new line let's remove<02:46:05.399> the<02:46:05.560> Bottom<02:46:05.840> bar<02:46:06.120> link<02:46:06.600> I<02:46:06.720> don't<02:46:06.880> think 02:46:07.030 --> 02:46:07.040 align:start position:0% remove the Bottom bar link I don't think 02:46:07.040 --> 02:46:09.230 align:start position:0% remove the Bottom bar link I don't think we'll<02:46:07.240> need<02:46:07.439> it<02:46:07.600> in<02:46:07.800> this<02:46:08.040> case<02:46:08.720> we<02:46:08.880> just<02:46:09.080> want 02:46:09.230 --> 02:46:09.240 align:start position:0% we'll need it in this case we just want 02:46:09.240 --> 02:46:11.190 align:start position:0% we'll need it in this case we just want to<02:46:09.399> apply<02:46:09.720> a<02:46:09.840> couple<02:46:10.040> of<02:46:10.240> class<02:46:10.520> names<02:46:10.880> if<02:46:11.040> we 02:46:11.190 --> 02:46:11.200 align:start position:0% to apply a couple of class names if we 02:46:11.200 --> 02:46:14.230 align:start position:0% to apply a couple of class names if we are<02:46:11.600> active<02:46:12.279> so<02:46:12.640> if<02:46:13.000> the<02:46:13.160> current<02:46:13.520> link<02:46:13.920> is 02:46:14.230 --> 02:46:14.240 align:start position:0% are active so if the current link is 02:46:14.240 --> 02:46:16.790 align:start position:0% are active so if the current link is active<02:46:15.120> in<02:46:15.359> that<02:46:15.600> case<02:46:16.000> we<02:46:16.160> want<02:46:16.319> to<02:46:16.520> provide 02:46:16.790 --> 02:46:16.800 align:start position:0% active in that case we want to provide 02:46:16.800 --> 02:46:21.469 align:start position:0% active in that case we want to provide it<02:46:17.120> a<02:46:17.399> BG<02:46:17.800> primary<02:46:18.640> 500<02:46:19.640> as<02:46:19.840> well<02:46:20.160> as<02:46:20.319> a<02:46:20.560> rounded 02:46:21.469 --> 02:46:21.479 align:start position:0% it a BG primary 500 as well as a rounded 02:46:21.479 --> 02:46:24.830 align:start position:0% it a BG primary 500 as well as a rounded Das<02:46:22.120> 10<02:46:22.520> pixels<02:46:23.279> to<02:46:23.479> make<02:46:23.600> it<02:46:23.840> just<02:46:24.000> a<02:46:24.120> bit 02:46:24.830 --> 02:46:24.840 align:start position:0% Das 10 pixels to make it just a bit 02:46:24.840 --> 02:46:27.790 align:start position:0% Das 10 pixels to make it just a bit rounded<02:46:25.840> and<02:46:26.040> then<02:46:26.520> usually<02:46:27.200> it<02:46:27.359> has<02:46:27.479> to<02:46:27.640> be 02:46:27.790 --> 02:46:27.800 align:start position:0% rounded and then usually it has to be 02:46:27.800 --> 02:46:31.070 align:start position:0% rounded and then usually it has to be Flex<02:46:28.279> Center<02:46:28.920> so<02:46:29.120> we<02:46:29.279> Center<02:46:29.680> the<02:46:29.800> link<02:46:30.760> see 02:46:31.070 --> 02:46:31.080 align:start position:0% Flex Center so we Center the link see 02:46:31.080 --> 02:46:33.389 align:start position:0% Flex Center so we Center the link see how<02:46:31.240> it<02:46:31.319> changes<02:46:31.680> on<02:46:31.840> the<02:46:32.040> bottom<02:46:33.040> we<02:46:33.160> want<02:46:33.240> to 02:46:33.389 --> 02:46:33.399 align:start position:0% how it changes on the bottom we want to 02:46:33.399 --> 02:46:35.830 align:start position:0% how it changes on the bottom we want to give<02:46:33.520> it<02:46:33.600> a<02:46:33.760> flex<02:46:34.120> call<02:46:34.720> so<02:46:34.880> it<02:46:35.040> appears<02:46:35.439> one<02:46:35.600> on 02:46:35.830 --> 02:46:35.840 align:start position:0% give it a flex call so it appears one on 02:46:35.840 --> 02:46:37.950 align:start position:0% give it a flex call so it appears one on top<02:46:36.000> of<02:46:36.200> another<02:46:36.800> because<02:46:37.000> on<02:46:37.200> mobile<02:46:37.600> we<02:46:37.760> have 02:46:37.950 --> 02:46:37.960 align:start position:0% top of another because on mobile we have 02:46:37.960 --> 02:46:40.990 align:start position:0% top of another because on mobile we have more<02:46:38.319> vertical<02:46:38.760> space<02:46:39.160> than<02:46:39.800> horizontal<02:46:40.800> a 02:46:40.990 --> 02:46:41.000 align:start position:0% more vertical space than horizontal a 02:46:41.000 --> 02:46:43.510 align:start position:0% more vertical space than horizontal a gap<02:46:41.240> of<02:46:41.399> one<02:46:41.720> to<02:46:41.880> create<02:46:42.160> some<02:46:42.399> space<02:46:43.319> a 02:46:43.510 --> 02:46:43.520 align:start position:0% gap of one to create some space a 02:46:43.520 --> 02:46:46.469 align:start position:0% gap of one to create some space a padding<02:46:43.880> of<02:46:44.040> two<02:46:44.800> and<02:46:45.000> and<02:46:45.200> a<02:46:45.399> transition<02:46:46.359> this 02:46:46.469 --> 02:46:46.479 align:start position:0% padding of two and and a transition this 02:46:46.479 --> 02:46:48.950 align:start position:0% padding of two and and a transition this is<02:46:46.640> going<02:46:46.800> to<02:46:47.120> just<02:46:47.479> make<02:46:47.600> it<02:46:47.840> animate<02:46:48.319> slowly 02:46:48.950 --> 02:46:48.960 align:start position:0% is going to just make it animate slowly 02:46:48.960 --> 02:46:52.510 align:start position:0% is going to just make it animate slowly once<02:46:49.160> we<02:46:49.560> hover<02:46:50.560> finally<02:46:51.359> we<02:46:51.600> want<02:46:51.760> to<02:46:52.080> style 02:46:52.510 --> 02:46:52.520 align:start position:0% once we hover finally we want to style 02:46:52.520 --> 02:46:56.030 align:start position:0% once we hover finally we want to style the<02:46:52.680> image<02:46:53.479> by<02:46:53.800> just<02:46:54.000> giving<02:46:54.279> it<02:46:55.000> on<02:46:55.439> active 02:46:56.030 --> 02:46:56.040 align:start position:0% the image by just giving it on active 02:46:56.040 --> 02:46:59.110 align:start position:0% the image by just giving it on active invert<02:46:56.600> white<02:46:57.479> and<02:46:57.680> then<02:46:58.319> instead<02:46:58.600> of<02:46:58.720> a<02:46:58.840> link 02:46:59.110 --> 02:46:59.120 align:start position:0% invert white and then instead of a link 02:46:59.120 --> 02:47:02.750 align:start position:0% invert white and then instead of a link label<02:46:59.920> let's<02:47:00.160> simply<02:47:00.439> create<02:47:00.640> a<02:47:00.800> P<02:47:01.600> tag<02:47:02.600> that's 02:47:02.750 --> 02:47:02.760 align:start position:0% label let's simply create a P tag that's 02:47:02.760 --> 02:47:04.910 align:start position:0% label let's simply create a P tag that's going<02:47:02.920> to<02:47:03.080> render<02:47:03.479> the<02:47:03.600> link 02:47:04.910 --> 02:47:04.920 align:start position:0% going to render the link 02:47:04.920 --> 02:47:07.349 align:start position:0% going to render the link label<02:47:05.920> but<02:47:06.160> it's<02:47:06.319> going<02:47:06.479> to<02:47:06.640> have<02:47:06.760> a<02:47:07.040> class 02:47:07.349 --> 02:47:07.359 align:start position:0% label but it's going to have a class 02:47:07.359 --> 02:47:12.630 align:start position:0% label but it's going to have a class name<02:47:08.319> equal<02:47:08.640> to<02:47:09.040> Tiny<02:47:09.760> Das<02:47:10.200> medium<02:47:11.200> text- 02:47:12.630 --> 02:47:12.640 align:start position:0% name equal to Tiny Das medium text- 02:47:12.640 --> 02:47:15.550 align:start position:0% name equal to Tiny Das medium text- light-2<02:47:13.640> so<02:47:13.800> if<02:47:13.920> we<02:47:14.080> save<02:47:14.319> it<02:47:15.080> this<02:47:15.200> is<02:47:15.359> now 02:47:15.550 --> 02:47:15.560 align:start position:0% light-2 so if we save it this is now 02:47:15.560 --> 02:47:17.870 align:start position:0% light-2 so if we save it this is now looking<02:47:15.920> good<02:47:16.520> but<02:47:16.720> is<02:47:16.840> it<02:47:17.000> looking<02:47:17.359> close<02:47:17.760> to 02:47:17.870 --> 02:47:17.880 align:start position:0% looking good but is it looking close to 02:47:17.880 --> 02:47:19.030 align:start position:0% looking good but is it looking close to the<02:47:18.000> finished 02:47:19.030 --> 02:47:19.040 align:start position:0% the finished 02:47:19.040 --> 02:47:21.990 align:start position:0% the finished version<02:47:20.040> okay<02:47:20.680> we're<02:47:20.960> almost<02:47:21.399> there<02:47:21.800> the 02:47:21.990 --> 02:47:22.000 align:start position:0% version okay we're almost there the 02:47:22.000 --> 02:47:24.309 align:start position:0% version okay we're almost there the icons<02:47:22.399> have<02:47:22.560> to<02:47:22.640> be<02:47:22.760> a<02:47:22.840> bit<02:47:23.080> smaller<02:47:23.880> so<02:47:24.040> we<02:47:24.120> can 02:47:24.309 --> 02:47:24.319 align:start position:0% icons have to be a bit smaller so we can 02:47:24.319 --> 02:47:29.950 align:start position:0% icons have to be a bit smaller so we can add<02:47:24.520> a<02:47:25.040> width<02:47:26.040> of<02:47:26.680> 16<02:47:27.680> and<02:47:27.960> a<02:47:28.240> height<02:47:28.920> of<02:47:29.160> 16<02:47:29.760> as 02:47:29.950 --> 02:47:29.960 align:start position:0% add a width of 16 and a height of 16 as 02:47:29.960 --> 02:47:34.630 align:start position:0% add a width of 16 and a height of 16 as well<02:47:30.960> and<02:47:31.240> now<02:47:32.160> I<02:47:32.319> think<02:47:33.040> we're<02:47:33.439> there<02:47:34.279> keep<02:47:34.479> in 02:47:34.630 --> 02:47:34.640 align:start position:0% well and now I think we're there keep in 02:47:34.640 --> 02:47:37.230 align:start position:0% well and now I think we're there keep in mind<02:47:35.160> this<02:47:35.399> automatically<02:47:36.040> works<02:47:36.359> as<02:47:36.560> well<02:47:37.080> so 02:47:37.230 --> 02:47:37.240 align:start position:0% mind this automatically works as well so 02:47:37.240 --> 02:47:40.150 align:start position:0% mind this automatically works as well so we<02:47:37.359> can<02:47:37.520> now<02:47:37.800> navigate<02:47:38.520> on<02:47:38.760> mobile<02:47:39.200> devices 02:47:40.150 --> 02:47:40.160 align:start position:0% we can now navigate on mobile devices 02:47:40.160 --> 02:47:44.429 align:start position:0% we can now navigate on mobile devices too<02:47:41.160> this<02:47:41.319> is<02:47:41.720> pretty<02:47:42.479> crazy<02:47:43.479> and<02:47:43.800> it<02:47:44.000> also<02:47:44.279> of 02:47:44.429 --> 02:47:44.439 align:start position:0% too this is pretty crazy and it also of 02:47:44.439 --> 02:47:46.070 align:start position:0% too this is pretty crazy and it also of course<02:47:44.880> works<02:47:45.160> with<02:47:45.319> a 02:47:46.070 --> 02:47:46.080 align:start position:0% course works with a 02:47:46.080 --> 02:47:48.910 align:start position:0% course works with a sidebar<02:47:47.080> this<02:47:47.200> is<02:47:47.439> great<02:47:48.319> and<02:47:48.600> I<02:47:48.680> would<02:47:48.840> want 02:47:48.910 --> 02:47:48.920 align:start position:0% sidebar this is great and I would want 02:47:48.920 --> 02:47:51.550 align:start position:0% sidebar this is great and I would want to<02:47:49.120> focus<02:47:49.439> on<02:47:49.600> the<02:47:49.800> homepage<02:47:50.479> so<02:47:50.960> bad<02:47:51.359> because 02:47:51.550 --> 02:47:51.560 align:start position:0% to focus on the homepage so bad because 02:47:51.560 --> 02:47:53.070 align:start position:0% to focus on the homepage so bad because we've<02:47:51.680> been<02:47:51.840> waiting<02:47:52.120> to<02:47:52.279> implement<02:47:52.720> this 02:47:53.070 --> 02:47:53.080 align:start position:0% we've been waiting to implement this 02:47:53.080 --> 02:47:56.150 align:start position:0% we've been waiting to implement this beautiful<02:47:53.600> homepage<02:47:54.040> for<02:47:54.200> a<02:47:54.399> long<02:47:54.760> time<02:47:55.760> but 02:47:56.150 --> 02:47:56.160 align:start position:0% beautiful homepage for a long time but 02:47:56.160 --> 02:47:57.710 align:start position:0% beautiful homepage for a long time but I'm<02:47:56.279> sure<02:47:56.600> that<02:47:56.720> you're<02:47:56.960> aware<02:47:57.359> that<02:47:57.479> we're 02:47:57.710 --> 02:47:57.720 align:start position:0% I'm sure that you're aware that we're 02:47:57.720 --> 02:48:00.710 align:start position:0% I'm sure that you're aware that we're missing<02:47:58.160> something<02:47:58.920> before<02:47:59.279> we<02:47:59.600> dive<02:47:59.920> into<02:48:00.160> it 02:48:00.710 --> 02:48:00.720 align:start position:0% missing something before we dive into it 02:48:00.720 --> 02:48:05.030 align:start position:0% missing something before we dive into it right<02:48:01.680> and<02:48:01.920> that<02:48:02.399> something<02:48:03.399> is<02:48:03.640> create<02:48:04.080> post 02:48:05.030 --> 02:48:05.040 align:start position:0% right and that something is create post 02:48:05.040 --> 02:48:07.389 align:start position:0% right and that something is create post how<02:48:05.200> can<02:48:05.359> we<02:48:05.479> see<02:48:05.800> the<02:48:06.000> homepage<02:48:06.800> if<02:48:06.920> we<02:48:07.120> don't 02:48:07.389 --> 02:48:07.399 align:start position:0% how can we see the homepage if we don't 02:48:07.399 --> 02:48:10.790 align:start position:0% how can we see the homepage if we don't yet<02:48:07.680> have<02:48:07.960> any<02:48:08.560> posts<02:48:09.560> so<02:48:10.120> I'll<02:48:10.319> have<02:48:10.439> to<02:48:10.640> keep 02:48:10.790 --> 02:48:10.800 align:start position:0% yet have any posts so I'll have to keep 02:48:10.800 --> 02:48:12.590 align:start position:0% yet have any posts so I'll have to keep you<02:48:10.920> waiting<02:48:11.240> a<02:48:11.359> bit<02:48:11.560> longer<02:48:11.920> until<02:48:12.160> we<02:48:12.279> do<02:48:12.479> the 02:48:12.590 --> 02:48:12.600 align:start position:0% you waiting a bit longer until we do the 02:48:12.600 --> 02:48:15.910 align:start position:0% you waiting a bit longer until we do the homepage<02:48:13.600> we'll<02:48:13.960> have<02:48:14.120> to<02:48:14.319> focus<02:48:15.200> on<02:48:15.520> create 02:48:15.910 --> 02:48:15.920 align:start position:0% homepage we'll have to focus on create 02:48:15.920 --> 02:48:18.790 align:start position:0% homepage we'll have to focus on create post<02:48:16.359> first<02:48:17.319> so<02:48:17.479> let's<02:48:17.760> collapse<02:48:18.240> this<02:48:18.640> we 02:48:18.790 --> 02:48:18.800 align:start position:0% post first so let's collapse this we 02:48:18.800 --> 02:48:20.750 align:start position:0% post first so let's collapse this we have<02:48:18.920> a<02:48:19.080> beautiful<02:48:19.520> create<02:48:19.840> post<02:48:20.120> on<02:48:20.279> mobile 02:48:20.750 --> 02:48:20.760 align:start position:0% have a beautiful create post on mobile 02:48:20.760 --> 02:48:24.630 align:start position:0% have a beautiful create post on mobile as<02:48:21.160> well<02:48:22.160> we<02:48:22.279> can<02:48:22.640> close<02:48:23.640> this<02:48:24.200> the<02:48:24.359> root 02:48:24.630 --> 02:48:24.640 align:start position:0% as well we can close this the root 02:48:24.640 --> 02:48:28.030 align:start position:0% as well we can close this the root layout<02:48:25.040> as<02:48:25.240> well<02:48:25.960> and<02:48:26.120> we<02:48:26.200> can<02:48:26.399> move<02:48:26.920> into 02:48:28.030 --> 02:48:28.040 align:start position:0% layout as well and we can move into 02:48:28.040 --> 02:48:32.630 align:start position:0% layout as well and we can move into create<02:48:29.040> post<02:48:30.040> page<02:48:31.040> as<02:48:31.160> soon<02:48:31.359> as<02:48:31.520> we<02:48:31.680> have<02:48:32.000> this 02:48:32.630 --> 02:48:32.640 align:start position:0% create post page as soon as we have this 02:48:32.640 --> 02:48:34.750 align:start position:0% create post page as soon as we have this we'll<02:48:32.840> be<02:48:33.080> ready<02:48:33.359> to<02:48:33.600> fetch<02:48:34.000> those<02:48:34.279> posts<02:48:34.600> on 02:48:34.750 --> 02:48:34.760 align:start position:0% we'll be ready to fetch those posts on 02:48:34.760 --> 02:48:37.990 align:start position:0% we'll be ready to fetch those posts on the<02:48:34.920> homepage<02:48:35.800> and<02:48:36.040> display<02:48:36.520> them<02:48:37.520> so<02:48:37.760> first 02:48:37.990 --> 02:48:38.000 align:start position:0% the homepage and display them so first 02:48:38.000 --> 02:48:40.550 align:start position:0% the homepage and display them so first of<02:48:38.160> all<02:48:38.840> the<02:48:38.960> layout<02:48:39.920> and<02:48:40.120> then<02:48:40.319> the 02:48:40.550 --> 02:48:40.560 align:start position:0% of all the layout and then the 02:48:40.560 --> 02:48:43.389 align:start position:0% of all the layout and then the functionality<02:48:41.560> of<02:48:41.840> creating<02:48:42.680> and<02:48:42.960> finally 02:48:43.389 --> 02:48:43.399 align:start position:0% functionality of creating and finally 02:48:43.399 --> 02:48:46.469 align:start position:0% functionality of creating and finally reading<02:48:43.920> those<02:48:44.200> posts<02:48:44.800> on<02:48:44.960> the<02:48:45.200> homepage<02:48:46.200> once 02:48:46.469 --> 02:48:46.479 align:start position:0% reading those posts on the homepage once 02:48:46.479 --> 02:48:50.309 align:start position:0% reading those posts on the homepage once again<02:48:47.160> exciting<02:48:47.720> stuff<02:48:48.319> coming<02:48:48.760> really<02:48:49.319> soon 02:48:50.309 --> 02:48:50.319 align:start position:0% again exciting stuff coming really soon 02:48:50.319 --> 02:48:53.670 align:start position:0% again exciting stuff coming really soon to<02:48:50.760> start<02:48:51.160> creating<02:48:51.680> our<02:48:52.000> create<02:48:52.439> post<02:48:52.960> page 02:48:53.670 --> 02:48:53.680 align:start position:0% to start creating our create post page 02:48:53.680 --> 02:48:57.110 align:start position:0% to start creating our create post page we<02:48:53.800> can<02:48:54.000> wrap<02:48:54.479> everything<02:48:55.040> inside<02:48:55.359> of<02:48:55.479> a<02:48:56.120> div 02:48:57.110 --> 02:48:57.120 align:start position:0% we can wrap everything inside of a div 02:48:57.120 --> 02:49:00.190 align:start position:0% we can wrap everything inside of a div that<02:48:57.359> div<02:48:57.720> is<02:48:57.880> going<02:48:58.040> to<02:48:58.319> have<02:48:58.640> a<02:48:58.960> class<02:48:59.359> name 02:49:00.190 --> 02:49:00.200 align:start position:0% that div is going to have a class name 02:49:00.200 --> 02:49:03.070 align:start position:0% that div is going to have a class name equal<02:49:00.520> to<02:49:00.760> flex<02:49:01.520> and<02:49:01.640> then<02:49:01.840> Flex<02:49:02.279> one<02:49:02.680> so<02:49:02.880> it 02:49:03.070 --> 02:49:03.080 align:start position:0% equal to flex and then Flex one so it 02:49:03.080 --> 02:49:05.630 align:start position:0% equal to flex and then Flex one so it expands<02:49:03.800> nicely<02:49:04.800> let's<02:49:05.040> go<02:49:05.240> back<02:49:05.359> to<02:49:05.479> our 02:49:05.630 --> 02:49:05.640 align:start position:0% expands nicely let's go back to our 02:49:05.640 --> 02:49:08.870 align:start position:0% expands nicely let's go back to our current<02:49:06.160> website<02:49:07.160> and<02:49:07.439> let's<02:49:07.720> add<02:49:08.080> another 02:49:08.870 --> 02:49:08.880 align:start position:0% current website and let's add another 02:49:08.880 --> 02:49:11.950 align:start position:0% current website and let's add another div<02:49:09.279> that's<02:49:09.640> inside<02:49:10.120> of<02:49:10.319> this<02:49:10.520> existing<02:49:10.960> div 02:49:11.950 --> 02:49:11.960 align:start position:0% div that's inside of this existing div 02:49:11.960 --> 02:49:14.309 align:start position:0% div that's inside of this existing div that's<02:49:12.160> going<02:49:12.319> to<02:49:12.439> have<02:49:12.600> a<02:49:12.800> class<02:49:13.160> name<02:49:14.000> equal 02:49:14.309 --> 02:49:14.319 align:start position:0% that's going to have a class name equal 02:49:14.319 --> 02:49:17.030 align:start position:0% that's going to have a class name equal to<02:49:14.800> common<02:49:15.399> Das<02:49:15.800> container<02:49:16.640> as<02:49:16.800> we're<02:49:16.920> going 02:49:17.030 --> 02:49:17.040 align:start position:0% to common Das container as we're going 02:49:17.040 --> 02:49:19.790 align:start position:0% to common Das container as we're going to<02:49:17.200> reuse<02:49:17.600> it<02:49:17.920> a<02:49:18.040> couple<02:49:18.279> of<02:49:18.520> times<02:49:19.439> within 02:49:19.790 --> 02:49:19.800 align:start position:0% to reuse it a couple of times within 02:49:19.800 --> 02:49:22.510 align:start position:0% to reuse it a couple of times within this<02:49:20.000> div<02:49:20.439> we<02:49:20.560> can<02:49:20.760> have<02:49:21.040> another<02:49:21.439> div<02:49:22.239> and 02:49:22.510 --> 02:49:22.520 align:start position:0% this div we can have another div and 02:49:22.520 --> 02:49:25.950 align:start position:0% this div we can have another div and this<02:49:22.760> div<02:49:23.120> is<02:49:23.239> going<02:49:23.479> to<02:49:23.920> render<02:49:24.399> an<02:49:24.960> image 02:49:25.950 --> 02:49:25.960 align:start position:0% this div is going to render an image 02:49:25.960 --> 02:49:28.070 align:start position:0% this div is going to render an image this<02:49:26.160> image<02:49:26.680> is<02:49:26.840> going<02:49:27.000> to<02:49:27.200> have<02:49:27.319> a<02:49:27.520> source 02:49:28.070 --> 02:49:28.080 align:start position:0% this image is going to have a source 02:49:28.080 --> 02:49:33.830 align:start position:0% this image is going to have a source equal<02:49:28.359> to<02:49:28.560> for<02:49:28.960> slash<02:49:29.520> assets<02:49:30.520> SL<02:49:31.160> icons<02:49:32.160> SL 02:49:33.830 --> 02:49:33.840 align:start position:0% equal to for slash assets SL icons SL 02:49:33.840 --> 02:49:35.349 align:start position:0% equal to for slash assets SL icons SL a-post 02:49:35.349 --> 02:49:35.359 align:start position:0% a-post 02:49:35.359 --> 02:49:38.190 align:start position:0% a-post SVG<02:49:36.359> it's<02:49:36.520> also<02:49:36.720> going<02:49:36.880> to<02:49:37.040> have<02:49:37.160> a<02:49:37.399> width<02:49:37.800> of 02:49:38.190 --> 02:49:38.200 align:start position:0% SVG it's also going to have a width of 02:49:38.200 --> 02:49:42.389 align:start position:0% SVG it's also going to have a width of 36<02:49:39.200> and<02:49:39.399> a<02:49:39.680> height<02:49:40.160> of<02:49:40.800> 36<02:49:41.800> and<02:49:42.000> it's<02:49:42.120> going<02:49:42.279> to 02:49:42.389 --> 02:49:42.399 align:start position:0% 36 and a height of 36 and it's going to 02:49:42.399 --> 02:49:45.429 align:start position:0% 36 and a height of 36 and it's going to have<02:49:42.520> an<02:49:42.640> Al<02:49:43.000> tag<02:49:43.399> of<02:49:43.840> ad<02:49:44.760> that's<02:49:45.000> because<02:49:45.319> this 02:49:45.429 --> 02:49:45.439 align:start position:0% have an Al tag of ad that's because this 02:49:45.439 --> 02:49:48.710 align:start position:0% have an Al tag of ad that's because this is<02:49:45.600> going<02:49:45.760> to<02:49:45.840> be<02:49:46.000> an<02:49:46.160> icon<02:49:46.479> to<02:49:46.760> add<02:49:47.080> a<02:49:47.720> post 02:49:48.710 --> 02:49:48.720 align:start position:0% is going to be an icon to add a post 02:49:48.720 --> 02:49:51.429 align:start position:0% is going to be an icon to add a post finally<02:49:49.359> we<02:49:49.439> can<02:49:49.640> create<02:49:49.880> an<02:49:50.040> H2<02:49:50.920> right<02:49:51.120> below 02:49:51.429 --> 02:49:51.439 align:start position:0% finally we can create an H2 right below 02:49:51.439 --> 02:49:54.389 align:start position:0% finally we can create an H2 right below it<02:49:51.800> that's<02:49:52.000> going<02:49:52.160> to<02:49:52.279> say<02:49:52.800> create 02:49:54.389 --> 02:49:54.399 align:start position:0% it that's going to say create 02:49:54.399 --> 02:49:57.510 align:start position:0% it that's going to say create post<02:49:55.399> there<02:49:55.560> we<02:49:55.760> go<02:49:56.200> we<02:49:56.319> can<02:49:56.479> style<02:49:56.800> it<02:49:56.960> a<02:49:57.080> bit 02:49:57.510 --> 02:49:57.520 align:start position:0% post there we go we can style it a bit 02:49:57.520 --> 02:50:01.870 align:start position:0% post there we go we can style it a bit by<02:49:57.760> giving<02:49:58.000> it<02:49:58.160> a<02:49:58.359> class<02:49:58.720> name<02:49:59.600> equal<02:49:59.920> to<02:50:00.120> H3 02:50:01.870 --> 02:50:01.880 align:start position:0% by giving it a class name equal to H3 02:50:01.880 --> 02:50:05.030 align:start position:0% by giving it a class name equal to H3 dasb<02:50:02.880> on<02:50:03.080> medium<02:50:03.520> devices 02:50:05.030 --> 02:50:05.040 align:start position:0% dasb on medium devices 02:50:05.040 --> 02:50:08.269 align:start position:0% dasb on medium devices H2 02:50:08.269 --> 02:50:08.279 align:start position:0% 02:50:08.279 --> 02:50:11.590 align:start position:0% dasb<02:50:09.279> it's<02:50:09.439> going<02:50:09.600> to<02:50:09.720> be<02:50:09.920> text<02:50:10.279> left<02:50:11.279> as<02:50:11.439> well 02:50:11.590 --> 02:50:11.600 align:start position:0% dasb it's going to be text left as well 02:50:11.600 --> 02:50:15.710 align:start position:0% dasb it's going to be text left as well as<02:50:11.840> w-<02:50:12.600> full<02:50:13.439> we<02:50:13.560> want<02:50:13.680> to<02:50:13.880> style<02:50:14.239> this<02:50:14.359> out<02:50:14.960> div 02:50:15.710 --> 02:50:15.720 align:start position:0% as w- full we want to style this out div 02:50:15.720 --> 02:50:18.630 align:start position:0% as w- full we want to style this out div by<02:50:15.840> giving<02:50:16.080> it<02:50:16.239> a<02:50:16.479> class<02:50:16.800> name<02:50:17.479> equal<02:50:17.760> to<02:50:18.000> Max 02:50:18.630 --> 02:50:18.640 align:start position:0% by giving it a class name equal to Max 02:50:18.640 --> 02:50:23.950 align:start position:0% by giving it a class name equal to Max dw-<02:50:19.640> 5xl<02:50:20.600> so<02:50:20.960> really<02:50:21.439> wide<02:50:22.640> width<02:50:23.640> we<02:50:23.800> also 02:50:23.950 --> 02:50:23.960 align:start position:0% dw- 5xl so really wide width we also 02:50:23.960 --> 02:50:25.510 align:start position:0% dw- 5xl so really wide width we also want<02:50:24.080> to<02:50:24.200> give<02:50:24.319> it<02:50:24.439> a<02:50:24.560> flex 02:50:25.510 --> 02:50:25.520 align:start position:0% want to give it a flex 02:50:25.520 --> 02:50:28.030 align:start position:0% want to give it a flex start<02:50:26.520> so<02:50:26.720> now<02:50:26.880> it<02:50:27.040> appears<02:50:27.359> as<02:50:27.479> a<02:50:27.600> flex 02:50:28.030 --> 02:50:28.040 align:start position:0% start so now it appears as a flex 02:50:28.040 --> 02:50:30.710 align:start position:0% start so now it appears as a flex container<02:50:29.040> a<02:50:29.279> gap<02:50:29.560> of<02:50:29.720> three<02:50:29.960> to<02:50:30.120> create<02:50:30.399> some 02:50:30.710 --> 02:50:30.720 align:start position:0% container a gap of three to create some 02:50:30.720 --> 02:50:35.830 align:start position:0% container a gap of three to create some space<02:50:31.720> a<02:50:31.960> justify<02:50:32.640> Das<02:50:32.960> start<02:50:33.960> and<02:50:34.200> a<02:50:34.600> w-o<02:50:35.600> for 02:50:35.830 --> 02:50:35.840 align:start position:0% space a justify Das start and a w-o for 02:50:35.840 --> 02:50:38.349 align:start position:0% space a justify Das start and a w-o for full<02:50:36.239> width<02:50:37.200> and<02:50:37.319> now<02:50:37.520> we<02:50:37.640> have<02:50:37.800> our<02:50:38.000> create 02:50:38.349 --> 02:50:38.359 align:start position:0% full width and now we have our create 02:50:38.359 --> 02:50:42.070 align:start position:0% full width and now we have our create post<02:50:39.279> similar<02:50:39.880> to<02:50:40.120> what<02:50:40.279> we<02:50:40.479> have<02:50:40.840> here<02:50:41.840> but 02:50:42.070 --> 02:50:42.080 align:start position:0% post similar to what we have here but 02:50:42.080 --> 02:50:44.870 align:start position:0% post similar to what we have here but now<02:50:42.640> as<02:50:42.760> you<02:50:42.880> can<02:50:43.160> notice<02:50:44.160> we<02:50:44.319> start<02:50:44.640> start 02:50:44.870 --> 02:50:44.880 align:start position:0% now as you can notice we start start 02:50:44.880 --> 02:50:46.990 align:start position:0% now as you can notice we start start with<02:50:45.040> something<02:50:45.359> known<02:50:45.640> as<02:50:45.760> a<02:50:45.960> form<02:50:46.600> similar 02:50:46.990 --> 02:50:47.000 align:start position:0% with something known as a form similar 02:50:47.000 --> 02:50:49.429 align:start position:0% with something known as a form similar to<02:50:47.200> what<02:50:47.359> we've<02:50:47.600> done<02:50:48.080> with<02:50:48.239> our<02:50:48.479> sign<02:50:48.760> in<02:50:49.279> and 02:50:49.429 --> 02:50:49.439 align:start position:0% to what we've done with our sign in and 02:50:49.439 --> 02:50:52.070 align:start position:0% to what we've done with our sign in and the<02:50:49.680> sign<02:50:49.920> up<02:50:50.880> a<02:50:51.000> form<02:50:51.399> with<02:50:51.560> a<02:50:51.720> couple<02:50:51.960> of 02:50:52.070 --> 02:50:52.080 align:start position:0% the sign up a form with a couple of 02:50:52.080 --> 02:50:55.910 align:start position:0% the sign up a form with a couple of fields<02:50:52.840> a<02:50:53.080> caption<02:50:54.000> photos<02:50:54.880> location<02:50:55.399> and 02:50:55.910 --> 02:50:55.920 align:start position:0% fields a caption photos location and 02:50:55.920 --> 02:50:59.070 align:start position:0% fields a caption photos location and tags<02:50:56.920> so<02:50:57.160> in<02:50:57.359> this<02:50:57.600> case<02:50:58.200> we<02:50:58.319> want<02:50:58.479> to<02:50:58.680> create 02:50:59.070 --> 02:50:59.080 align:start position:0% tags so in this case we want to create 02:50:59.080 --> 02:51:01.870 align:start position:0% tags so in this case we want to create this<02:50:59.439> as<02:50:59.560> a<02:50:59.800> new<02:51:00.239> component<02:51:01.239> it's<02:51:01.399> going<02:51:01.560> to<02:51:01.720> be 02:51:01.870 --> 02:51:01.880 align:start position:0% this as a new component it's going to be 02:51:01.880 --> 02:51:05.469 align:start position:0% this as a new component it's going to be called<02:51:02.319> a<02:51:02.640> post<02:51:03.120> form<02:51:04.120> so<02:51:04.640> let's<02:51:04.840> create<02:51:05.080> a<02:51:05.239> new 02:51:05.469 --> 02:51:05.479 align:start position:0% called a post form so let's create a new 02:51:05.479 --> 02:51:08.070 align:start position:0% called a post form so let's create a new component<02:51:06.399> within<02:51:06.720> the<02:51:06.920> components<02:51:07.439> folder 02:51:08.070 --> 02:51:08.080 align:start position:0% component within the components folder 02:51:08.080 --> 02:51:10.309 align:start position:0% component within the components folder and<02:51:08.279> then<02:51:08.479> not<02:51:08.840> within<02:51:09.120> shared<02:51:09.840> but<02:51:10.080> rather 02:51:10.309 --> 02:51:10.319 align:start position:0% and then not within shared but rather 02:51:10.319 --> 02:51:13.550 align:start position:0% and then not within shared but rather within<02:51:10.560> a<02:51:10.720> new<02:51:10.960> folder<02:51:11.439> called<02:51:12.000> forms<02:51:13.000> finally 02:51:13.550 --> 02:51:13.560 align:start position:0% within a new folder called forms finally 02:51:13.560 --> 02:51:16.550 align:start position:0% within a new folder called forms finally within<02:51:13.800> the<02:51:13.920> form<02:51:14.319> we<02:51:14.640> can<02:51:14.760> create<02:51:15.200> a<02:51:15.560> post 02:51:16.550 --> 02:51:16.560 align:start position:0% within the form we can create a post 02:51:16.560 --> 02:51:21.349 align:start position:0% within the form we can create a post form.<02:51:17.840> TSX<02:51:18.840> inside<02:51:19.200> of<02:51:19.439> which<02:51:19.640> we<02:51:19.760> can<02:51:19.920> run 02:51:21.349 --> 02:51:21.359 align:start position:0% form. TSX inside of which we can run 02:51:21.359 --> 02:51:25.070 align:start position:0% form. TSX inside of which we can run RFC<02:51:22.359> now<02:51:23.000> back<02:51:23.200> in<02:51:23.319> our<02:51:23.560> create<02:51:23.960> post<02:51:24.760> we<02:51:24.880> can 02:51:25.070 --> 02:51:25.080 align:start position:0% RFC now back in our create post we can 02:51:25.080 --> 02:51:28.670 align:start position:0% RFC now back in our create post we can simply<02:51:25.399> render<02:51:26.120> the<02:51:26.359> post<02:51:26.800> form<02:51:27.680> component 02:51:28.670 --> 02:51:28.680 align:start position:0% simply render the post form component 02:51:28.680 --> 02:51:31.950 align:start position:0% simply render the post form component and<02:51:28.920> import<02:51:29.279> it<02:51:29.600> from<02:51:29.880> components<02:51:30.680> form<02:51:31.439> post 02:51:31.950 --> 02:51:31.960 align:start position:0% and import it from components form post 02:51:31.960 --> 02:51:35.349 align:start position:0% and import it from components form post form<02:51:32.960> there<02:51:33.120> we<02:51:33.319> go<02:51:34.239> this<02:51:34.439> now<02:51:34.640> allows<02:51:34.960> us<02:51:35.120> to 02:51:35.349 --> 02:51:35.359 align:start position:0% form there we go this now allows us to 02:51:35.359 --> 02:51:37.349 align:start position:0% form there we go this now allows us to dive<02:51:35.760> into<02:51:36.080> this<02:51:36.239> form<02:51:36.840> which<02:51:36.960> we're<02:51:37.080> going<02:51:37.200> to 02:51:37.349 --> 02:51:37.359 align:start position:0% dive into this form which we're going to 02:51:37.359 --> 02:51:40.110 align:start position:0% dive into this form which we're going to create<02:51:37.800> as<02:51:37.920> a<02:51:38.080> reusable<02:51:38.840> component<02:51:39.600> so<02:51:39.760> we<02:51:39.880> can 02:51:40.110 --> 02:51:40.120 align:start position:0% create as a reusable component so we can 02:51:40.120 --> 02:51:42.429 align:start position:0% create as a reusable component so we can reuse<02:51:40.520> it<02:51:40.760> later<02:51:41.040> on<02:51:41.560> in<02:51:41.800> many<02:51:42.080> different 02:51:42.429 --> 02:51:42.439 align:start position:0% reuse it later on in many different 02:51:42.439 --> 02:51:45.030 align:start position:0% reuse it later on in many different places<02:51:43.279> so<02:51:43.680> how<02:51:43.840> is<02:51:43.920> our<02:51:44.080> form<02:51:44.319> going<02:51:44.680> to<02:51:44.840> look 02:51:45.030 --> 02:51:45.040 align:start position:0% places so how is our form going to look 02:51:45.040 --> 02:51:48.070 align:start position:0% places so how is our form going to look like<02:51:46.000> well<02:51:46.200> it's<02:51:46.359> going<02:51:46.520> to<02:51:46.680> be<02:51:46.920> a<02:51:47.200> typical 02:51:48.070 --> 02:51:48.080 align:start position:0% like well it's going to be a typical 02:51:48.080 --> 02:51:50.990 align:start position:0% like well it's going to be a typical shaten<02:51:48.920> form<02:51:49.600> so<02:51:49.800> immediately<02:51:50.359> we<02:51:50.439> can<02:51:50.680> go 02:51:50.990 --> 02:51:51.000 align:start position:0% shaten form so immediately we can go 02:51:51.000 --> 02:51:53.469 align:start position:0% shaten form so immediately we can go back<02:51:51.239> here<02:51:51.760> and<02:51:51.920> search<02:51:52.239> for<02:51:52.399> our<02:51:52.640> form<02:51:53.279> and 02:51:53.469 --> 02:51:53.479 align:start position:0% back here and search for our form and 02:51:53.479 --> 02:51:55.950 align:start position:0% back here and search for our form and then<02:51:53.680> we<02:51:53.800> can<02:51:53.960> get<02:51:54.120> our<02:51:54.359> example<02:51:55.359> we<02:51:55.520> know<02:51:55.760> how 02:51:55.950 --> 02:51:55.960 align:start position:0% then we can get our example we know how 02:51:55.960 --> 02:51:58.190 align:start position:0% then we can get our example we know how form<02:51:56.279> Fields<02:51:56.760> look<02:51:57.000> like<02:51:57.600> we<02:51:57.760> know<02:51:57.960> that<02:51:58.120> we 02:51:58.190 --> 02:51:58.200 align:start position:0% form Fields look like we know that we 02:51:58.200 --> 02:52:01.030 align:start position:0% form Fields look like we know that we need<02:51:58.359> to<02:51:58.600> have<02:51:58.920> a<02:51:59.120> form<02:51:59.520> schema<02:52:00.080> as<02:52:00.279> well<02:52:00.880> and 02:52:01.030 --> 02:52:01.040 align:start position:0% need to have a form schema as well and 02:52:01.040 --> 02:52:03.790 align:start position:0% need to have a form schema as well and then<02:52:01.200> we<02:52:01.359> need<02:52:01.479> to<02:52:01.680> define<02:52:02.040> a<02:52:02.279> form<02:52:03.279> Define<02:52:03.640> the 02:52:03.790 --> 02:52:03.800 align:start position:0% then we need to define a form Define the 02:52:03.800 --> 02:52:07.070 align:start position:0% then we need to define a form Define the onsubmit<02:52:04.760> and<02:52:04.960> finally<02:52:05.399> build<02:52:05.720> out<02:52:05.960> our<02:52:06.160> form 02:52:07.070 --> 02:52:07.080 align:start position:0% onsubmit and finally build out our form 02:52:07.080 --> 02:52:10.590 align:start position:0% onsubmit and finally build out our form so<02:52:07.279> let's<02:52:07.520> do<02:52:07.720> so<02:52:08.239> step<02:52:08.720> by<02:52:09.080> step<02:52:09.840> first<02:52:10.239> we<02:52:10.359> can 02:52:10.590 --> 02:52:10.600 align:start position:0% so let's do so step by step first we can 02:52:10.600 --> 02:52:13.469 align:start position:0% so let's do so step by step first we can import<02:52:11.439> everything<02:52:11.800> that<02:52:11.920> we<02:52:12.040> need<02:52:12.279> from 02:52:13.469 --> 02:52:13.479 align:start position:0% import everything that we need from 02:52:13.479 --> 02:52:18.309 align:start position:0% import everything that we need from here<02:52:14.680> and<02:52:15.000> paste<02:52:15.319> it<02:52:15.520> right<02:52:15.760> here<02:52:16.120> at<02:52:16.279> the 02:52:18.309 --> 02:52:18.319 align:start position:0% here and paste it right here at the 02:52:18.319 --> 02:52:21.950 align:start position:0% here and paste it right here at the top<02:52:19.319> then<02:52:19.600> we're<02:52:19.760> going<02:52:19.960> to<02:52:20.399> define<02:52:20.880> the<02:52:21.040> form 02:52:21.950 --> 02:52:21.960 align:start position:0% top then we're going to define the form 02:52:21.960 --> 02:52:24.950 align:start position:0% top then we're going to define the form as<02:52:22.120> well<02:52:22.319> as<02:52:22.840> Define<02:52:23.279> the<02:52:23.760> onsubmit<02:52:24.760> that's 02:52:24.950 --> 02:52:24.960 align:start position:0% as well as Define the onsubmit that's 02:52:24.960 --> 02:52:27.870 align:start position:0% as well as Define the onsubmit that's going<02:52:25.120> to<02:52:25.279> be<02:52:25.560> within<02:52:26.080> the<02:52:26.279> post<02:52:26.640> form<02:52:27.479> then<02:52:27.720> we 02:52:27.870 --> 02:52:27.880 align:start position:0% going to be within the post form then we 02:52:27.880 --> 02:52:29.750 align:start position:0% going to be within the post form then we need<02:52:28.000> to<02:52:28.239> import<02:52:28.760> everything<02:52:29.120> we<02:52:29.239> need<02:52:29.600> to 02:52:29.750 --> 02:52:29.760 align:start position:0% need to import everything we need to 02:52:29.760 --> 02:52:31.030 align:start position:0% need to import everything we need to make<02:52:29.920> her<02:52:30.120> form 02:52:31.030 --> 02:52:31.040 align:start position:0% make her form 02:52:31.040 --> 02:52:34.910 align:start position:0% make her form happen<02:52:32.040> so<02:52:32.239> we<02:52:32.319> can<02:52:32.520> put<02:52:32.800> that<02:52:33.080> right<02:52:33.680> here<02:52:34.680> and 02:52:34.910 --> 02:52:34.920 align:start position:0% happen so we can put that right here and 02:52:34.920 --> 02:52:37.429 align:start position:0% happen so we can put that right here and finally<02:52:35.479> we<02:52:35.600> can<02:52:35.840> Define<02:52:36.359> the<02:52:36.520> form<02:52:37.160> within 02:52:37.429 --> 02:52:37.439 align:start position:0% finally we can Define the form within 02:52:37.439 --> 02:52:38.229 align:start position:0% finally we can Define the form within our 02:52:38.229 --> 02:52:38.239 align:start position:0% our 02:52:38.239 --> 02:52:41.550 align:start position:0% our application<02:52:39.239> right 02:52:41.550 --> 02:52:41.560 align:start position:0% application right 02:52:41.560 --> 02:52:44.550 align:start position:0% application right here<02:52:42.560> now<02:52:42.880> if<02:52:43.000> we<02:52:43.200> save<02:52:43.560> this<02:52:43.960> and<02:52:44.120> go<02:52:44.319> back 02:52:44.550 --> 02:52:44.560 align:start position:0% here now if we save this and go back 02:52:44.560 --> 02:52:47.590 align:start position:0% here now if we save this and go back back<02:52:45.080> you<02:52:45.200> can<02:52:45.319> see<02:52:45.640> simple<02:52:46.040> username<02:52:46.600> form 02:52:47.590 --> 02:52:47.600 align:start position:0% back you can see simple username form 02:52:47.600 --> 02:52:49.910 align:start position:0% back you can see simple username form but<02:52:47.840> instead<02:52:48.120> of<02:52:48.239> a<02:52:48.399> simple<02:52:48.720> username<02:52:49.680> let's 02:52:49.910 --> 02:52:49.920 align:start position:0% but instead of a simple username let's 02:52:49.920 --> 02:52:52.950 align:start position:0% but instead of a simple username let's make<02:52:50.080> it<02:52:50.200> a<02:52:50.319> bit<02:52:50.520> more<02:52:51.080> interesting<02:52:52.080> our<02:52:52.399> form 02:52:52.950 --> 02:52:52.960 align:start position:0% make it a bit more interesting our form 02:52:52.960 --> 02:52:55.429 align:start position:0% make it a bit more interesting our form is<02:52:53.120> going<02:52:53.319> to<02:52:53.479> have<02:52:53.640> a<02:52:53.880> class<02:52:54.279> name<02:52:54.960> not<02:52:55.200> of 02:52:55.429 --> 02:52:55.439 align:start position:0% is going to have a class name not of 02:52:55.439 --> 02:52:58.510 align:start position:0% is going to have a class name not of space<02:52:56.160> Y8<02:52:57.160> but<02:52:57.319> of 02:52:58.510 --> 02:52:58.520 align:start position:0% space Y8 but of 02:52:58.520 --> 02:53:00.550 align:start position:0% space Y8 but of flex 02:53:00.550 --> 02:53:00.560 align:start position:0% flex 02:53:00.560 --> 02:53:03.670 align:start position:0% flex flex-all<02:53:01.560> gap<02:53:01.840> of<02:53:02.040> N 02:53:03.670 --> 02:53:03.680 align:start position:0% flex-all gap of N 02:53:03.680 --> 02:53:08.790 align:start position:0% flex-all gap of N w-o<02:53:04.680> and<02:53:04.840> then<02:53:05.439> maxw<02:53:06.920> d5xl<02:53:07.920> within<02:53:08.200> it<02:53:08.560> we<02:53:08.680> have 02:53:08.790 --> 02:53:08.800 align:start position:0% w-o and then maxw d5xl within it we have 02:53:08.800 --> 02:53:10.990 align:start position:0% w-o and then maxw d5xl within it we have a<02:53:08.960> form<02:53:09.319> field<02:53:09.840> of 02:53:10.990 --> 02:53:11.000 align:start position:0% a form field of 02:53:11.000 --> 02:53:13.790 align:start position:0% a form field of caption<02:53:12.000> it's<02:53:12.200> going<02:53:12.359> to<02:53:12.479> be<02:53:12.600> a<02:53:12.720> form<02:53:13.120> item 02:53:13.790 --> 02:53:13.800 align:start position:0% caption it's going to be a form item 02:53:13.800 --> 02:53:15.990 align:start position:0% caption it's going to be a form item with<02:53:13.960> a<02:53:14.080> form<02:53:14.399> form<02:53:14.640> label<02:53:15.439> that's<02:53:15.640> going<02:53:15.800> to 02:53:15.990 --> 02:53:16.000 align:start position:0% with a form form label that's going to 02:53:16.000 --> 02:53:17.710 align:start position:0% with a form form label that's going to have<02:53:16.120> a<02:53:16.359> class 02:53:17.710 --> 02:53:17.720 align:start position:0% have a class 02:53:17.720 --> 02:53:22.309 align:start position:0% have a class name<02:53:18.720> equal<02:53:19.040> to<02:53:19.760> Shad<02:53:20.399> Das<02:53:20.760> formore 02:53:22.309 --> 02:53:22.319 align:start position:0% name equal to Shad Das formore 02:53:22.319 --> 02:53:26.469 align:start position:0% name equal to Shad Das formore label<02:53:23.319> and<02:53:23.600> it's<02:53:23.800> going<02:53:23.960> to<02:53:24.120> say 02:53:26.469 --> 02:53:26.479 align:start position:0% label and it's going to say 02:53:26.479 --> 02:53:29.150 align:start position:0% label and it's going to say caption<02:53:27.479> instead<02:53:27.760> of<02:53:27.880> an<02:53:28.080> input<02:53:28.880> this<02:53:29.000> is 02:53:29.150 --> 02:53:29.160 align:start position:0% caption instead of an input this is 02:53:29.160 --> 02:53:32.670 align:start position:0% caption instead of an input this is going<02:53:29.319> to<02:53:29.479> be<02:53:29.720> a<02:53:30.000> text<02:53:30.880> area<02:53:31.880> so<02:53:32.399> this<02:53:32.520> is 02:53:32.670 --> 02:53:32.680 align:start position:0% going to be a text area so this is 02:53:32.680 --> 02:53:34.309 align:start position:0% going to be a text area so this is another<02:53:33.000> component<02:53:33.439> that<02:53:33.600> we<02:53:33.760> have<02:53:33.920> to 02:53:34.309 --> 02:53:34.319 align:start position:0% another component that we have to 02:53:34.319 --> 02:53:37.750 align:start position:0% another component that we have to install<02:53:35.319> so<02:53:35.600> let's<02:53:35.880> copy<02:53:36.200> it<02:53:37.120> let's<02:53:37.319> go<02:53:37.479> to<02:53:37.600> our 02:53:37.750 --> 02:53:37.760 align:start position:0% install so let's copy it let's go to our 02:53:37.760 --> 02:53:41.910 align:start position:0% install so let's copy it let's go to our second<02:53:38.359> terminal<02:53:39.359> and<02:53:39.600> let's<02:53:39.840> say<02:53:40.279> MPX<02:53:41.080> shaten 02:53:41.910 --> 02:53:41.920 align:start position:0% second terminal and let's say MPX shaten 02:53:41.920 --> 02:53:46.469 align:start position:0% second terminal and let's say MPX shaten UI<02:53:42.680> latest<02:53:43.600> add<02:53:44.439> text<02:53:44.880> area<02:53:45.479> with<02:53:45.640> a<02:53:45.760> lowercase 02:53:46.469 --> 02:53:46.479 align:start position:0% UI latest add text area with a lowercase 02:53:46.479 --> 02:53:50.550 align:start position:0% UI latest add text area with a lowercase T<02:53:47.479> and<02:53:47.800> press<02:53:48.279> enter<02:53:49.279> once<02:53:49.479> it<02:53:49.600> is<02:53:49.800> installed 02:53:50.550 --> 02:53:50.560 align:start position:0% T and press enter once it is installed 02:53:50.560 --> 02:53:54.590 align:start position:0% T and press enter once it is installed we<02:53:50.680> can<02:53:50.880> simply<02:53:51.239> import<02:53:51.600> it<02:53:52.000> from<02:53:52.520> do/<02:53:53.520> UI<02:53:54.239> text 02:53:54.590 --> 02:53:54.600 align:start position:0% we can simply import it from do/ UI text 02:53:54.600 --> 02:53:56.630 align:start position:0% we can simply import it from do/ UI text area<02:53:55.319> we<02:53:55.479> won't<02:53:55.720> be<02:53:55.880> needing<02:53:56.160> a<02:53:56.319> form 02:53:56.630 --> 02:53:56.640 align:start position:0% area we won't be needing a form 02:53:56.640 --> 02:53:59.269 align:start position:0% area we won't be needing a form description<02:53:57.600> but<02:53:57.840> to<02:53:58.000> our<02:53:58.160> form<02:53:58.520> message<02:53:59.160> we 02:53:59.269 --> 02:53:59.279 align:start position:0% description but to our form message we 02:53:59.279 --> 02:54:03.349 align:start position:0% description but to our form message we can<02:53:59.520> provide<02:54:00.000> a<02:54:00.319> class<02:54:00.840> name<02:54:01.840> equal<02:54:02.160> to<02:54:02.680> Shad 02:54:03.349 --> 02:54:03.359 align:start position:0% can provide a class name equal to Shad 02:54:03.359 --> 02:54:04.429 align:start position:0% can provide a class name equal to Shad Das 02:54:04.429 --> 02:54:04.439 align:start position:0% Das 02:54:04.439 --> 02:54:07.830 align:start position:0% Das formore<02:54:05.560> message<02:54:06.560> and<02:54:06.760> we<02:54:06.840> can<02:54:07.080> also<02:54:07.439> style 02:54:07.830 --> 02:54:07.840 align:start position:0% formore message and we can also style 02:54:07.840 --> 02:54:11.830 align:start position:0% formore message and we can also style our<02:54:08.040> text<02:54:08.720> area<02:54:09.720> by<02:54:09.960> giving<02:54:10.200> it<02:54:10.359> a<02:54:10.560> class 02:54:11.830 --> 02:54:11.840 align:start position:0% our text area by giving it a class 02:54:11.840 --> 02:54:17.349 align:start position:0% our text area by giving it a class name<02:54:12.840> equal<02:54:13.160> to<02:54:13.960> sh<02:54:14.359> p-<02:54:15.160> text<02:54:15.600> area<02:54:16.600> and 02:54:17.349 --> 02:54:17.359 align:start position:0% name equal to sh p- text area and 02:54:17.359 --> 02:54:19.269 align:start position:0% name equal to sh p- text area and custom- 02:54:19.269 --> 02:54:19.279 align:start position:0% custom- 02:54:19.279 --> 02:54:22.150 align:start position:0% custom- scrollbar<02:54:20.279> now<02:54:20.560> this<02:54:20.680> is<02:54:20.840> more<02:54:21.120> like<02:54:21.359> it<02:54:22.040> we 02:54:22.150 --> 02:54:22.160 align:start position:0% scrollbar now this is more like it we 02:54:22.160 --> 02:54:24.630 align:start position:0% scrollbar now this is more like it we can<02:54:22.359> now<02:54:22.600> duplicate<02:54:23.080> this<02:54:23.239> form<02:54:23.600> field<02:54:24.439> one 02:54:24.630 --> 02:54:24.640 align:start position:0% can now duplicate this form field one 02:54:24.640 --> 02:54:26.389 align:start position:0% can now duplicate this form field one more<02:54:24.920> time 02:54:26.389 --> 02:54:26.399 align:start position:0% more time 02:54:26.399 --> 02:54:30.070 align:start position:0% more time below<02:54:27.399> this<02:54:27.640> time<02:54:27.920> it's<02:54:28.080> going<02:54:28.279> to<02:54:28.399> say 02:54:30.070 --> 02:54:30.080 align:start position:0% below this time it's going to say 02:54:30.080 --> 02:54:33.910 align:start position:0% below this time it's going to say file<02:54:31.080> it<02:54:31.200> can<02:54:31.399> say<02:54:31.760> add<02:54:32.120> photos<02:54:33.000> right<02:54:33.279> here<02:54:33.800> as 02:54:33.910 --> 02:54:33.920 align:start position:0% file it can say add photos right here as 02:54:33.920 --> 02:54:36.910 align:start position:0% file it can say add photos right here as the<02:54:34.080> form<02:54:34.720> label<02:54:35.720> but<02:54:35.960> this<02:54:36.200> time<02:54:36.520> it's<02:54:36.680> not 02:54:36.910 --> 02:54:36.920 align:start position:0% the form label but this time it's not 02:54:36.920 --> 02:54:39.469 align:start position:0% the form label but this time it's not going<02:54:37.080> to<02:54:37.200> be<02:54:37.359> a<02:54:37.520> text<02:54:37.840> area<02:54:38.720> it's<02:54:38.920> going<02:54:39.080> to<02:54:39.239> be 02:54:39.469 --> 02:54:39.479 align:start position:0% going to be a text area it's going to be 02:54:39.479 --> 02:54:42.070 align:start position:0% going to be a text area it's going to be our<02:54:39.720> own<02:54:40.120> component<02:54:40.640> that<02:54:40.800> we'll<02:54:41.080> create 02:54:42.070 --> 02:54:42.080 align:start position:0% our own component that we'll create 02:54:42.080 --> 02:54:45.190 align:start position:0% our own component that we'll create called<02:54:42.760> file<02:54:43.359> uploader<02:54:44.479> so<02:54:44.680> let's<02:54:44.880> simply 02:54:45.190 --> 02:54:45.200 align:start position:0% called file uploader so let's simply 02:54:45.200 --> 02:54:47.950 align:start position:0% called file uploader so let's simply call<02:54:45.439> it<02:54:45.680> like<02:54:45.960> this<02:54:46.680> and<02:54:46.840> let's<02:54:47.120> define<02:54:47.479> it 02:54:47.950 --> 02:54:47.960 align:start position:0% call it like this and let's define it 02:54:47.960 --> 02:54:50.910 align:start position:0% call it like this and let's define it within<02:54:48.319> our<02:54:48.640> components<02:54:49.640> and<02:54:49.800> then<02:54:49.960> shared 02:54:50.910 --> 02:54:50.920 align:start position:0% within our components and then shared 02:54:50.920 --> 02:54:57.030 align:start position:0% within our components and then shared called<02:54:51.600> file<02:54:52.680> uploader<02:54:54.000> dtsx<02:54:55.000> and<02:54:55.160> we<02:54:55.239> can<02:54:55.399> run 02:54:57.030 --> 02:54:57.040 align:start position:0% called file uploader dtsx and we can run 02:54:57.040 --> 02:55:00.150 align:start position:0% called file uploader dtsx and we can run RFC<02:54:58.040> back<02:54:58.239> in<02:54:58.359> the<02:54:58.560> post<02:54:58.880> form<02:54:59.560> we<02:54:59.680> can<02:54:59.840> import 02:55:00.150 --> 02:55:00.160 align:start position:0% RFC back in the post form we can import 02:55:00.160 --> 02:55:03.710 align:start position:0% RFC back in the post form we can import it<02:55:01.120> right<02:55:01.399> here<02:55:02.200> save<02:55:02.479> it<02:55:03.120> and<02:55:03.239> we<02:55:03.359> can<02:55:03.479> see 02:55:03.710 --> 02:55:03.720 align:start position:0% it right here save it and we can see 02:55:03.720 --> 02:55:06.229 align:start position:0% it right here save it and we can see file<02:55:04.080> uploader<02:55:05.080> soon<02:55:05.520> we're<02:55:05.680> going<02:55:05.800> to<02:55:06.000> make 02:55:06.229 --> 02:55:06.239 align:start position:0% file uploader soon we're going to make 02:55:06.239 --> 02:55:09.070 align:start position:0% file uploader soon we're going to make that<02:55:06.520> happen<02:55:06.960> as<02:55:07.160> well<02:55:07.880> but<02:55:08.040> for<02:55:08.359> now<02:55:08.840> let's 02:55:09.070 --> 02:55:09.080 align:start position:0% that happen as well but for now let's 02:55:09.080 --> 02:55:12.110 align:start position:0% that happen as well but for now let's duplicate<02:55:09.560> our<02:55:09.720> form<02:55:10.040> field<02:55:10.399> one<02:55:10.600> more<02:55:10.840> time 02:55:12.110 --> 02:55:12.120 align:start position:0% duplicate our form field one more time 02:55:12.120 --> 02:55:15.510 align:start position:0% duplicate our form field one more time below<02:55:13.120> this<02:55:13.359> time<02:55:13.760> it's<02:55:13.920> going<02:55:14.080> to<02:55:14.279> to<02:55:14.399> say 02:55:15.510 --> 02:55:15.520 align:start position:0% below this time it's going to to say 02:55:15.520 --> 02:55:18.269 align:start position:0% below this time it's going to to say location<02:55:16.520> and<02:55:16.680> it's<02:55:16.840> going<02:55:17.000> to<02:55:17.160> render<02:55:17.560> a<02:55:17.760> form 02:55:18.269 --> 02:55:18.279 align:start position:0% location and it's going to render a form 02:55:18.279 --> 02:55:22.309 align:start position:0% location and it's going to render a form label<02:55:19.120> that's<02:55:19.319> going<02:55:19.479> to<02:55:19.680> say<02:55:20.160> add<02:55:21.319> location 02:55:22.309 --> 02:55:22.319 align:start position:0% label that's going to say add location 02:55:22.319 --> 02:55:24.469 align:start position:0% label that's going to say add location instead<02:55:22.560> of<02:55:22.680> a<02:55:22.840> file<02:55:23.160> uploader<02:55:24.000> it's<02:55:24.200> going<02:55:24.319> to 02:55:24.469 --> 02:55:24.479 align:start position:0% instead of a file uploader it's going to 02:55:24.479 --> 02:55:27.309 align:start position:0% instead of a file uploader it's going to render<02:55:24.960> a<02:55:25.160> regular<02:55:25.760> input<02:55:26.760> that's<02:55:26.960> going<02:55:27.120> to 02:55:27.309 --> 02:55:27.319 align:start position:0% render a regular input that's going to 02:55:27.319 --> 02:55:31.070 align:start position:0% render a regular input that's going to have<02:55:27.520> a<02:55:27.760> type<02:55:28.160> is<02:55:28.319> equal<02:55:28.560> to<02:55:29.000> text<02:55:30.000> and<02:55:30.279> a<02:55:30.600> class 02:55:31.070 --> 02:55:31.080 align:start position:0% have a type is equal to text and a class 02:55:31.080 --> 02:55:35.309 align:start position:0% have a type is equal to text and a class name<02:55:32.080> equal<02:55:32.399> to<02:55:33.040> Shad 02:55:35.309 --> 02:55:35.319 align:start position:0% name equal to Shad 02:55:35.319 --> 02:55:38.389 align:start position:0% name equal to Shad input<02:55:36.319> there<02:55:36.479> we<02:55:36.680> go<02:55:37.279> if<02:55:37.399> we<02:55:37.560> save<02:55:37.840> it<02:55:38.080> we<02:55:38.279> have 02:55:38.389 --> 02:55:38.399 align:start position:0% input there we go if we save it we have 02:55:38.399 --> 02:55:41.309 align:start position:0% input there we go if we save it we have a<02:55:38.560> location<02:55:39.080> input<02:55:40.080> and<02:55:40.399> finally<02:55:40.960> we<02:55:41.080> can 02:55:41.309 --> 02:55:41.319 align:start position:0% a location input and finally we can 02:55:41.319 --> 02:55:43.590 align:start position:0% a location input and finally we can duplicate<02:55:41.800> this<02:55:41.960> form<02:55:42.319> field<02:55:42.840> one<02:55:43.000> more<02:55:43.279> time 02:55:43.590 --> 02:55:43.600 align:start position:0% duplicate this form field one more time 02:55:43.600 --> 02:55:45.710 align:start position:0% duplicate this form field one more time below<02:55:44.279> for<02:55:44.520> the<02:55:44.720> last<02:55:45.040> time<02:55:45.319> we're<02:55:45.479> going<02:55:45.560> to 02:55:45.710 --> 02:55:45.720 align:start position:0% below for the last time we're going to 02:55:45.720 --> 02:55:50.269 align:start position:0% below for the last time we're going to say<02:55:46.279> tags<02:55:47.279> we<02:55:47.359> can<02:55:47.560> say<02:55:47.920> add<02:55:48.479> tags<02:55:49.399> and<02:55:49.520> then<02:55:49.680> in 02:55:50.269 --> 02:55:50.279 align:start position:0% say tags we can say add tags and then in 02:55:50.279 --> 02:55:52.389 align:start position:0% say tags we can say add tags and then in parentheses 02:55:52.389 --> 02:55:52.399 align:start position:0% parentheses 02:55:52.399 --> 02:55:57.030 align:start position:0% parentheses separated<02:55:53.399> by<02:55:54.279> Comma<02:55:55.279> just<02:55:55.760> like<02:55:56.160> this<02:55:56.800> so 02:55:57.030 --> 02:55:57.040 align:start position:0% separated by Comma just like this so 02:55:57.040 --> 02:55:59.150 align:start position:0% separated by Comma just like this so people<02:55:57.319> know<02:55:57.560> what<02:55:57.720> they<02:55:57.840> have<02:55:58.000> to<02:55:58.160> do<02:55:58.880> we<02:55:59.000> can 02:55:59.150 --> 02:55:59.160 align:start position:0% people know what they have to do we can 02:55:59.160 --> 02:56:01.469 align:start position:0% people know what they have to do we can end<02:55:59.680> parentheses<02:56:00.680> and<02:56:00.800> then<02:56:00.960> we<02:56:01.040> can<02:56:01.200> also 02:56:01.469 --> 02:56:01.479 align:start position:0% end parentheses and then we can also 02:56:01.479 --> 02:56:03.990 align:start position:0% end parentheses and then we can also render<02:56:01.800> an<02:56:02.080> input<02:56:03.080> it's<02:56:03.279> also<02:56:03.479> going<02:56:03.640> to<02:56:03.760> be<02:56:03.880> of 02:56:03.990 --> 02:56:04.000 align:start position:0% render an input it's also going to be of 02:56:04.000 --> 02:56:06.950 align:start position:0% render an input it's also going to be of a<02:56:04.160> type<02:56:04.479> text<02:56:05.359> but<02:56:05.600> this<02:56:05.800> time<02:56:06.439> we<02:56:06.560> can<02:56:06.720> give<02:56:06.840> it 02:56:06.950 --> 02:56:06.960 align:start position:0% a type text but this time we can give it 02:56:06.960 --> 02:56:08.030 align:start position:0% a type text but this time we can give it a 02:56:08.030 --> 02:56:08.040 align:start position:0% a 02:56:08.040 --> 02:56:10.469 align:start position:0% a placeholder<02:56:09.040> something<02:56:09.479> like 02:56:10.469 --> 02:56:10.479 align:start position:0% placeholder something like 02:56:10.479 --> 02:56:12.030 align:start position:0% placeholder something like art 02:56:12.030 --> 02:56:12.040 align:start position:0% art 02:56:12.040 --> 02:56:15.429 align:start position:0% art expression<02:56:13.040> and<02:56:13.239> learn<02:56:14.239> whatever<02:56:14.760> right<02:56:15.200> some 02:56:15.429 --> 02:56:15.439 align:start position:0% expression and learn whatever right some 02:56:15.439 --> 02:56:18.590 align:start position:0% expression and learn whatever right some tags<02:56:15.760> that<02:56:15.920> we<02:56:16.000> can<02:56:16.680> add<02:56:17.680> there<02:56:17.840> we<02:56:18.000> go<02:56:18.479> if 02:56:18.590 --> 02:56:18.600 align:start position:0% tags that we can add there we go if 02:56:18.600 --> 02:56:20.469 align:start position:0% tags that we can add there we go if we're<02:56:18.760> doing<02:56:18.960> a<02:56:19.120> coding<02:56:19.479> application<02:56:20.200> it<02:56:20.319> can 02:56:20.469 --> 02:56:20.479 align:start position:0% we're doing a coding application it can 02:56:20.479 --> 02:56:21.229 align:start position:0% we're doing a coding application it can be 02:56:21.229 --> 02:56:21.239 align:start position:0% be 02:56:21.239 --> 02:56:24.790 align:start position:0% be JS<02:56:22.600> react<02:56:23.600> and 02:56:24.790 --> 02:56:24.800 align:start position:0% JS react and 02:56:24.800 --> 02:56:28.590 align:start position:0% JS react and nextjs<02:56:25.800> there<02:56:25.920> we<02:56:26.120> go<02:56:26.920> so<02:56:27.080> if<02:56:27.200> we<02:56:27.359> save<02:56:27.600> it<02:56:28.279> this 02:56:28.590 --> 02:56:28.600 align:start position:0% nextjs there we go so if we save it this 02:56:28.600 --> 02:56:31.750 align:start position:0% nextjs there we go so if we save it this looks<02:56:29.160> great<02:56:30.120> and<02:56:30.319> finally<02:56:30.840> we<02:56:31.000> have<02:56:31.120> to<02:56:31.399> have 02:56:31.750 --> 02:56:31.760 align:start position:0% looks great and finally we have to have 02:56:31.760 --> 02:56:34.950 align:start position:0% looks great and finally we have to have a<02:56:31.960> button<02:56:32.960> so<02:56:33.359> below<02:56:34.120> all<02:56:34.279> of<02:56:34.439> these<02:56:34.640> form 02:56:34.950 --> 02:56:34.960 align:start position:0% a button so below all of these form 02:56:34.960 --> 02:56:38.110 align:start position:0% a button so below all of these form fields<02:56:35.640> we<02:56:35.760> can<02:56:35.960> create<02:56:36.279> a<02:56:36.479> new<02:56:36.760> div<02:56:37.560> inside<02:56:37.880> of 02:56:38.110 --> 02:56:38.120 align:start position:0% fields we can create a new div inside of 02:56:38.120 --> 02:56:41.070 align:start position:0% fields we can create a new div inside of that<02:56:38.319> div<02:56:38.760> we<02:56:38.880> can<02:56:39.120> have<02:56:39.399> our<02:56:39.880> button<02:56:40.880> and 02:56:41.070 --> 02:56:41.080 align:start position:0% that div we can have our button and 02:56:41.080 --> 02:56:42.510 align:start position:0% that div we can have our button and below<02:56:41.399> it<02:56:41.560> we're<02:56:41.720> going<02:56:41.800> to<02:56:41.920> have<02:56:42.120> another 02:56:42.510 --> 02:56:42.520 align:start position:0% below it we're going to have another 02:56:42.520 --> 02:56:45.670 align:start position:0% below it we're going to have another button<02:56:43.520> the<02:56:43.680> first<02:56:44.239> button<02:56:44.880> is<02:56:45.040> going<02:56:45.200> to<02:56:45.359> be 02:56:45.670 --> 02:56:45.680 align:start position:0% button the first button is going to be 02:56:45.680 --> 02:56:48.269 align:start position:0% button the first button is going to be not<02:56:45.880> of<02:56:46.040> a<02:56:46.200> type<02:56:46.439> submit<02:56:47.279> but<02:56:47.479> of<02:56:47.640> a<02:56:47.840> type 02:56:48.269 --> 02:56:48.279 align:start position:0% not of a type submit but of a type 02:56:48.279 --> 02:56:50.910 align:start position:0% not of a type submit but of a type button<02:56:49.279> it's<02:56:49.439> going<02:56:49.600> to<02:56:49.760> have<02:56:49.880> a<02:56:50.120> class<02:56:50.439> name 02:56:50.910 --> 02:56:50.920 align:start position:0% button it's going to have a class name 02:56:50.920 --> 02:56:55.389 align:start position:0% button it's going to have a class name equal<02:56:51.200> to<02:56:51.479> Shad<02:56:52.279> button<02:56:52.960> unor 02:56:55.389 --> 02:56:55.399 align:start position:0% equal to Shad button unor 02:56:55.399 --> 02:56:58.349 align:start position:0% equal to Shad button unor dark4<02:56:56.399> and<02:56:56.560> it's<02:56:56.720> going<02:56:56.920> to<02:56:57.080> say<02:56:57.399> not<02:56:57.680> submit 02:56:58.349 --> 02:56:58.359 align:start position:0% dark4 and it's going to say not submit 02:56:58.359 --> 02:56:59.309 align:start position:0% dark4 and it's going to say not submit but 02:56:59.309 --> 02:56:59.319 align:start position:0% but 02:56:59.319 --> 02:57:01.510 align:start position:0% but cancel<02:57:00.319> okay<02:57:00.520> so<02:57:00.680> we<02:57:00.800> need<02:57:00.920> to<02:57:01.040> be<02:57:01.120> able<02:57:01.319> to 02:57:01.510 --> 02:57:01.520 align:start position:0% cancel okay so we need to be able to 02:57:01.520 --> 02:57:04.630 align:start position:0% cancel okay so we need to be able to cancel<02:57:01.960> the<02:57:02.120> submit<02:57:02.640> of<02:57:02.800> the<02:57:03.200> form<02:57:04.200> let's<02:57:04.439> put 02:57:04.630 --> 02:57:04.640 align:start position:0% cancel the submit of the form let's put 02:57:04.640 --> 02:57:08.590 align:start position:0% cancel the submit of the form let's put this<02:57:04.720> in<02:57:04.880> multiple<02:57:05.760> lines<02:57:06.760> there<02:57:06.920> we 02:57:08.590 --> 02:57:08.600 align:start position:0% this in multiple lines there we 02:57:08.600 --> 02:57:11.910 align:start position:0% this in multiple lines there we go<02:57:09.600> so<02:57:09.840> this<02:57:09.960> is<02:57:10.160> one<02:57:10.319> of<02:57:10.479> our<02:57:10.800> buttons<02:57:11.800> and 02:57:11.910 --> 02:57:11.920 align:start position:0% go so this is one of our buttons and 02:57:11.920 --> 02:57:14.309 align:start position:0% go so this is one of our buttons and then<02:57:12.080> the<02:57:12.239> second<02:57:12.520> one<02:57:12.840> will<02:57:13.040> be<02:57:13.239> submit<02:57:14.160> it's 02:57:14.309 --> 02:57:14.319 align:start position:0% then the second one will be submit it's 02:57:14.319 --> 02:57:17.030 align:start position:0% then the second one will be submit it's going<02:57:14.520> to<02:57:14.720> say<02:57:15.160> submit<02:57:16.160> it's<02:57:16.319> going<02:57:16.479> to<02:57:16.640> have<02:57:16.800> a 02:57:17.030 --> 02:57:17.040 align:start position:0% going to say submit it's going to have a 02:57:17.040 --> 02:57:21.590 align:start position:0% going to say submit it's going to have a class<02:57:17.399> name<02:57:18.000> equal<02:57:18.319> to<02:57:18.560> Shad<02:57:19.399> button<02:57:20.600> primary 02:57:21.590 --> 02:57:21.600 align:start position:0% class name equal to Shad button primary 02:57:21.600 --> 02:57:26.030 align:start position:0% class name equal to Shad button primary and<02:57:22.040> wh<02:57:22.359> space<02:57:23.040> no<02:57:23.720> wrap<02:57:24.720> there<02:57:24.880> we<02:57:25.080> go<02:57:25.760> now<02:57:25.960> we 02:57:26.030 --> 02:57:26.040 align:start position:0% and wh space no wrap there we go now we 02:57:26.040 --> 02:57:27.950 align:start position:0% and wh space no wrap there we go now we can<02:57:26.239> style<02:57:26.600> this<02:57:26.800> div<02:57:27.120> that's<02:57:27.319> wrapping<02:57:27.760> these 02:57:27.950 --> 02:57:27.960 align:start position:0% can style this div that's wrapping these 02:57:27.960 --> 02:57:30.750 align:start position:0% can style this div that's wrapping these two<02:57:28.160> buttons<02:57:28.800> by<02:57:28.960> giving<02:57:29.200> it<02:57:29.399> a<02:57:29.640> class<02:57:30.120> name 02:57:30.750 --> 02:57:30.760 align:start position:0% two buttons by giving it a class name 02:57:30.760 --> 02:57:36.150 align:start position:0% two buttons by giving it a class name equal<02:57:31.080> to<02:57:31.479> flex<02:57:32.479> Gap<02:57:33.279> D4<02:57:34.279> items<02:57:34.800> D<02:57:35.040> Center<02:57:35.880> and 02:57:36.150 --> 02:57:36.160 align:start position:0% equal to flex Gap D4 items D Center and 02:57:36.160 --> 02:57:39.910 align:start position:0% equal to flex Gap D4 items D Center and justify<02:57:36.840> Das<02:57:37.399> end<02:57:38.399> there<02:57:38.560> we<02:57:38.760> go<02:57:39.399> now<02:57:39.640> they're 02:57:39.910 --> 02:57:39.920 align:start position:0% justify Das end there we go now they're 02:57:39.920 --> 02:57:42.590 align:start position:0% justify Das end there we go now they're nicely<02:57:40.239> aligned<02:57:40.720> at<02:57:40.840> the<02:57:41.160> end<02:57:42.160> now<02:57:42.439> the 02:57:42.590 --> 02:57:42.600 align:start position:0% nicely aligned at the end now the 02:57:42.600 --> 02:57:44.550 align:start position:0% nicely aligned at the end now the majority<02:57:42.960> of<02:57:43.080> the<02:57:43.200> UI<02:57:43.560> is<02:57:43.720> done 02:57:44.550 --> 02:57:44.560 align:start position:0% majority of the UI is done 02:57:44.560 --> 02:57:46.510 align:start position:0% majority of the UI is done but<02:57:45.040> let's<02:57:45.239> go<02:57:45.359> ahead<02:57:45.520> and<02:57:45.680> focus<02:57:45.960> on<02:57:46.120> the<02:57:46.239> file 02:57:46.510 --> 02:57:46.520 align:start position:0% but let's go ahead and focus on the file 02:57:46.520 --> 02:57:48.790 align:start position:0% but let's go ahead and focus on the file uploader<02:57:47.520> that's<02:57:47.800> one<02:57:48.080> component<02:57:48.600> that's 02:57:48.790 --> 02:57:48.800 align:start position:0% uploader that's one component that's 02:57:48.800 --> 02:57:50.670 align:start position:0% uploader that's one component that's going<02:57:48.960> to<02:57:49.080> be<02:57:49.279> one<02:57:49.399> of<02:57:49.560> the<02:57:49.840> most<02:57:50.160> important 02:57:50.670 --> 02:57:50.680 align:start position:0% going to be one of the most important 02:57:50.680 --> 02:57:52.990 align:start position:0% going to be one of the most important components<02:57:51.319> in<02:57:51.439> our<02:57:51.640> entire<02:57:52.040> application<02:57:52.880> we 02:57:52.990 --> 02:57:53.000 align:start position:0% components in our entire application we 02:57:53.000 --> 02:57:55.389 align:start position:0% components in our entire application we are<02:57:53.200> building<02:57:53.600> a<02:57:53.840> snapgram<02:57:54.800> and<02:57:54.960> you<02:57:55.080> have<02:57:55.200> to 02:57:55.389 --> 02:57:55.399 align:start position:0% are building a snapgram and you have to 02:57:55.399 --> 02:57:58.150 align:start position:0% are building a snapgram and you have to snap<02:57:55.840> some<02:57:56.120> photos<02:57:56.760> right<02:57:57.359> and<02:57:57.520> then<02:57:57.720> upload 02:57:58.150 --> 02:57:58.160 align:start position:0% snap some photos right and then upload 02:57:58.160 --> 02:58:00.870 align:start position:0% snap some photos right and then upload them<02:57:58.840> so<02:57:59.080> let's<02:57:59.319> go<02:57:59.439> ahead<02:57:59.720> and<02:58:00.000> Implement<02:58:00.600> our 02:58:00.870 --> 02:58:00.880 align:start position:0% them so let's go ahead and Implement our 02:58:00.880 --> 02:58:03.950 align:start position:0% them so let's go ahead and Implement our file<02:58:01.200> uploader<02:58:01.800> component<02:58:02.760> to<02:58:03.040> implement<02:58:03.520> it 02:58:03.950 --> 02:58:03.960 align:start position:0% file uploader component to implement it 02:58:03.960 --> 02:58:06.670 align:start position:0% file uploader component to implement it we'll<02:58:04.200> use<02:58:04.399> a<02:58:04.720> package<02:58:05.200> called<02:58:05.600> react<02:58:06.239> drop 02:58:06.670 --> 02:58:06.680 align:start position:0% we'll use a package called react drop 02:58:06.680 --> 02:58:08.830 align:start position:0% we'll use a package called react drop zone<02:58:07.160> that<02:58:07.319> allows<02:58:07.600> you<02:58:07.720> to<02:58:07.960> drop<02:58:08.359> some<02:58:08.560> things 02:58:08.830 --> 02:58:08.840 align:start position:0% zone that allows you to drop some things 02:58:08.840 --> 02:58:11.990 align:start position:0% zone that allows you to drop some things in<02:58:09.800> so<02:58:10.000> let's<02:58:10.239> install<02:58:10.600> it<02:58:10.960> by<02:58:11.080> running<02:58:11.479> mpm 02:58:11.990 --> 02:58:12.000 align:start position:0% in so let's install it by running mpm 02:58:12.000 --> 02:58:15.910 align:start position:0% in so let's install it by running mpm install<02:58:12.920> react<02:58:13.640> d<02:58:14.040> drop 02:58:15.910 --> 02:58:15.920 align:start position:0% install react d drop 02:58:15.920 --> 02:58:18.670 align:start position:0% install react d drop zone<02:58:16.920> and<02:58:17.239> while<02:58:17.439> it's<02:58:17.600> getting<02:58:17.880> installed 02:58:18.670 --> 02:58:18.680 align:start position:0% zone and while it's getting installed 02:58:18.680 --> 02:58:21.429 align:start position:0% zone and while it's getting installed let's<02:58:18.920> browse<02:58:19.279> his<02:58:19.800> docs<02:58:20.800> if<02:58:20.960> you<02:58:21.080> Google 02:58:21.429 --> 02:58:21.439 align:start position:0% let's browse his docs if you Google 02:58:21.439 --> 02:58:23.389 align:start position:0% let's browse his docs if you Google react<02:58:21.760> Drop<02:58:22.080> Zone<02:58:22.600> this<02:58:22.720> is<02:58:22.840> the<02:58:23.000> first<02:58:23.239> thing 02:58:23.389 --> 02:58:23.399 align:start position:0% react Drop Zone this is the first thing 02:58:23.399 --> 02:58:25.349 align:start position:0% react Drop Zone this is the first thing that's<02:58:23.560> going<02:58:23.720> to<02:58:23.840> show<02:58:24.120> up<02:58:24.680> and<02:58:24.920> here<02:58:25.120> you<02:58:25.200> can 02:58:25.349 --> 02:58:25.359 align:start position:0% that's going to show up and here you can 02:58:25.359 --> 02:58:26.710 align:start position:0% that's going to show up and here you can see<02:58:25.600> its 02:58:26.710 --> 02:58:26.720 align:start position:0% see its 02:58:26.720 --> 02:58:29.590 align:start position:0% see its usage<02:58:27.720> first<02:58:28.000> we<02:58:28.120> need<02:58:28.279> to<02:58:28.479> import<02:58:29.000> react<02:58:29.439> and 02:58:29.590 --> 02:58:29.600 align:start position:0% usage first we need to import react and 02:58:29.600 --> 02:58:32.389 align:start position:0% usage first we need to import react and use<02:58:29.960> call<02:58:30.239> back<02:58:30.439> from<02:58:30.720> react<02:58:31.560> as<02:58:31.720> well<02:58:31.880> as<02:58:32.040> use 02:58:32.389 --> 02:58:32.399 align:start position:0% use call back from react as well as use 02:58:32.399 --> 02:58:35.910 align:start position:0% use call back from react as well as use drop<02:58:32.760> zone<02:58:33.359> so<02:58:33.600> let's<02:58:33.800> do<02:58:34.080> just<02:58:34.520> that<02:58:35.520> never 02:58:35.910 --> 02:58:35.920 align:start position:0% drop zone so let's do just that never 02:58:35.920 --> 02:58:38.590 align:start position:0% drop zone so let's do just that never reinvent<02:58:36.520> the<02:58:36.640> wheel<02:58:37.479> always<02:58:37.960> just<02:58:38.080> refer<02:58:38.399> to 02:58:38.590 --> 02:58:38.600 align:start position:0% reinvent the wheel always just refer to 02:58:38.600 --> 02:58:41.750 align:start position:0% reinvent the wheel always just refer to documentation<02:58:39.560> when<02:58:39.720> you<02:58:40.200> can<02:58:41.200> then<02:58:41.479> we<02:58:41.600> need 02:58:41.750 --> 02:58:41.760 align:start position:0% documentation when you can then we need 02:58:41.760 --> 02:58:44.469 align:start position:0% documentation when you can then we need to<02:58:41.920> get<02:58:42.040> a<02:58:42.200> function<02:58:42.640> called<02:58:42.960> on<02:58:43.359> drop<02:58:44.200> that<02:58:44.359> we 02:58:44.469 --> 02:58:44.479 align:start position:0% to get a function called on drop that we 02:58:44.479 --> 02:58:46.550 align:start position:0% to get a function called on drop that we can<02:58:44.640> put<02:58:45.040> right 02:58:46.550 --> 02:58:46.560 align:start position:0% can put right 02:58:46.560 --> 02:58:51.229 align:start position:0% can put right here<02:58:47.560> there<02:58:47.760> we<02:58:48.000> go<02:58:48.920> and<02:58:49.120> then<02:58:49.840> our<02:58:50.080> outer<02:58:50.479> div 02:58:51.229 --> 02:58:51.239 align:start position:0% here there we go and then our outer div 02:58:51.239 --> 02:58:54.229 align:start position:0% here there we go and then our outer div needs<02:58:51.520> to<02:58:51.720> include<02:58:52.359> all<02:58:52.600> the<02:58:52.800> get<02:58:53.040> root<02:58:53.479> props 02:58:54.229 --> 02:58:54.239 align:start position:0% needs to include all the get root props 02:58:54.239 --> 02:58:56.309 align:start position:0% needs to include all the get root props and<02:58:54.439> the<02:58:54.600> input<02:58:55.040> needs<02:58:55.279> to<02:58:55.439> include<02:58:55.920> the<02:58:56.080> get 02:58:56.309 --> 02:58:56.319 align:start position:0% and the input needs to include the get 02:58:56.319 --> 02:58:59.229 align:start position:0% and the input needs to include the get input<02:58:56.720> props<02:58:57.680> so<02:58:57.880> let's<02:58:58.200> copy<02:58:58.640> this<02:58:58.840> entire 02:58:59.229 --> 02:58:59.239 align:start position:0% input props so let's copy this entire 02:58:59.239 --> 02:59:00.510 align:start position:0% input props so let's copy this entire div<02:58:59.600> right 02:59:00.510 --> 02:59:00.520 align:start position:0% div right 02:59:00.520 --> 02:59:03.910 align:start position:0% div right here<02:59:01.520> there<02:59:01.680> we<02:59:02.000> go<02:59:03.000> there<02:59:03.120> are<02:59:03.279> multiple<02:59:03.720> ways 02:59:03.910 --> 02:59:03.920 align:start position:0% here there we go there are multiple ways 02:59:03.920 --> 02:59:06.630 align:start position:0% here there we go there are multiple ways of<02:59:04.080> doing<02:59:04.359> it<02:59:04.760> as<02:59:04.880> you<02:59:05.000> can<02:59:05.160> see<02:59:06.000> but<02:59:06.160> for<02:59:06.359> now 02:59:06.630 --> 02:59:06.640 align:start position:0% of doing it as you can see but for now 02:59:06.640 --> 02:59:08.190 align:start position:0% of doing it as you can see but for now we're<02:59:06.800> going<02:59:06.880> to<02:59:07.040> be<02:59:07.239> happy<02:59:07.560> with<02:59:07.720> what<02:59:08.000> we 02:59:08.190 --> 02:59:08.200 align:start position:0% we're going to be happy with what we 02:59:08.200 --> 02:59:11.870 align:start position:0% we're going to be happy with what we have<02:59:08.840> at<02:59:08.960> least<02:59:09.160> I<02:59:09.560> hope<02:59:10.560> let's<02:59:10.800> save<02:59:11.040> it<02:59:11.680> and 02:59:11.870 --> 02:59:11.880 align:start position:0% have at least I hope let's save it and 02:59:11.880 --> 02:59:14.070 align:start position:0% have at least I hope let's save it and it<02:59:12.000> says<02:59:12.319> drag<02:59:12.600> and<02:59:12.800> drop<02:59:13.080> some<02:59:13.359> files<02:59:13.680> but<02:59:13.960> we 02:59:14.070 --> 02:59:14.080 align:start position:0% it says drag and drop some files but we 02:59:14.080 --> 02:59:16.150 align:start position:0% it says drag and drop some files but we can<02:59:14.359> really<02:59:14.560> see<02:59:14.960> where<02:59:15.120> to<02:59:15.359> drag<02:59:15.600> and<02:59:15.800> drop 02:59:16.150 --> 02:59:16.160 align:start position:0% can really see where to drag and drop 02:59:16.160 --> 02:59:19.030 align:start position:0% can really see where to drag and drop them<02:59:16.800> so<02:59:17.120> let's<02:59:17.319> style<02:59:17.640> this<02:59:17.760> a<02:59:17.880> bit<02:59:18.080> further 02:59:19.030 --> 02:59:19.040 align:start position:0% them so let's style this a bit further 02:59:19.040 --> 02:59:21.670 align:start position:0% them so let's style this a bit further let's<02:59:19.239> give<02:59:19.439> this<02:59:19.640> div<02:59:20.040> a<02:59:20.359> class 02:59:21.670 --> 02:59:21.680 align:start position:0% let's give this div a class 02:59:21.680 --> 02:59:27.510 align:start position:0% let's give this div a class name<02:59:22.680> equal<02:59:23.000> to<02:59:23.960> flex<02:59:24.960> Flex<02:59:25.479> D<02:59:25.760> Center 02:59:27.510 --> 02:59:27.520 align:start position:0% name equal to flex Flex D Center 02:59:27.520 --> 02:59:33.309 align:start position:0% name equal to flex Flex D Center flex-all<02:59:28.520> BG<02:59:29.120> D<02:59:29.560> dark<02:59:30.160> D3<02:59:31.160> and<02:59:31.479> rounded<02:59:32.120> d<02:59:32.439> excl 02:59:33.309 --> 02:59:33.319 align:start position:0% flex-all BG D dark D3 and rounded d excl 02:59:33.319 --> 02:59:35.910 align:start position:0% flex-all BG D dark D3 and rounded d excl as<02:59:33.439> well<02:59:33.600> as<02:59:33.840> cursor<02:59:34.439> Das<02:59:34.840> pointer<02:59:35.399> so<02:59:35.600> we<02:59:35.720> know 02:59:35.910 --> 02:59:35.920 align:start position:0% as well as cursor Das pointer so we know 02:59:35.920 --> 02:59:38.469 align:start position:0% as well as cursor Das pointer so we know it's<02:59:36.239> clickable<02:59:37.239> then<02:59:37.680> let's<02:59:38.000> make<02:59:38.279> this 02:59:38.469 --> 02:59:38.479 align:start position:0% it's clickable then let's make this 02:59:38.479 --> 02:59:42.950 align:start position:0% it's clickable then let's make this input<02:59:39.120> a<02:59:39.479> class<02:59:40.040> name<02:59:41.040> equal<02:59:41.359> to<02:59:42.080> cursor<02:59:42.600> Das 02:59:42.950 --> 02:59:42.960 align:start position:0% input a class name equal to cursor Das 02:59:42.960 --> 02:59:44.630 align:start position:0% input a class name equal to cursor Das pointer 02:59:44.630 --> 02:59:44.640 align:start position:0% pointer 02:59:44.640 --> 02:59:47.349 align:start position:0% pointer so<02:59:44.840> we<02:59:44.960> know<02:59:45.200> we<02:59:45.319> can<02:59:45.520> click<02:59:45.760> it<02:59:46.239> as<02:59:46.439> well<02:59:47.160> and 02:59:47.349 --> 02:59:47.359 align:start position:0% so we know we can click it as well and 02:59:47.359 --> 02:59:50.510 align:start position:0% so we know we can click it as well and then<02:59:47.800> let's<02:59:48.040> create<02:59:48.319> a<02:59:48.520> new<02:59:48.800> use<02:59:49.200> state<02:59:49.840> for<02:59:50.239> a 02:59:50.510 --> 02:59:50.520 align:start position:0% then let's create a new use state for a 02:59:50.520 --> 02:59:53.389 align:start position:0% then let's create a new use state for a file<02:59:50.920> URL<02:59:51.920> so<02:59:52.160> right<02:59:52.279> here<02:59:52.439> at<02:59:52.600> the<02:59:52.800> top<02:59:53.160> we<02:59:53.279> can 02:59:53.389 --> 02:59:53.399 align:start position:0% file URL so right here at the top we can 02:59:53.399 --> 02:59:56.110 align:start position:0% file URL so right here at the top we can say<02:59:53.680> use<02:59:54.200> state<02:59:55.200> which<02:59:55.319> is<02:59:55.439> going<02:59:55.600> to<02:59:55.720> be<02:59:55.880> equal 02:59:56.110 --> 02:59:56.120 align:start position:0% say use state which is going to be equal 02:59:56.120 --> 02:59:59.790 align:start position:0% say use state which is going to be equal to<02:59:56.279> use<02:59:56.560> State<02:59:56.800> snippet<02:59:57.760> and<02:59:57.920> let's<02:59:58.160> call<02:59:58.399> it 02:59:59.790 --> 02:59:59.800 align:start position:0% to use State snippet and let's call it 02:59:59.800 --> 03:00:02.190 align:start position:0% to use State snippet and let's call it file 03:00:02.190 --> 03:00:02.200 align:start position:0% file 03:00:02.200 --> 03:00:06.309 align:start position:0% file URL<03:00:03.200> as<03:00:03.359> well<03:00:03.520> as<03:00:03.800> set<03:00:04.160> file<03:00:04.600> URL<03:00:05.600> at<03:00:05.760> the<03:00:05.960> start 03:00:06.309 --> 03:00:06.319 align:start position:0% URL as well as set file URL at the start 03:00:06.319 --> 03:00:09.070 align:start position:0% URL as well as set file URL at the start equal<03:00:06.640> to<03:00:06.760> an<03:00:06.880> empty<03:00:07.359> string<03:00:08.359> we<03:00:08.439> can<03:00:08.680> also 03:00:09.070 --> 03:00:09.080 align:start position:0% equal to an empty string we can also 03:00:09.080 --> 03:00:12.590 align:start position:0% equal to an empty string we can also import<03:00:09.520> use<03:00:09.840> State<03:00:10.479> coming<03:00:10.840> from<03:00:11.399> react<03:00:12.399> right 03:00:12.590 --> 03:00:12.600 align:start position:0% import use State coming from react right 03:00:12.600 --> 03:00:15.790 align:start position:0% import use State coming from react right here<03:00:12.880> at<03:00:13.040> the<03:00:13.239> top<03:00:14.080> use 03:00:15.790 --> 03:00:15.800 align:start position:0% here at the top use 03:00:15.800 --> 03:00:19.950 align:start position:0% here at the top use State<03:00:16.800> great<03:00:17.640> so<03:00:17.920> now<03:00:18.760> instead<03:00:19.080> of<03:00:19.239> saying<03:00:19.640> is 03:00:19.950 --> 03:00:19.960 align:start position:0% State great so now instead of saying is 03:00:19.960 --> 03:00:24.110 align:start position:0% State great so now instead of saying is drag<03:00:20.560> active<03:00:21.319> let's<03:00:21.560> rather<03:00:22.000> check<03:00:22.279> for<03:00:23.239> is<03:00:23.880> a 03:00:24.110 --> 03:00:24.120 align:start position:0% drag active let's rather check for is a 03:00:24.120 --> 03:00:27.710 align:start position:0% drag active let's rather check for is a file<03:00:24.399> URL<03:00:24.960> there<03:00:25.800> has<03:00:25.920> it<03:00:26.080> been<03:00:26.600> uploaded<03:00:27.600> if 03:00:27.710 --> 03:00:27.720 align:start position:0% file URL there has it been uploaded if 03:00:27.720 --> 03:00:30.110 align:start position:0% file URL there has it been uploaded if it<03:00:27.920> has<03:00:28.120> been<03:00:28.319> uploaded<03:00:29.200> we<03:00:29.319> can<03:00:29.600> return<03:00:29.920> some 03:00:30.110 --> 03:00:30.120 align:start position:0% it has been uploaded we can return some 03:00:30.120 --> 03:00:32.790 align:start position:0% it has been uploaded we can return some kind<03:00:30.239> of<03:00:30.359> a<03:00:30.520> div<03:00:30.880> right<03:00:31.040> here<03:00:31.880> else<03:00:32.439> if<03:00:32.600> it 03:00:32.790 --> 03:00:32.800 align:start position:0% kind of a div right here else if it 03:00:32.800 --> 03:00:36.190 align:start position:0% kind of a div right here else if it hasn't<03:00:33.560> we<03:00:33.680> can<03:00:34.000> return<03:00:34.279> something<03:00:34.800> else<03:00:35.800> so 03:00:36.190 --> 03:00:36.200 align:start position:0% hasn't we can return something else so 03:00:36.200 --> 03:00:37.910 align:start position:0% hasn't we can return something else so let's<03:00:36.439> create<03:00:36.800> a<03:00:36.960> new 03:00:37.910 --> 03:00:37.920 align:start position:0% let's create a new 03:00:37.920 --> 03:00:41.630 align:start position:0% let's create a new div<03:00:38.920> let's<03:00:39.080> say<03:00:39.319> test<03:00:39.680> two<03:00:40.680> and<03:00:40.960> here<03:00:41.399> let's 03:00:41.630 --> 03:00:41.640 align:start position:0% div let's say test two and here let's 03:00:41.640 --> 03:00:45.070 align:start position:0% div let's say test two and here let's say<03:00:42.120> a<03:00:42.359> div<03:00:43.359> that's<03:00:43.560> go<03:00:43.760> going<03:00:43.880> to<03:00:44.000> say<03:00:44.680> test 03:00:45.070 --> 03:00:45.080 align:start position:0% say a div that's go going to say test 03:00:45.080 --> 03:00:49.110 align:start position:0% say a div that's go going to say test one<03:00:46.080> we<03:00:46.200> can<03:00:46.359> delete<03:00:46.800> everything<03:00:47.359> else<03:00:48.359> so<03:00:48.640> now 03:00:49.110 --> 03:00:49.120 align:start position:0% one we can delete everything else so now 03:00:49.120 --> 03:00:51.550 align:start position:0% one we can delete everything else so now you<03:00:49.239> can<03:00:49.399> see<03:00:49.640> test<03:00:49.920> two<03:00:50.479> meaning<03:00:51.040> we<03:00:51.239> don't 03:00:51.550 --> 03:00:51.560 align:start position:0% you can see test two meaning we don't 03:00:51.560 --> 03:00:54.469 align:start position:0% you can see test two meaning we don't yet<03:00:51.880> have<03:00:52.080> a<03:00:52.279> file<03:00:52.560> URL<03:00:53.560> so<03:00:53.760> now<03:00:53.960> let's<03:00:54.160> create 03:00:54.469 --> 03:00:54.479 align:start position:0% yet have a file URL so now let's create 03:00:54.479 --> 03:00:56.990 align:start position:0% yet have a file URL so now let's create this<03:00:54.760> nice<03:00:55.359> interface<03:00:56.239> from<03:00:56.439> which<03:00:56.640> it's<03:00:56.760> app 03:00:56.990 --> 03:00:57.000 align:start position:0% this nice interface from which it's app 03:00:57.000 --> 03:00:59.030 align:start position:0% this nice interface from which it's app parent<03:00:57.399> that<03:00:57.560> we<03:00:57.640> can<03:00:57.880> actually<03:00:58.279> upload<03:00:58.680> the 03:00:59.030 --> 03:00:59.040 align:start position:0% parent that we can actually upload the 03:00:59.040 --> 03:01:02.229 align:start position:0% parent that we can actually upload the files<03:01:00.040> to<03:01:00.239> do<03:01:00.399> it<03:01:00.960> we<03:01:01.080> can<03:01:01.279> give<03:01:01.479> this<03:01:01.680> div<03:01:01.960> a 03:01:02.229 --> 03:01:02.239 align:start position:0% files to do it we can give this div a 03:01:02.239 --> 03:01:06.070 align:start position:0% files to do it we can give this div a class<03:01:02.640> name<03:01:03.560> equal<03:01:03.880> to 03:01:06.070 --> 03:01:06.080 align:start position:0% class name equal to 03:01:06.080 --> 03:01:09.910 align:start position:0% class name equal to fileuploader<03:01:07.479> dashbox<03:01:08.479> and<03:01:08.600> we<03:01:08.720> can<03:01:08.880> save<03:01:09.120> it 03:01:09.910 --> 03:01:09.920 align:start position:0% fileuploader dashbox and we can save it 03:01:09.920 --> 03:01:13.110 align:start position:0% fileuploader dashbox and we can save it within<03:01:10.239> it<03:01:10.680> we<03:01:10.800> can<03:01:10.960> create<03:01:11.239> an<03:01:11.920> image<03:01:12.920> that's 03:01:13.110 --> 03:01:13.120 align:start position:0% within it we can create an image that's 03:01:13.120 --> 03:01:17.630 align:start position:0% within it we can create an image that's going<03:01:13.279> to<03:01:13.439> have<03:01:13.760> have<03:01:13.960> a<03:01:14.520> source<03:01:15.520> equal<03:01:15.840> to<03:01:16.840> SL 03:01:17.630 --> 03:01:17.640 align:start position:0% going to have have a source equal to SL 03:01:17.640 --> 03:01:23.550 align:start position:0% going to have have a source equal to SL assets<03:01:18.640> SL<03:01:19.399> ions<03:01:20.399> SL<03:01:20.840> file-<03:01:21.880> upload. 03:01:23.550 --> 03:01:23.560 align:start position:0% assets SL ions SL file- upload. 03:01:23.560 --> 03:01:26.790 align:start position:0% assets SL ions SL file- upload. SVG<03:01:24.560> that's<03:01:24.840> much<03:01:25.080> better<03:01:26.040> the<03:01:26.239> width<03:01:26.640> is 03:01:26.790 --> 03:01:26.800 align:start position:0% SVG that's much better the width is 03:01:26.800 --> 03:01:29.950 align:start position:0% SVG that's much better the width is going<03:01:27.000> to<03:01:27.120> be<03:01:27.359> about<03:01:27.920> 96<03:01:28.920> and<03:01:29.080> the<03:01:29.319> height<03:01:29.800> is 03:01:29.950 --> 03:01:29.960 align:start position:0% going to be about 96 and the height is 03:01:29.960 --> 03:01:31.550 align:start position:0% going to be about 96 and the height is going<03:01:30.120> to<03:01:30.279> be<03:01:30.479> about 03:01:31.550 --> 03:01:31.560 align:start position:0% going to be about 03:01:31.560 --> 03:01:34.670 align:start position:0% going to be about 77<03:01:32.560> finally<03:01:33.200> we<03:01:33.319> can<03:01:33.520> give<03:01:33.600> it<03:01:33.720> an<03:01:33.880> Al<03:01:34.239> tag 03:01:34.670 --> 03:01:34.680 align:start position:0% 77 finally we can give it an Al tag 03:01:34.680 --> 03:01:38.349 align:start position:0% 77 finally we can give it an Al tag equal<03:01:35.000> to<03:01:35.279> file<03:01:36.239> upload<03:01:37.239> below<03:01:37.600> it<03:01:38.080> we<03:01:38.160> can 03:01:38.349 --> 03:01:38.359 align:start position:0% equal to file upload below it we can 03:01:38.359 --> 03:01:39.990 align:start position:0% equal to file upload below it we can create<03:01:38.720> a<03:01:38.960> new 03:01:39.990 --> 03:01:40.000 align:start position:0% create a new 03:01:40.000 --> 03:01:44.710 align:start position:0% create a new H3<03:01:41.000> that's<03:01:41.200> going<03:01:41.359> to<03:01:41.560> say<03:01:42.040> SVG<03:01:43.040> PNG 03:01:44.710 --> 03:01:44.720 align:start position:0% H3 that's going to say SVG PNG 03:01:44.720 --> 03:01:47.710 align:start position:0% H3 that's going to say SVG PNG JPEG<03:01:45.720> and<03:01:46.000> we<03:01:46.120> can<03:01:46.279> give<03:01:46.359> it<03:01:46.520> a<03:01:46.720> class 03:01:47.710 --> 03:01:47.720 align:start position:0% JPEG and we can give it a class 03:01:47.720 --> 03:01:51.269 align:start position:0% JPEG and we can give it a class name<03:01:48.720> that's<03:01:48.920> going<03:01:49.080> to<03:01:49.239> be<03:01:49.439> equal<03:01:49.760> to<03:01:50.439> text- 03:01:51.269 --> 03:01:51.279 align:start position:0% name that's going to be equal to text- 03:01:51.279 --> 03:01:52.229 align:start position:0% name that's going to be equal to text- light 03:01:52.229 --> 03:01:52.239 align:start position:0% light 03:01:52.239 --> 03:01:56.469 align:start position:0% light D4<03:01:53.239> small<03:01:53.920> regular<03:01:54.920> and<03:01:55.120> margin<03:01:55.600> bottom<03:01:55.920> of 03:01:56.469 --> 03:01:56.479 align:start position:0% D4 small regular and margin bottom of 03:01:56.479 --> 03:01:59.389 align:start position:0% D4 small regular and margin bottom of six<03:01:57.479> there<03:01:57.640> we<03:01:57.800> go<03:01:58.319> now<03:01:58.640> instead<03:01:58.960> of<03:01:59.120> making 03:01:59.389 --> 03:01:59.399 align:start position:0% six there we go now instead of making 03:01:59.399 --> 03:02:02.070 align:start position:0% six there we go now instead of making this<03:01:59.600> an<03:01:59.720> H3<03:02:00.600> let's<03:02:00.840> make<03:02:01.040> this<03:02:01.160> a<03:02:01.359> P<03:02:01.640> tag 03:02:02.070 --> 03:02:02.080 align:start position:0% this an H3 let's make this a P tag 03:02:02.080 --> 03:02:04.830 align:start position:0% this an H3 let's make this a P tag because<03:02:02.319> it's<03:02:02.479> small<03:02:03.359> and<03:02:03.520> then<03:02:03.880> Above<03:02:04.359> This<03:02:04.560> P 03:02:04.830 --> 03:02:04.840 align:start position:0% because it's small and then Above This P 03:02:04.840 --> 03:02:06.750 align:start position:0% because it's small and then Above This P tag<03:02:05.239> let's<03:02:05.479> create<03:02:05.840> an 03:02:06.750 --> 03:02:06.760 align:start position:0% tag let's create an 03:02:06.760 --> 03:02:10.110 align:start position:0% tag let's create an H3<03:02:07.760> this<03:02:07.960> H3<03:02:08.479> is<03:02:08.600> going<03:02:08.760> to<03:02:08.960> say 03:02:10.110 --> 03:02:10.120 align:start position:0% H3 this H3 is going to say 03:02:10.120 --> 03:02:15.389 align:start position:0% H3 this H3 is going to say drag<03:02:11.160> photo<03:02:12.279> here<03:02:13.279> we<03:02:13.399> can<03:02:13.680> give<03:02:13.800> it<03:02:13.880> a<03:02:14.080> class 03:02:15.389 --> 03:02:15.399 align:start position:0% drag photo here we can give it a class 03:02:15.399 --> 03:02:19.590 align:start position:0% drag photo here we can give it a class name<03:02:16.399> equal<03:02:16.720> to<03:02:17.000> base-<03:02:18.080> medium<03:02:19.080> as<03:02:19.200> well<03:02:19.359> as 03:02:19.590 --> 03:02:19.600 align:start position:0% name equal to base- medium as well as 03:02:19.600 --> 03:02:20.990 align:start position:0% name equal to base- medium as well as text- 03:02:20.990 --> 03:02:21.000 align:start position:0% text- 03:02:21.000 --> 03:02:24.389 align:start position:0% text- light-2<03:02:22.000> margin<03:02:22.479> bottom<03:02:22.840> of<03:02:23.040> two<03:02:23.760> and<03:02:23.920> margin 03:02:24.389 --> 03:02:24.399 align:start position:0% light-2 margin bottom of two and margin 03:02:24.399 --> 03:02:27.870 align:start position:0% light-2 margin bottom of two and margin top<03:02:24.680> of<03:02:25.200> six<03:02:26.200> there<03:02:26.359> we<03:02:26.600> go<03:02:27.160> that's<03:02:27.359> more<03:02:27.640> like 03:02:27.870 --> 03:02:27.880 align:start position:0% top of six there we go that's more like 03:02:27.880 --> 03:02:30.790 align:start position:0% top of six there we go that's more like it<03:02:28.720> and<03:02:28.880> we<03:02:28.960> can<03:02:29.160> also<03:02:29.439> add<03:02:29.680> a<03:02:29.880> button<03:02:30.399> in<03:02:30.560> case 03:02:30.790 --> 03:02:30.800 align:start position:0% it and we can also add a button in case 03:02:30.800 --> 03:02:33.349 align:start position:0% it and we can also add a button in case people<03:02:31.040> want<03:02:31.160> to<03:02:31.399> click<03:02:31.800> and<03:02:31.960> not<03:02:32.239> drag<03:02:33.040> so<03:02:33.239> we 03:02:33.349 --> 03:02:33.359 align:start position:0% people want to click and not drag so we 03:02:33.359 --> 03:02:36.389 align:start position:0% people want to click and not drag so we can<03:02:33.560> add<03:02:33.760> a<03:02:34.399> button<03:02:35.399> that's<03:02:35.600> going<03:02:35.760> to<03:02:35.920> say 03:02:36.389 --> 03:02:36.399 align:start position:0% can add a button that's going to say 03:02:36.399 --> 03:02:38.469 align:start position:0% can add a button that's going to say select<03:02:37.399> from 03:02:38.469 --> 03:02:38.479 align:start position:0% select from 03:02:38.479 --> 03:02:41.910 align:start position:0% select from computer<03:02:39.479> we<03:02:39.600> can<03:02:39.880> then<03:02:40.359> import<03:02:40.800> this<03:02:41.040> from<03:02:41.319> UI 03:02:41.910 --> 03:02:41.920 align:start position:0% computer we can then import this from UI 03:02:41.920 --> 03:02:46.429 align:start position:0% computer we can then import this from UI button<03:02:42.920> and<03:02:43.200> give<03:02:43.319> it<03:02:43.399> a<03:02:43.760> class<03:02:44.080> name<03:02:45.080> equal<03:02:45.439> to 03:02:46.429 --> 03:02:46.439 align:start position:0% button and give it a class name equal to 03:02:46.439 --> 03:02:48.070 align:start position:0% button and give it a class name equal to Shad 03:02:48.070 --> 03:02:48.080 align:start position:0% Shad 03:02:48.080 --> 03:02:50.309 align:start position:0% Shad button<03:02:49.080> undor 03:02:50.309 --> 03:02:50.319 align:start position:0% button undor 03:02:50.319 --> 03:02:54.030 align:start position:0% button undor dark4<03:02:51.319> and<03:02:51.640> save<03:02:51.920> it<03:02:52.920> there<03:02:53.080> we<03:02:53.279> go<03:02:53.760> this<03:02:53.880> is 03:02:54.030 --> 03:02:54.040 align:start position:0% dark4 and save it there we go this is 03:02:54.040 --> 03:02:56.349 align:start position:0% dark4 and save it there we go this is more<03:02:54.319> like<03:02:54.520> it<03:02:55.359> now<03:02:55.560> the<03:02:55.760> last<03:02:55.960> thing<03:02:56.120> we<03:02:56.239> have 03:02:56.349 --> 03:02:56.359 align:start position:0% more like it now the last thing we have 03:02:56.359 --> 03:02:59.229 align:start position:0% more like it now the last thing we have to<03:02:56.520> do<03:02:57.160> is<03:02:57.439> implement<03:02:58.160> the 03:02:59.229 --> 03:02:59.239 align:start position:0% to do is implement the 03:02:59.239 --> 03:03:01.110 align:start position:0% to do is implement the functionality<03:03:00.239> so<03:03:00.479> how<03:03:00.600> are<03:03:00.720> we<03:03:00.840> going<03:03:00.920> to 03:03:01.110 --> 03:03:01.120 align:start position:0% functionality so how are we going to 03:03:01.120 --> 03:03:04.110 align:start position:0% functionality so how are we going to figure<03:03:01.399> out<03:03:02.040> when<03:03:02.399> something<03:03:02.720> gets<03:03:03.120> uploaded 03:03:04.110 --> 03:03:04.120 align:start position:0% figure out when something gets uploaded 03:03:04.120 --> 03:03:06.389 align:start position:0% figure out when something gets uploaded well<03:03:04.319> in<03:03:04.560> this<03:03:04.760> case<03:03:05.279> we<03:03:05.439> have<03:03:05.640> the<03:03:05.840> get<03:03:06.040> root 03:03:06.389 --> 03:03:06.399 align:start position:0% well in this case we have the get root 03:03:06.399 --> 03:03:08.990 align:start position:0% well in this case we have the get root props<03:03:06.920> and<03:03:07.080> get<03:03:07.279> input<03:03:07.680> props<03:03:08.520> we<03:03:08.680> won't<03:03:08.880> be 03:03:08.990 --> 03:03:09.000 align:start position:0% props and get input props we won't be 03:03:09.000 --> 03:03:12.309 align:start position:0% props and get input props we won't be needing<03:03:09.359> is<03:03:09.640> drag<03:03:10.080> active<03:03:11.080> from<03:03:11.520> use<03:03:11.920> Drop 03:03:12.309 --> 03:03:12.319 align:start position:0% needing is drag active from use Drop 03:03:12.319 --> 03:03:14.070 align:start position:0% needing is drag active from use Drop Zone<03:03:12.920> on<03:03:13.200> drop 03:03:14.070 --> 03:03:14.080 align:start position:0% Zone on drop 03:03:14.080 --> 03:03:16.790 align:start position:0% Zone on drop to<03:03:15.080> the<03:03:15.239> second<03:03:15.560> parameter<03:03:16.080> to<03:03:16.279> this<03:03:16.439> used 03:03:16.790 --> 03:03:16.800 align:start position:0% to the second parameter to this used 03:03:16.800 --> 03:03:20.070 align:start position:0% to the second parameter to this used drop<03:03:17.120> zone<03:03:18.040> is<03:03:18.239> going<03:03:18.399> to<03:03:18.640> be<03:03:19.560> what<03:03:19.720> do<03:03:19.880> we 03:03:20.070 --> 03:03:20.080 align:start position:0% drop zone is going to be what do we 03:03:20.080 --> 03:03:24.750 align:start position:0% drop zone is going to be what do we accept<03:03:20.800> so<03:03:20.960> we<03:03:21.080> can<03:03:21.200> say<03:03:21.760> accept<03:03:22.760> an<03:03:23.120> object<03:03:24.120> of 03:03:24.750 --> 03:03:24.760 align:start position:0% accept so we can say accept an object of 03:03:24.760 --> 03:03:27.510 align:start position:0% accept so we can say accept an object of image<03:03:25.760> everything<03:03:26.439> and<03:03:26.560> we<03:03:26.680> can<03:03:26.880> Define<03:03:27.239> that 03:03:27.510 --> 03:03:27.520 align:start position:0% image everything and we can Define that 03:03:27.520 --> 03:03:30.229 align:start position:0% image everything and we can Define that right<03:03:27.960> here<03:03:28.960> that's<03:03:29.160> going<03:03:29.319> to<03:03:29.520> be<03:03:29.600> an<03:03:29.760> array 03:03:30.229 --> 03:03:30.239 align:start position:0% right here that's going to be an array 03:03:30.239 --> 03:03:31.670 align:start position:0% right here that's going to be an array of 03:03:31.670 --> 03:03:31.680 align:start position:0% of 03:03:31.680 --> 03:03:35.710 align:start position:0% of PNG<03:03:32.680> we<03:03:32.800> can<03:03:32.960> also<03:03:33.239> do<03:03:33.520> a<03:03:34.279> JPEG<03:03:35.279> and<03:03:35.439> we<03:03:35.520> can 03:03:35.710 --> 03:03:35.720 align:start position:0% PNG we can also do a JPEG and we can 03:03:35.720 --> 03:03:40.790 align:start position:0% PNG we can also do a JPEG and we can also<03:03:36.040> do<03:03:36.479> a<03:03:36.960> DOT<03:03:37.720> jpeg<03:03:38.600> like<03:03:38.920> this<03:03:39.920> also<03:03:40.319> maybe 03:03:40.790 --> 03:03:40.800 align:start position:0% also do a DOT jpeg like this also maybe 03:03:40.800 --> 03:03:44.950 align:start position:0% also do a DOT jpeg like this also maybe an<03:03:41.000> SVG<03:03:41.800> who<03:03:41.960> knows<03:03:42.840> why<03:03:43.000> not<03:03:43.840> there<03:03:44.000> we<03:03:44.160> go<03:03:44.760> so 03:03:44.950 --> 03:03:44.960 align:start position:0% an SVG who knows why not there we go so 03:03:44.960 --> 03:03:47.309 align:start position:0% an SVG who knows why not there we go so now<03:03:45.120> we're<03:03:45.319> defining<03:03:45.920> what<03:03:46.120> can<03:03:46.279> we<03:03:46.479> use<03:03:47.160> but 03:03:47.309 --> 03:03:47.319 align:start position:0% now we're defining what can we use but 03:03:47.319 --> 03:03:50.190 align:start position:0% now we're defining what can we use but now<03:03:47.560> let's<03:03:47.800> define<03:03:48.080> a<03:03:48.279> function<03:03:48.720> on<03:03:49.080> drop<03:03:49.920> what 03:03:50.190 --> 03:03:50.200 align:start position:0% now let's define a function on drop what 03:03:50.200 --> 03:03:53.630 align:start position:0% now let's define a function on drop what happens<03:03:50.960> once<03:03:51.200> we<03:03:51.560> actually<03:03:51.920> drop<03:03:52.279> some<03:03:52.640> files 03:03:53.630 --> 03:03:53.640 align:start position:0% happens once we actually drop some files 03:03:53.640 --> 03:03:55.870 align:start position:0% happens once we actually drop some files well<03:03:53.920> let's<03:03:54.160> also<03:03:54.399> create<03:03:54.760> another<03:03:55.120> use<03:03:55.479> state 03:03:55.870 --> 03:03:55.880 align:start position:0% well let's also create another use state 03:03:55.880 --> 03:03:58.389 align:start position:0% well let's also create another use state right<03:03:56.200> here<03:03:57.200> and<03:03:57.359> this<03:03:57.520> use<03:03:57.840> state<03:03:58.120> is<03:03:58.239> going 03:03:58.389 --> 03:03:58.399 align:start position:0% right here and this use state is going 03:03:58.399 --> 03:04:01.670 align:start position:0% right here and this use state is going to<03:03:58.520> be<03:03:58.640> for<03:03:58.840> the<03:03:59.120> file<03:03:59.560> itself<03:04:00.439> so<03:04:00.760> file<03:04:01.520> and 03:04:01.670 --> 03:04:01.680 align:start position:0% to be for the file itself so file and 03:04:01.680 --> 03:04:04.389 align:start position:0% to be for the file itself so file and then<03:04:01.880> set<03:04:02.319> file<03:04:03.040> at<03:04:03.160> the<03:04:03.359> start<03:04:03.800> equal<03:04:04.120> to<03:04:04.279> an 03:04:04.389 --> 03:04:04.399 align:start position:0% then set file at the start equal to an 03:04:04.399 --> 03:04:07.429 align:start position:0% then set file at the start equal to an empty<03:04:04.720> array<03:04:05.279> because<03:04:05.520> we<03:04:05.640> can<03:04:05.880> pass<03:04:06.160> multiple 03:04:07.429 --> 03:04:07.439 align:start position:0% empty array because we can pass multiple 03:04:07.439 --> 03:04:10.429 align:start position:0% empty array because we can pass multiple files<03:04:08.439> and<03:04:08.600> the<03:04:08.720> file<03:04:08.960> URL<03:04:09.640> is<03:04:09.760> of<03:04:09.920> course<03:04:10.160> only 03:04:10.429 --> 03:04:10.439 align:start position:0% files and the file URL is of course only 03:04:10.439 --> 03:04:13.990 align:start position:0% files and the file URL is of course only the<03:04:10.600> URL<03:04:11.359> of<03:04:11.479> the<03:04:11.640> file<03:04:11.920> we<03:04:12.399> pass<03:04:13.439> so<03:04:13.760> what<03:04:13.880> do 03:04:13.990 --> 03:04:14.000 align:start position:0% the URL of the file we pass so what do 03:04:14.000 --> 03:04:17.550 align:start position:0% the URL of the file we pass so what do we<03:04:14.160> do<03:04:14.359> once<03:04:14.560> we<03:04:14.720> drop<03:04:15.080> it<03:04:15.560> we<03:04:15.760> set<03:04:16.200> file<03:04:17.200> to<03:04:17.359> be 03:04:17.550 --> 03:04:17.560 align:start position:0% we do once we drop it we set file to be 03:04:17.560 --> 03:04:21.590 align:start position:0% we do once we drop it we set file to be equal<03:04:17.840> to<03:04:18.560> accepted<03:04:19.560> files<03:04:20.479> and<03:04:20.720> then<03:04:21.200> as 03:04:21.590 --> 03:04:21.600 align:start position:0% equal to accepted files and then as 03:04:21.600 --> 03:04:23.670 align:start position:0% equal to accepted files and then as props<03:04:22.120> to<03:04:22.359> this<03:04:22.560> component<03:04:23.200> we're<03:04:23.359> going<03:04:23.439> to 03:04:23.670 --> 03:04:23.680 align:start position:0% props to this component we're going to 03:04:23.680 --> 03:04:26.269 align:start position:0% props to this component we're going to pass<03:04:23.960> two<03:04:24.239> additional<03:04:24.720> things<03:04:25.560> so<03:04:25.760> going<03:04:26.120> back 03:04:26.269 --> 03:04:26.279 align:start position:0% pass two additional things so going back 03:04:26.279 --> 03:04:29.070 align:start position:0% pass two additional things so going back to<03:04:26.439> our<03:04:26.640> post<03:04:27.279> form<03:04:28.279> Finding<03:04:28.680> where<03:04:28.840> we<03:04:28.960> have 03:04:29.070 --> 03:04:29.080 align:start position:0% to our post form Finding where we have 03:04:29.080 --> 03:04:32.150 align:start position:0% to our post form Finding where we have the<03:04:29.200> file<03:04:29.520> uploader<03:04:30.479> we<03:04:30.560> can<03:04:30.840> pass<03:04:31.120> two<03:04:31.399> things 03:04:32.150 --> 03:04:32.160 align:start position:0% the file uploader we can pass two things 03:04:32.160 --> 03:04:34.229 align:start position:0% the file uploader we can pass two things we<03:04:32.279> can<03:04:32.479> pass<03:04:32.720> the<03:04:32.840> field 03:04:34.229 --> 03:04:34.239 align:start position:0% we can pass the field 03:04:34.239 --> 03:04:38.590 align:start position:0% we can pass the field change<03:04:35.239> and<03:04:35.359> we<03:04:35.439> can<03:04:35.640> also<03:04:36.000> pass<03:04:36.840> the<03:04:37.000> media 03:04:38.590 --> 03:04:38.600 align:start position:0% change and we can also pass the media 03:04:38.600 --> 03:04:41.550 align:start position:0% change and we can also pass the media URL<03:04:39.600> the<03:04:39.720> field<03:04:40.080> change<03:04:40.760> is<03:04:40.920> coming<03:04:41.359> right 03:04:41.550 --> 03:04:41.560 align:start position:0% URL the field change is coming right 03:04:41.560 --> 03:04:43.990 align:start position:0% URL the field change is coming right here<03:04:41.720> from<03:04:41.920> the<03:04:42.080> field<03:04:42.720> of<03:04:42.880> this<03:04:43.040> form<03:04:43.520> field 03:04:43.990 --> 03:04:44.000 align:start position:0% here from the field of this form field 03:04:44.000 --> 03:04:46.990 align:start position:0% here from the field of this form field so<03:04:44.160> that's<03:04:44.319> going<03:04:44.399> to<03:04:44.520> be<03:04:44.760> field.on 03:04:46.990 --> 03:04:47.000 align:start position:0% so that's going to be field.on 03:04:47.000 --> 03:04:50.750 align:start position:0% so that's going to be field.on change<03:04:48.000> but<03:04:48.359> the<03:04:48.520> media<03:04:48.960> URL<03:04:49.960> how<03:04:50.120> do<03:04:50.239> we<03:04:50.399> know 03:04:50.750 --> 03:04:50.760 align:start position:0% change but the media URL how do we know 03:04:50.760 --> 03:04:53.710 align:start position:0% change but the media URL how do we know what<03:04:50.880> is<03:04:51.000> the<03:04:51.120> URL<03:04:51.600> of<03:04:51.760> this<03:04:52.279> media<03:04:53.279> well 03:04:53.710 --> 03:04:53.720 align:start position:0% what is the URL of this media well 03:04:53.720 --> 03:04:55.790 align:start position:0% what is the URL of this media well that's<03:04:53.920> going<03:04:54.040> to<03:04:54.160> be<03:04:54.279> coming<03:04:54.600> through<03:04:54.920> props 03:04:55.790 --> 03:04:55.800 align:start position:0% that's going to be coming through props 03:04:55.800 --> 03:04:59.070 align:start position:0% that's going to be coming through props so<03:04:56.160> right<03:04:56.399> here<03:04:57.120> we<03:04:57.239> can<03:04:57.439> say<03:04:57.960> the<03:04:58.160> post<03:04:58.479> form 03:04:59.070 --> 03:04:59.080 align:start position:0% so right here we can say the post form 03:04:59.080 --> 03:05:02.429 align:start position:0% so right here we can say the post form is<03:04:59.319> going<03:04:59.520> to<03:04:59.760> accept<03:05:00.760> a<03:05:01.040> post<03:05:01.880> but<03:05:02.080> this<03:05:02.200> is 03:05:02.429 --> 03:05:02.439 align:start position:0% is going to accept a post but this is 03:05:02.439 --> 03:05:04.750 align:start position:0% is going to accept a post but this is only<03:05:02.840> if<03:05:02.960> we're<03:05:03.239> updating<03:05:03.760> it<03:05:04.120> right<03:05:04.359> if<03:05:04.439> we're 03:05:04.750 --> 03:05:04.760 align:start position:0% only if we're updating it right if we're 03:05:04.760 --> 03:05:06.830 align:start position:0% only if we're updating it right if we're updating<03:05:05.239> the<03:05:05.439> post<03:05:06.040> then<03:05:06.279> we<03:05:06.399> need<03:05:06.560> to<03:05:06.680> have 03:05:06.830 --> 03:05:06.840 align:start position:0% updating the post then we need to have 03:05:06.840 --> 03:05:09.670 align:start position:0% updating the post then we need to have an<03:05:07.000> existing<03:05:07.560> post<03:05:08.279> otherwise<03:05:09.040> we<03:05:09.200> don't<03:05:09.479> have 03:05:09.670 --> 03:05:09.680 align:start position:0% an existing post otherwise we don't have 03:05:09.680 --> 03:05:12.190 align:start position:0% an existing post otherwise we don't have anything<03:05:10.600> so<03:05:10.760> in<03:05:10.960> this<03:05:11.120> case<03:05:11.359> if<03:05:11.520> we<03:05:11.640> do<03:05:11.880> have<03:05:12.000> a 03:05:12.190 --> 03:05:12.200 align:start position:0% anything so in this case if we do have a 03:05:12.200 --> 03:05:15.990 align:start position:0% anything so in this case if we do have a post<03:05:13.040> then<03:05:13.479> we<03:05:13.600> can<03:05:13.880> pass<03:05:14.880> post<03:05:15.600> question 03:05:15.990 --> 03:05:16.000 align:start position:0% post then we can pass post question 03:05:16.000 --> 03:05:17.870 align:start position:0% post then we can pass post question mark.<03:05:16.640> image 03:05:17.870 --> 03:05:17.880 align:start position:0% mark. image 03:05:17.880 --> 03:05:20.670 align:start position:0% mark. image URL<03:05:18.880> and<03:05:19.080> now<03:05:19.279> we<03:05:19.399> can<03:05:19.600> dive<03:05:19.960> into<03:05:20.279> the<03:05:20.399> file 03:05:20.670 --> 03:05:20.680 align:start position:0% URL and now we can dive into the file 03:05:20.680 --> 03:05:23.950 align:start position:0% URL and now we can dive into the file uploader<03:05:21.680> and<03:05:22.000> accept<03:05:22.399> those<03:05:22.640> props<03:05:23.600> so<03:05:23.800> we're 03:05:23.950 --> 03:05:23.960 align:start position:0% uploader and accept those props so we're 03:05:23.960 --> 03:05:27.510 align:start position:0% uploader and accept those props so we're getting<03:05:24.239> the<03:05:24.359> field<03:05:25.120> change<03:05:26.120> as<03:05:26.359> well<03:05:27.160> as 03:05:27.510 --> 03:05:27.520 align:start position:0% getting the field change as well as 03:05:27.520 --> 03:05:30.469 align:start position:0% getting the field change as well as media<03:05:28.239> URL<03:05:29.120> and<03:05:29.319> for<03:05:29.520> now<03:05:29.760> we<03:05:29.840> can<03:05:30.000> put<03:05:30.239> these 03:05:30.469 --> 03:05:30.479 align:start position:0% media URL and for now we can put these 03:05:30.479 --> 03:05:33.510 align:start position:0% media URL and for now we can put these as<03:05:30.600> a<03:05:30.840> type<03:05:31.160> any<03:05:32.160> and<03:05:32.479> alongside<03:05:33.000> setting<03:05:33.319> the 03:05:33.510 --> 03:05:33.520 align:start position:0% as a type any and alongside setting the 03:05:33.520 --> 03:05:36.710 align:start position:0% as a type any and alongside setting the file<03:05:34.160> we<03:05:34.239> can<03:05:34.479> also<03:05:34.840> set<03:05:35.160> field<03:05:35.640> change<03:05:36.439> like 03:05:36.710 --> 03:05:36.720 align:start position:0% file we can also set field change like 03:05:36.720 --> 03:05:39.990 align:start position:0% file we can also set field change like this<03:05:37.399> to<03:05:37.760> accepted<03:05:38.439> files<03:05:39.439> and<03:05:39.560> then<03:05:39.720> we<03:05:39.840> can 03:05:39.990 --> 03:05:40.000 align:start position:0% this to accepted files and then we can 03:05:40.000 --> 03:05:45.110 align:start position:0% this to accepted files and then we can set<03:05:40.359> file<03:05:40.800> URL<03:05:41.800> to<03:05:42.000> be<03:05:42.200> equal<03:05:42.479> to 03:05:45.110 --> 03:05:45.120 align:start position:0% set file URL to be equal to 03:05:45.120 --> 03:05:50.429 align:start position:0% set file URL to be equal to URL<03:05:46.120> dot<03:05:47.120> create<03:05:48.120> object<03:05:48.880> URL<03:05:49.880> and<03:05:50.040> then<03:05:50.160> we 03:05:50.429 --> 03:05:50.439 align:start position:0% URL dot create object URL and then we 03:05:50.439 --> 03:05:53.870 align:start position:0% URL dot create object URL and then we pass<03:05:50.640> in<03:05:50.840> the<03:05:51.040> accepted<03:05:51.840> files<03:05:52.840> zero<03:05:53.479> so<03:05:53.720> the 03:05:53.870 --> 03:05:53.880 align:start position:0% pass in the accepted files zero so the 03:05:53.880 --> 03:05:56.389 align:start position:0% pass in the accepted files zero so the first<03:05:54.200> file<03:05:54.439> that<03:05:54.600> we<03:05:54.800> have<03:05:55.080> there<03:05:56.000> and<03:05:56.200> that's 03:05:56.389 --> 03:05:56.399 align:start position:0% first file that we have there and that's 03:05:56.399 --> 03:05:58.990 align:start position:0% first file that we have there and that's going<03:05:56.520> to<03:05:56.680> give<03:05:56.840> us<03:05:56.960> the<03:05:57.279> URL<03:05:58.279> as<03:05:58.439> the<03:05:58.560> Callback 03:05:58.990 --> 03:05:59.000 align:start position:0% going to give us the URL as the Callback 03:05:59.000 --> 03:06:02.030 align:start position:0% going to give us the URL as the Callback we<03:05:59.080> want<03:05:59.239> to<03:05:59.359> add<03:05:59.560> the<03:05:59.720> file<03:06:00.120> right<03:06:00.720> here<03:06:01.720> here 03:06:02.030 --> 03:06:02.040 align:start position:0% we want to add the file right here here 03:06:02.040 --> 03:06:04.510 align:start position:0% we want to add the file right here here we<03:06:02.160> need<03:06:02.319> to<03:06:02.520> define<03:06:02.880> the<03:06:03.120> type<03:06:03.840> and<03:06:04.040> this<03:06:04.239> type 03:06:04.510 --> 03:06:04.520 align:start position:0% we need to define the type and this type 03:06:04.520 --> 03:06:06.790 align:start position:0% we need to define the type and this type has<03:06:04.680> already<03:06:04.920> been<03:06:05.160> defined<03:06:05.720> by<03:06:05.920> react<03:06:06.399> drop 03:06:06.790 --> 03:06:06.800 align:start position:0% has already been defined by react drop 03:06:06.800 --> 03:06:08.830 align:start position:0% has already been defined by react drop zone<03:06:07.359> so<03:06:07.479> we<03:06:07.600> just<03:06:07.720> need<03:06:07.880> to<03:06:08.040> import<03:06:08.359> it<03:06:08.479> at<03:06:08.600> the 03:06:08.830 --> 03:06:08.840 align:start position:0% zone so we just need to import it at the 03:06:08.840 --> 03:06:14.190 align:start position:0% zone so we just need to import it at the top<03:06:09.479> by<03:06:09.640> saying<03:06:10.800> file<03:06:11.800> with<03:06:12.800> path 03:06:14.190 --> 03:06:14.200 align:start position:0% top by saying file with path 03:06:14.200 --> 03:06:16.990 align:start position:0% top by saying file with path and<03:06:14.359> now<03:06:14.560> we<03:06:14.680> can<03:06:14.840> say<03:06:15.200> this<03:06:15.359> is<03:06:15.479> of<03:06:15.680> a<03:06:16.000> type 03:06:16.990 --> 03:06:17.000 align:start position:0% and now we can say this is of a type 03:06:17.000 --> 03:06:20.950 align:start position:0% and now we can say this is of a type right<03:06:17.880> here<03:06:18.880> file<03:06:19.600> with 03:06:20.950 --> 03:06:20.960 align:start position:0% right here file with 03:06:20.960 --> 03:06:24.750 align:start position:0% right here file with path<03:06:21.960> we<03:06:22.080> can<03:06:22.239> also<03:06:22.479> Define<03:06:23.000> these<03:06:23.439> two<03:06:23.840> props 03:06:24.750 --> 03:06:24.760 align:start position:0% path we can also Define these two props 03:06:24.760 --> 03:06:26.710 align:start position:0% path we can also Define these two props by<03:06:24.920> saying<03:06:25.439> file 03:06:26.710 --> 03:06:26.720 align:start position:0% by saying file 03:06:26.720 --> 03:06:30.750 align:start position:0% by saying file uploader<03:06:27.760> props<03:06:28.760> and<03:06:28.880> then<03:06:29.000> we<03:06:29.120> can<03:06:29.760> Define 03:06:30.750 --> 03:06:30.760 align:start position:0% uploader props and then we can Define 03:06:30.760 --> 03:06:33.150 align:start position:0% uploader props and then we can Define this<03:06:31.000> interface<03:06:31.439> or<03:06:31.640> the<03:06:31.880> type<03:06:32.239> right<03:06:32.479> above 03:06:33.150 --> 03:06:33.160 align:start position:0% this interface or the type right above 03:06:33.160 --> 03:06:37.070 align:start position:0% this interface or the type right above by<03:06:33.319> saying<03:06:33.680> type<03:06:34.520> file<03:06:35.040> uploader<03:06:36.040> props<03:06:36.880> is 03:06:37.070 --> 03:06:37.080 align:start position:0% by saying type file uploader props is 03:06:37.080 --> 03:06:38.269 align:start position:0% by saying type file uploader props is equal 03:06:38.269 --> 03:06:38.279 align:start position:0% equal 03:06:38.279 --> 03:06:41.910 align:start position:0% equal to<03:06:39.279> we<03:06:39.479> first<03:06:39.760> have<03:06:39.920> the<03:06:40.040> field 03:06:41.910 --> 03:06:41.920 align:start position:0% to we first have the field 03:06:41.920 --> 03:06:44.349 align:start position:0% to we first have the field change<03:06:42.920> which<03:06:43.279> is<03:06:43.439> a 03:06:44.349 --> 03:06:44.359 align:start position:0% change which is a 03:06:44.359 --> 03:06:47.950 align:start position:0% change which is a function<03:06:45.359> that<03:06:45.720> accepts<03:06:46.560> files<03:06:47.520> which<03:06:47.680> is<03:06:47.800> of 03:06:47.950 --> 03:06:47.960 align:start position:0% function that accepts files which is of 03:06:47.960 --> 03:06:52.469 align:start position:0% function that accepts files which is of a<03:06:48.439> type<03:06:49.439> an<03:06:49.640> array<03:06:50.080> of<03:06:50.680> files<03:06:51.680> and<03:06:51.920> it<03:06:52.040> doesn't 03:06:52.469 --> 03:06:52.479 align:start position:0% a type an array of files and it doesn't 03:06:52.479 --> 03:06:55.349 align:start position:0% a type an array of files and it doesn't return<03:06:52.800> anything<03:06:53.560> so<03:06:53.960> void<03:06:54.960> and<03:06:55.080> then<03:06:55.239> the 03:06:55.349 --> 03:06:55.359 align:start position:0% return anything so void and then the 03:06:55.359 --> 03:06:59.309 align:start position:0% return anything so void and then the media<03:06:55.800> URL<03:06:56.760> which<03:06:56.880> is<03:06:57.000> going<03:06:57.160> to<03:06:57.279> be<03:06:57.399> of<03:06:57.560> a<03:06:57.760> type 03:06:59.309 --> 03:06:59.319 align:start position:0% media URL which is going to be of a type 03:06:59.319 --> 03:07:02.229 align:start position:0% media URL which is going to be of a type string<03:07:00.319> great<03:07:00.920> so<03:07:01.160> now<03:07:01.359> it's<03:07:01.600> complaining<03:07:02.080> a 03:07:02.229 --> 03:07:02.239 align:start position:0% string great so now it's complaining a 03:07:02.239 --> 03:07:04.870 align:start position:0% string great so now it's complaining a bit<03:07:02.520> about<03:07:02.840> these<03:07:03.080> accepted<03:07:03.600> files<03:07:04.600> that's 03:07:04.870 --> 03:07:04.880 align:start position:0% bit about these accepted files that's 03:07:04.880 --> 03:07:07.469 align:start position:0% bit about these accepted files that's because<03:07:05.560> here<03:07:05.800> we<03:07:05.920> can<03:07:06.120> Define<03:07:06.680> what<03:07:06.800> a<03:07:07.000> file 03:07:07.469 --> 03:07:07.479 align:start position:0% because here we can Define what a file 03:07:07.479 --> 03:07:11.630 align:start position:0% because here we can Define what a file is<03:07:08.319> a<03:07:08.600> file<03:07:09.120> is<03:07:09.239> an<03:07:09.439> array<03:07:10.000> of<03:07:10.279> files<03:07:11.200> so<03:07:11.359> we<03:07:11.479> can 03:07:11.630 --> 03:07:11.640 align:start position:0% is a file is an array of files so we can 03:07:11.640 --> 03:07:13.710 align:start position:0% is a file is an array of files so we can Define<03:07:12.000> it<03:07:12.439> like<03:07:12.640> so 03:07:13.710 --> 03:07:13.720 align:start position:0% Define it like so 03:07:13.720 --> 03:07:15.550 align:start position:0% Define it like so and<03:07:13.920> we<03:07:14.000> can<03:07:14.160> put<03:07:14.279> it<03:07:14.399> in<03:07:14.479> a<03:07:14.640> new<03:07:14.840> line<03:07:15.239> so<03:07:15.439> it's 03:07:15.550 --> 03:07:15.560 align:start position:0% and we can put it in a new line so it's 03:07:15.560 --> 03:07:17.990 align:start position:0% and we can put it in a new line so it's easier<03:07:15.920> to<03:07:16.040> see<03:07:16.279> what's<03:07:16.600> happening<03:07:17.600> there<03:07:17.800> we 03:07:17.990 --> 03:07:18.000 align:start position:0% easier to see what's happening there we 03:07:18.000 --> 03:07:20.750 align:start position:0% easier to see what's happening there we go<03:07:18.680> we<03:07:18.880> have<03:07:19.080> the<03:07:19.239> used<03:07:19.560> callback<03:07:20.399> where<03:07:20.600> we 03:07:20.750 --> 03:07:20.760 align:start position:0% go we have the used callback where we 03:07:20.760 --> 03:07:23.309 align:start position:0% go we have the used callback where we have<03:07:21.200> accepted<03:07:21.720> files<03:07:22.600> and<03:07:22.720> this<03:07:22.840> is<03:07:23.040> actually 03:07:23.309 --> 03:07:23.319 align:start position:0% have accepted files and this is actually 03:07:23.319 --> 03:07:26.309 align:start position:0% have accepted files and this is actually going<03:07:23.439> to<03:07:23.560> be<03:07:23.720> an<03:07:23.880> array<03:07:24.560> of<03:07:24.800> file<03:07:25.160> width<03:07:25.479> paths 03:07:26.309 --> 03:07:26.319 align:start position:0% going to be an array of file width paths 03:07:26.319 --> 03:07:28.830 align:start position:0% going to be an array of file width paths and<03:07:26.479> then<03:07:26.760> everything<03:07:27.160> is<03:07:27.399> good<03:07:28.239> once<03:07:28.439> we<03:07:28.600> do 03:07:28.830 --> 03:07:28.840 align:start position:0% and then everything is good once we do 03:07:28.840 --> 03:07:31.750 align:start position:0% and then everything is good once we do that<03:07:29.399> we're<03:07:29.760> actually<03:07:30.200> ready<03:07:30.720> to<03:07:31.000> set<03:07:31.439> all<03:07:31.640> of 03:07:31.750 --> 03:07:31.760 align:start position:0% that we're actually ready to set all of 03:07:31.760 --> 03:07:33.910 align:start position:0% that we're actually ready to set all of our<03:07:32.000> states<03:07:32.720> to<03:07:32.920> the<03:07:33.120> file<03:07:33.399> that<03:07:33.600> gets 03:07:33.910 --> 03:07:33.920 align:start position:0% our states to the file that gets 03:07:33.920 --> 03:07:36.950 align:start position:0% our states to the file that gets uploaded<03:07:34.920> so<03:07:35.120> let's<03:07:35.319> try<03:07:35.479> to<03:07:35.680> upload<03:07:36.040> a<03:07:36.239> file 03:07:36.950 --> 03:07:36.960 align:start position:0% uploaded so let's try to upload a file 03:07:36.960 --> 03:07:39.349 align:start position:0% uploaded so let's try to upload a file I'm<03:07:37.160> going<03:07:37.239> to<03:07:37.439> grab<03:07:37.760> one<03:07:37.920> from<03:07:38.120> our<03:07:38.279> finished 03:07:39.349 --> 03:07:39.359 align:start position:0% I'm going to grab one from our finished 03:07:39.359 --> 03:07:42.750 align:start position:0% I'm going to grab one from our finished application<03:07:40.359> let's<03:07:40.640> do<03:07:41.120> this<03:07:41.560> one<03:07:42.560> I'm<03:07:42.640> going 03:07:42.750 --> 03:07:42.760 align:start position:0% application let's do this one I'm going 03:07:42.760 --> 03:07:46.269 align:start position:0% application let's do this one I'm going to<03:07:42.880> save<03:07:43.120> save<03:07:43.680> it<03:07:44.680> and<03:07:44.960> now<03:07:45.479> I<03:07:45.560> can<03:07:45.760> add<03:07:45.960> it 03:07:46.269 --> 03:07:46.279 align:start position:0% to save save it and now I can add it 03:07:46.279 --> 03:07:47.590 align:start position:0% to save save it and now I can add it right 03:07:47.590 --> 03:07:47.600 align:start position:0% right 03:07:47.600 --> 03:07:50.229 align:start position:0% right here<03:07:48.600> and<03:07:48.760> there<03:07:48.880> we<03:07:49.080> go<03:07:49.479> it<03:07:49.640> gets<03:07:49.920> back<03:07:50.040> to 03:07:50.229 --> 03:07:50.239 align:start position:0% here and there we go it gets back to 03:07:50.239 --> 03:07:53.190 align:start position:0% here and there we go it gets back to test<03:07:50.560> one<03:07:51.279> but<03:07:51.520> hey<03:07:51.920> let's<03:07:52.239> actually<03:07:52.560> show<03:07:53.000> the 03:07:53.190 --> 03:07:53.200 align:start position:0% test one but hey let's actually show the 03:07:53.200 --> 03:07:56.870 align:start position:0% test one but hey let's actually show the file<03:07:53.479> that's<03:07:53.840> there<03:07:54.840> so<03:07:55.439> this<03:07:55.640> div<03:07:56.200> can<03:07:56.399> have<03:07:56.600> a 03:07:56.870 --> 03:07:56.880 align:start position:0% file that's there so this div can have a 03:07:56.880 --> 03:08:03.190 align:start position:0% file that's there so this div can have a class<03:07:57.279> name<03:07:58.120> equal<03:07:58.479> to<03:07:59.439> flex<03:08:00.439> Flex<03:08:01.439> D1<03:08:02.439> justify 03:08:03.190 --> 03:08:03.200 align:start position:0% class name equal to flex Flex D1 justify 03:08:03.200 --> 03:08:07.229 align:start position:0% class name equal to flex Flex D1 justify Das<03:08:03.600> Center<03:08:04.600> w-<03:08:05.359> full<03:08:05.640> for<03:08:05.840> full<03:08:06.239> width 03:08:07.229 --> 03:08:07.239 align:start position:0% Das Center w- full for full width 03:08:07.239 --> 03:08:09.990 align:start position:0% Das Center w- full for full width padding<03:08:07.720> five<03:08:08.399> and<03:08:08.560> en<03:08:08.800> large<03:08:09.120> devices 03:08:09.990 --> 03:08:10.000 align:start position:0% padding five and en large devices 03:08:10.000 --> 03:08:11.389 align:start position:0% padding five and en large devices padding 03:08:11.389 --> 03:08:11.399 align:start position:0% padding 03:08:11.399 --> 03:08:14.349 align:start position:0% padding 10<03:08:12.399> okay<03:08:12.800> that<03:08:13.080> just<03:08:13.239> gave<03:08:13.359> it<03:08:13.479> some<03:08:13.680> padding 03:08:14.349 --> 03:08:14.359 align:start position:0% 10 okay that just gave it some padding 03:08:14.359 --> 03:08:17.670 align:start position:0% 10 okay that just gave it some padding but<03:08:14.600> now<03:08:15.080> let's<03:08:15.399> actually<03:08:15.720> render<03:08:16.200> the<03:08:16.680> image 03:08:17.670 --> 03:08:17.680 align:start position:0% but now let's actually render the image 03:08:17.680 --> 03:08:19.870 align:start position:0% but now let's actually render the image it's<03:08:17.840> going<03:08:18.040> to<03:08:18.120> be<03:08:18.239> a<03:08:18.359> self-closing<03:08:19.120> image 03:08:19.870 --> 03:08:19.880 align:start position:0% it's going to be a self-closing image 03:08:19.880 --> 03:08:22.030 align:start position:0% it's going to be a self-closing image that's<03:08:20.080> going<03:08:20.239> to<03:08:20.399> have<03:08:20.560> a<03:08:20.720> source<03:08:21.520> equal<03:08:21.800> to 03:08:22.030 --> 03:08:22.040 align:start position:0% that's going to have a source equal to 03:08:22.040 --> 03:08:25.550 align:start position:0% that's going to have a source equal to file<03:08:22.720> URL<03:08:23.720> it's<03:08:23.880> going<03:08:24.040> to<03:08:24.200> have<03:08:24.319> an<03:08:24.479> Al<03:08:24.840> tag<03:08:25.200> of 03:08:25.550 --> 03:08:25.560 align:start position:0% file URL it's going to have an Al tag of 03:08:25.560 --> 03:08:28.150 align:start position:0% file URL it's going to have an Al tag of image<03:08:26.560> it's<03:08:26.720> going<03:08:26.880> to<03:08:27.040> have<03:08:27.160> a<03:08:27.399> class<03:08:27.760> name 03:08:28.150 --> 03:08:28.160 align:start position:0% image it's going to have a class name 03:08:28.160 --> 03:08:30.349 align:start position:0% image it's going to have a class name equal<03:08:28.479> to 03:08:30.349 --> 03:08:30.359 align:start position:0% equal to 03:08:30.359 --> 03:08:32.429 align:start position:0% equal to fileuploader<03:08:31.359> das 03:08:32.429 --> 03:08:32.439 align:start position:0% fileuploader das 03:08:32.439 --> 03:08:36.030 align:start position:0% fileuploader das IMG<03:08:33.439> and<03:08:33.640> there<03:08:33.800> we<03:08:33.960> go<03:08:34.640> finally<03:08:35.399> let's<03:08:35.680> add<03:08:35.840> a 03:08:36.030 --> 03:08:36.040 align:start position:0% IMG and there we go finally let's add a 03:08:36.040 --> 03:08:38.950 align:start position:0% IMG and there we go finally let's add a P<03:08:36.319> tag<03:08:36.640> right<03:08:36.800> below<03:08:37.640> that's<03:08:37.880> going<03:08:38.040> to<03:08:38.200> say 03:08:38.950 --> 03:08:38.960 align:start position:0% P tag right below that's going to say 03:08:38.960 --> 03:08:44.030 align:start position:0% P tag right below that's going to say click<03:08:39.520> or<03:08:40.080> drag<03:08:40.960> photo<03:08:41.720> to<03:08:42.080> replace 03:08:44.030 --> 03:08:44.040 align:start position:0% click or drag photo to replace 03:08:44.040 --> 03:08:46.269 align:start position:0% click or drag photo to replace and<03:08:44.359> let's<03:08:44.600> style<03:08:44.880> it<03:08:45.000> a<03:08:45.160> bit<03:08:45.520> by<03:08:45.680> giving<03:08:45.920> it<03:08:46.080> a 03:08:46.269 --> 03:08:46.279 align:start position:0% and let's style it a bit by giving it a 03:08:46.279 --> 03:08:49.630 align:start position:0% and let's style it a bit by giving it a class<03:08:46.640> name<03:08:47.399> equal<03:08:47.720> to 03:08:49.630 --> 03:08:49.640 align:start position:0% class name equal to 03:08:49.640 --> 03:08:52.830 align:start position:0% class name equal to fileuploader<03:08:50.640> das<03:08:51.239> label<03:08:52.239> and<03:08:52.439> we<03:08:52.560> have<03:08:52.680> to 03:08:52.830 --> 03:08:52.840 align:start position:0% fileuploader das label and we have to 03:08:52.840 --> 03:08:55.510 align:start position:0% fileuploader das label and we have to put<03:08:53.040> this<03:08:53.319> outside<03:08:53.920> of<03:08:54.120> this<03:08:54.319> div<03:08:54.720> right<03:08:54.920> here 03:08:55.510 --> 03:08:55.520 align:start position:0% put this outside of this div right here 03:08:55.520 --> 03:08:58.110 align:start position:0% put this outside of this div right here but<03:08:55.800> within<03:08:56.040> a<03:08:56.239> react<03:08:56.680> fragment<03:08:57.560> so<03:08:57.840> here<03:08:58.000> we 03:08:58.110 --> 03:08:58.120 align:start position:0% but within a react fragment so here we 03:08:58.120 --> 03:09:02.510 align:start position:0% but within a react fragment so here we can<03:08:58.279> put<03:08:58.399> a<03:08:58.560> react<03:08:59.319> fragment<03:09:00.359> close<03:09:01.359> the<03:09:01.560> div 03:09:02.510 --> 03:09:02.520 align:start position:0% can put a react fragment close the div 03:09:02.520 --> 03:09:04.550 align:start position:0% can put a react fragment close the div and<03:09:02.680> then<03:09:02.840> put<03:09:03.040> the<03:09:03.200> P<03:09:03.479> tag<03:09:03.880> outside<03:09:04.239> of<03:09:04.359> the 03:09:04.550 --> 03:09:04.560 align:start position:0% and then put the P tag outside of the 03:09:04.560 --> 03:09:06.830 align:start position:0% and then put the P tag outside of the div<03:09:05.200> but<03:09:05.520> inside<03:09:05.920> of<03:09:06.040> the 03:09:06.830 --> 03:09:06.840 align:start position:0% div but inside of the 03:09:06.840 --> 03:09:09.830 align:start position:0% div but inside of the fragment<03:09:07.840> if<03:09:08.000> we<03:09:08.120> save<03:09:08.399> it<03:09:09.200> that's<03:09:09.439> looking 03:09:09.830 --> 03:09:09.840 align:start position:0% fragment if we save it that's looking 03:09:09.840 --> 03:09:13.510 align:start position:0% fragment if we save it that's looking much<03:09:10.120> better<03:09:10.760> so<03:09:11.040> now<03:09:11.560> we<03:09:11.680> can<03:09:11.920> add<03:09:12.120> a<03:09:12.319> caption 03:09:13.510 --> 03:09:13.520 align:start position:0% much better so now we can add a caption 03:09:13.520 --> 03:09:16.910 align:start position:0% much better so now we can add a caption we<03:09:13.640> can<03:09:13.800> add<03:09:13.960> a<03:09:14.200> photo<03:09:14.840> location<03:09:15.720> and<03:09:16.000> the<03:09:16.200> tags 03:09:16.910 --> 03:09:16.920 align:start position:0% we can add a photo location and the tags 03:09:16.920 --> 03:09:19.830 align:start position:0% we can add a photo location and the tags and<03:09:17.120> click<03:09:17.359> submit<03:09:18.279> the<03:09:18.479> file<03:09:18.800> uploader<03:09:19.600> is 03:09:19.830 --> 03:09:19.840 align:start position:0% and click submit the file uploader is 03:09:19.840 --> 03:09:22.550 align:start position:0% and click submit the file uploader is done<03:09:20.800> but<03:09:21.200> let's<03:09:21.520> actually<03:09:21.920> implement<03:09:22.319> the 03:09:22.550 --> 03:09:22.560 align:start position:0% done but let's actually implement the 03:09:22.560 --> 03:09:24.870 align:start position:0% done but let's actually implement the logic<03:09:22.960> for<03:09:23.239> adding<03:09:23.720> all<03:09:23.920> of<03:09:24.160> these<03:09:24.439> other 03:09:24.870 --> 03:09:24.880 align:start position:0% logic for adding all of these other 03:09:24.880 --> 03:09:27.710 align:start position:0% logic for adding all of these other fields<03:09:25.880> first<03:09:26.080> of<03:09:26.279> all<03:09:26.720> the<03:09:26.840> form<03:09:27.200> fields<03:09:27.520> are 03:09:27.710 --> 03:09:27.720 align:start position:0% fields first of all the form fields are 03:09:27.720 --> 03:09:30.790 align:start position:0% fields first of all the form fields are complaining<03:09:28.479> that<03:09:28.960> this<03:09:29.120> doesn't<03:09:29.479> exist<03:09:30.479> file 03:09:30.790 --> 03:09:30.800 align:start position:0% complaining that this doesn't exist file 03:09:30.800 --> 03:09:33.710 align:start position:0% complaining that this doesn't exist file doesn't<03:09:31.160> exist<03:09:31.640> caption<03:09:32.040> doesn't<03:09:32.520> exist<03:09:33.520> and 03:09:33.710 --> 03:09:33.720 align:start position:0% doesn't exist caption doesn't exist and 03:09:33.720 --> 03:09:36.150 align:start position:0% doesn't exist caption doesn't exist and that's<03:09:34.000> because<03:09:34.640> we<03:09:34.840> haven't<03:09:35.120> yet<03:09:35.399> validated 03:09:36.150 --> 03:09:36.160 align:start position:0% that's because we haven't yet validated 03:09:36.160 --> 03:09:39.670 align:start position:0% that's because we haven't yet validated our<03:09:36.399> form<03:09:37.000> using<03:09:37.479> Zod<03:09:38.479> so<03:09:38.800> right<03:09:39.000> here<03:09:39.319> we<03:09:39.439> can 03:09:39.670 --> 03:09:39.680 align:start position:0% our form using Zod so right here we can 03:09:39.680 --> 03:09:42.550 align:start position:0% our form using Zod so right here we can Define<03:09:40.439> what<03:09:40.560> our<03:09:40.760> form<03:09:41.120> should<03:09:41.439> accept<03:09:42.399> this 03:09:42.550 --> 03:09:42.560 align:start position:0% Define what our form should accept this 03:09:42.560 --> 03:09:45.309 align:start position:0% Define what our form should accept this form<03:09:43.120> should<03:09:43.399> accept<03:09:43.800> a<03:09:44.040> caption<03:09:45.040> which<03:09:45.160> is 03:09:45.309 --> 03:09:45.319 align:start position:0% form should accept a caption which is 03:09:45.319 --> 03:09:48.710 align:start position:0% form should accept a caption which is going<03:09:45.479> to<03:09:45.640> be<03:09:46.160> if<03:09:46.319> the<03:09:46.479> post<03:09:46.880> exists<03:09:47.880> then<03:09:48.279> post 03:09:48.710 --> 03:09:48.720 align:start position:0% going to be if the post exists then post 03:09:48.720 --> 03:09:50.910 align:start position:0% going to be if the post exists then post question<03:09:49.040> mark.<03:09:49.600> Caption<03:09:50.239> This<03:09:50.359> is<03:09:50.479> for<03:09:50.720> when 03:09:50.910 --> 03:09:50.920 align:start position:0% question mark. Caption This is for when 03:09:50.920 --> 03:09:53.110 align:start position:0% question mark. Caption This is for when we're<03:09:51.120> editing<03:09:52.080> else<03:09:52.520> it's<03:09:52.640> going<03:09:52.800> to<03:09:52.920> be<03:09:53.000> an 03:09:53.110 --> 03:09:53.120 align:start position:0% we're editing else it's going to be an 03:09:53.120 --> 03:09:53.990 align:start position:0% we're editing else it's going to be an empty 03:09:53.990 --> 03:09:54.000 align:start position:0% empty 03:09:54.000 --> 03:09:57.870 align:start position:0% empty string<03:09:55.000> the<03:09:55.239> file<03:09:55.880> is<03:09:56.080> going<03:09:56.239> to<03:09:56.439> be<03:09:56.760> an<03:09:56.920> array 03:09:57.870 --> 03:09:57.880 align:start position:0% string the file is going to be an array 03:09:57.880 --> 03:10:01.469 align:start position:0% string the file is going to be an array of<03:09:58.279> files<03:09:59.279> location<03:09:59.960> is<03:10:00.120> going<03:10:00.279> to<03:10:00.520> be<03:10:01.160> if<03:10:01.319> we 03:10:01.469 --> 03:10:01.479 align:start position:0% of files location is going to be if we 03:10:01.479 --> 03:10:04.110 align:start position:0% of files location is going to be if we already<03:10:01.840> have<03:10:02.000> a<03:10:02.160> post<03:10:02.479> location<03:10:03.439> then<03:10:03.800> post 03:10:04.110 --> 03:10:04.120 align:start position:0% already have a post location then post 03:10:04.120 --> 03:10:08.190 align:start position:0% already have a post location then post location<03:10:04.920> else<03:10:05.239> an<03:10:05.399> empty<03:10:05.720> string<03:10:06.720> and<03:10:07.200> tags 03:10:08.190 --> 03:10:08.200 align:start position:0% location else an empty string and tags 03:10:08.200 --> 03:10:10.990 align:start position:0% location else an empty string and tags is<03:10:08.359> going<03:10:08.560> to<03:10:08.720> be<03:10:09.120> if<03:10:09.239> we<03:10:09.439> have<03:10:09.560> a<03:10:09.800> post<03:10:10.560> then 03:10:10.990 --> 03:10:11.000 align:start position:0% is going to be if we have a post then 03:10:11.000 --> 03:10:16.070 align:start position:0% is going to be if we have a post then post.<03:10:12.000> tags.<03:10:12.920> join<03:10:13.680> by<03:10:13.840> a<03:10:14.239> comma<03:10:15.239> else<03:10:15.920> it's 03:10:16.070 --> 03:10:16.080 align:start position:0% post. tags. join by a comma else it's 03:10:16.080 --> 03:10:18.750 align:start position:0% post. tags. join by a comma else it's simply<03:10:16.319> going<03:10:16.479> to<03:10:16.600> be<03:10:16.720> an<03:10:16.840> empty<03:10:17.560> string<03:10:18.560> now 03:10:18.750 --> 03:10:18.760 align:start position:0% simply going to be an empty string now 03:10:18.760 --> 03:10:20.190 align:start position:0% simply going to be an empty string now you<03:10:18.880> can<03:10:19.000> see<03:10:19.160> that<03:10:19.279> it's<03:10:19.439> complaining<03:10:20.040> that 03:10:20.190 --> 03:10:20.200 align:start position:0% you can see that it's complaining that 03:10:20.200 --> 03:10:22.670 align:start position:0% you can see that it's complaining that this<03:10:20.439> caption<03:10:20.800> does<03:10:21.000> not<03:10:21.399> exist<03:10:22.399> that's 03:10:22.670 --> 03:10:22.680 align:start position:0% this caption does not exist that's 03:10:22.680 --> 03:10:25.469 align:start position:0% this caption does not exist that's because<03:10:23.239> we<03:10:23.359> are<03:10:23.560> now<03:10:23.840> using<03:10:24.239> a<03:10:24.520> default<03:10:24.960> form 03:10:25.469 --> 03:10:25.479 align:start position:0% because we are now using a default form 03:10:25.479 --> 03:10:28.469 align:start position:0% because we are now using a default form schema<03:10:26.479> but<03:10:26.800> we<03:10:27.080> actually<03:10:27.439> want<03:10:27.600> to<03:10:27.840> turn<03:10:28.239> this 03:10:28.469 --> 03:10:28.479 align:start position:0% schema but we actually want to turn this 03:10:28.479 --> 03:10:32.190 align:start position:0% schema but we actually want to turn this into<03:10:28.920> post<03:10:29.720> validation<03:10:30.720> so<03:10:31.239> let's<03:10:31.560> head<03:10:31.880> into 03:10:32.190 --> 03:10:32.200 align:start position:0% into post validation so let's head into 03:10:32.200 --> 03:10:33.190 align:start position:0% into post validation so let's head into our 03:10:33.190 --> 03:10:33.200 align:start position:0% our 03:10:33.200 --> 03:10:35.510 align:start position:0% our validations<03:10:34.200> right<03:10:34.439> here<03:10:35.040> and<03:10:35.239> we<03:10:35.319> can 03:10:35.510 --> 03:10:35.520 align:start position:0% validations right here and we can 03:10:35.520 --> 03:10:38.790 align:start position:0% validations right here and we can duplicate<03:10:36.200> this<03:10:36.479> sign<03:10:36.960> inv<03:10:37.239> validation<03:10:38.200> right 03:10:38.790 --> 03:10:38.800 align:start position:0% duplicate this sign inv validation right 03:10:38.800 --> 03:10:42.150 align:start position:0% duplicate this sign inv validation right below<03:10:39.800> we<03:10:39.920> can<03:10:40.120> call<03:10:40.520> this<03:10:41.239> something<03:10:41.760> like 03:10:42.150 --> 03:10:42.160 align:start position:0% below we can call this something like 03:10:42.160 --> 03:10:43.790 align:start position:0% below we can call this something like post 03:10:43.790 --> 03:10:43.800 align:start position:0% post 03:10:43.800 --> 03:10:45.750 align:start position:0% post validation<03:10:44.800> it's<03:10:45.000> not<03:10:45.200> going<03:10:45.279> to<03:10:45.439> have<03:10:45.560> an 03:10:45.750 --> 03:10:45.760 align:start position:0% validation it's not going to have an 03:10:45.760 --> 03:10:48.510 align:start position:0% validation it's not going to have an email<03:10:46.680> not<03:10:46.880> a<03:10:47.120> password<03:10:47.960> but<03:10:48.120> it's<03:10:48.279> going<03:10:48.359> to 03:10:48.510 --> 03:10:48.520 align:start position:0% email not a password but it's going to 03:10:48.520 --> 03:10:51.670 align:start position:0% email not a password but it's going to have<03:10:48.640> a<03:10:48.880> caption<03:10:49.800> of<03:10:49.960> a<03:10:50.160> type<03:10:50.399> z. 03:10:51.670 --> 03:10:51.680 align:start position:0% have a caption of a type z. 03:10:51.680 --> 03:10:54.349 align:start position:0% have a caption of a type z. string<03:10:52.680> it's<03:10:52.840> going<03:10:53.000> to<03:10:53.120> be<03:10:53.319> a<03:10:53.479> minimum<03:10:54.080> of 03:10:54.349 --> 03:10:54.359 align:start position:0% string it's going to be a minimum of 03:10:54.359 --> 03:10:58.110 align:start position:0% string it's going to be a minimum of about<03:10:54.760> five<03:10:55.640> characters<03:10:56.640> and<03:10:56.880> a<03:10:57.160> maximum<03:10:57.880> of 03:10:58.110 --> 03:10:58.120 align:start position:0% about five characters and a maximum of 03:10:58.120 --> 03:11:02.030 align:start position:0% about five characters and a maximum of about<03:10:59.000> 2,200<03:11:00.120> characters<03:11:01.120> let's<03:11:01.359> also<03:11:01.640> have<03:11:01.800> a 03:11:02.030 --> 03:11:02.040 align:start position:0% about 2,200 characters let's also have a 03:11:02.040 --> 03:11:05.510 align:start position:0% about 2,200 characters let's also have a file<03:11:02.720> which<03:11:02.840> is<03:11:03.000> going<03:11:03.160> to<03:11:03.279> be<03:11:03.479> z.<03:11:04.399> custom<03:11:05.399> and 03:11:05.510 --> 03:11:05.520 align:start position:0% file which is going to be z. custom and 03:11:05.520 --> 03:11:09.110 align:start position:0% file which is going to be z. custom and we<03:11:05.640> can<03:11:05.840> Define<03:11:06.200> the<03:11:06.439> value<03:11:07.279> right<03:11:07.640> here<03:11:08.640> of 03:11:09.110 --> 03:11:09.120 align:start position:0% we can Define the value right here of 03:11:09.120 --> 03:11:12.870 align:start position:0% we can Define the value right here of file<03:11:09.880> or<03:11:10.080> rather<03:11:10.319> an<03:11:10.479> array<03:11:10.880> of<03:11:11.479> files<03:11:12.479> there 03:11:12.870 --> 03:11:12.880 align:start position:0% file or rather an array of files there 03:11:12.880 --> 03:11:15.670 align:start position:0% file or rather an array of files there we<03:11:13.200> go<03:11:14.200> it's<03:11:14.359> so<03:11:14.640> handy<03:11:14.920> how<03:11:15.040> we<03:11:15.120> can<03:11:15.319> Define 03:11:15.670 --> 03:11:15.680 align:start position:0% we go it's so handy how we can Define 03:11:15.680 --> 03:11:18.229 align:start position:0% we go it's so handy how we can Define custom<03:11:16.080> types<03:11:17.080> it's<03:11:17.239> going<03:11:17.399> to<03:11:17.560> have<03:11:17.680> a 03:11:18.229 --> 03:11:18.239 align:start position:0% custom types it's going to have a 03:11:18.239 --> 03:11:21.030 align:start position:0% custom types it's going to have a location<03:11:19.239> which<03:11:19.359> is<03:11:19.479> going<03:11:19.640> to<03:11:19.800> be<03:11:19.960> of<03:11:20.160> a<03:11:20.399> type 03:11:21.030 --> 03:11:21.040 align:start position:0% location which is going to be of a type 03:11:21.040 --> 03:11:26.510 align:start position:0% location which is going to be of a type z.<03:11:21.960> string<03:11:22.960> let's<03:11:23.200> do<03:11:24.040> Min<03:11:24.319> of<03:11:24.479> two<03:11:25.040> Max<03:11:25.680> 100 03:11:26.510 --> 03:11:26.520 align:start position:0% z. string let's do Min of two Max 100 03:11:26.520 --> 03:11:30.590 align:start position:0% z. string let's do Min of two Max 100 and<03:11:26.680> then<03:11:26.920> tags<03:11:27.520> is<03:11:27.640> going<03:11:27.840> to<03:11:27.960> be<03:11:28.200> a<03:11:28.399> z.<03:11:29.600> string 03:11:30.590 --> 03:11:30.600 align:start position:0% and then tags is going to be a z. string 03:11:30.600 --> 03:11:33.110 align:start position:0% and then tags is going to be a z. string there<03:11:30.760> we<03:11:30.960> go<03:11:31.800> so<03:11:32.000> now<03:11:32.200> we<03:11:32.319> have<03:11:32.520> this<03:11:32.720> custom 03:11:33.110 --> 03:11:33.120 align:start position:0% there we go so now we have this custom 03:11:33.120 --> 03:11:35.990 align:start position:0% there we go so now we have this custom post<03:11:33.520> validation<03:11:34.520> and<03:11:34.640> we<03:11:34.760> can<03:11:34.960> use<03:11:35.200> it<03:11:35.760> right 03:11:35.990 --> 03:11:36.000 align:start position:0% post validation and we can use it right 03:11:36.000 --> 03:11:38.550 align:start position:0% post validation and we can use it right here<03:11:36.800> three<03:11:37.120> times<03:11:37.760> where<03:11:38.040> mentioned<03:11:38.399> the 03:11:38.550 --> 03:11:38.560 align:start position:0% here three times where mentioned the 03:11:38.560 --> 03:11:41.229 align:start position:0% here three times where mentioned the form<03:11:39.239> schema<03:11:40.239> and<03:11:40.359> then<03:11:40.479> you<03:11:40.600> have<03:11:40.720> to<03:11:40.920> import 03:11:41.229 --> 03:11:41.239 align:start position:0% form schema and then you have to import 03:11:41.239 --> 03:11:45.590 align:start position:0% form schema and then you have to import it<03:11:41.680> from<03:11:42.080> lib<03:11:43.000> validation<03:11:44.000> there<03:11:44.160> we<03:11:44.359> go<03:11:45.319> so 03:11:45.590 --> 03:11:45.600 align:start position:0% it from lib validation there we go so 03:11:45.600 --> 03:11:48.030 align:start position:0% it from lib validation there we go so now<03:11:45.880> our<03:11:46.160> post<03:11:46.560> knows<03:11:47.279> what<03:11:47.399> we're<03:11:47.600> trying<03:11:47.880> to 03:11:48.030 --> 03:11:48.040 align:start position:0% now our post knows what we're trying to 03:11:48.040 --> 03:11:50.429 align:start position:0% now our post knows what we're trying to render<03:11:49.040> oh<03:11:49.319> I<03:11:49.439> just<03:11:49.600> noticed<03:11:50.080> here<03:11:50.239> we're 03:11:50.429 --> 03:11:50.439 align:start position:0% render oh I just noticed here we're 03:11:50.439 --> 03:11:52.750 align:start position:0% render oh I just noticed here we're using<03:11:50.800> the<03:11:50.960> input<03:11:51.479> we<03:11:51.640> have<03:11:51.760> to<03:11:51.960> spread<03:11:52.600> the 03:11:52.750 --> 03:11:52.760 align:start position:0% using the input we have to spread the 03:11:52.760 --> 03:11:56.630 align:start position:0% using the input we have to spread the field<03:11:53.520> so<03:11:53.680> we<03:11:53.840> have<03:11:53.960> to<03:11:54.160> say<03:11:54.760> do<03:11:55.080> do<03:11:55.359> dot<03:11:55.880> field 03:11:56.630 --> 03:11:56.640 align:start position:0% field so we have to say do do dot field 03:11:56.640 --> 03:11:59.229 align:start position:0% field so we have to say do do dot field like<03:11:56.880> so<03:11:57.600> and<03:11:57.760> also<03:11:58.000> we<03:11:58.120> have<03:11:58.239> to<03:11:58.359> do<03:11:58.520> the<03:11:58.720> same 03:11:59.229 --> 03:11:59.239 align:start position:0% like so and also we have to do the same 03:11:59.239 --> 03:12:03.309 align:start position:0% like so and also we have to do the same for<03:11:59.560> the<03:11:59.840> last<03:12:00.279> one<03:12:00.680> right<03:12:01.160> here<03:12:02.160> do<03:12:02.439> dot<03:12:02.720> dot 03:12:03.309 --> 03:12:03.319 align:start position:0% for the last one right here do dot dot 03:12:03.319 --> 03:12:06.110 align:start position:0% for the last one right here do dot dot field<03:12:04.319> there<03:12:04.479> we<03:12:04.640> go<03:12:05.160> we're<03:12:05.359> getting<03:12:05.680> there<03:12:05.960> we 03:12:06.110 --> 03:12:06.120 align:start position:0% field there we go we're getting there we 03:12:06.120 --> 03:12:08.830 align:start position:0% field there we go we're getting there we have<03:12:06.239> a<03:12:06.359> couple<03:12:06.680> more<03:12:06.920> errors<03:12:07.720> as<03:12:07.800> you<03:12:07.920> can<03:12:08.120> see 03:12:08.830 --> 03:12:08.840 align:start position:0% have a couple more errors as you can see 03:12:08.840 --> 03:12:10.830 align:start position:0% have a couple more errors as you can see we<03:12:09.000> don't<03:12:09.239> need<03:12:09.439> this<03:12:09.600> form<03:12:09.920> schema<03:12:10.520> as<03:12:10.720> we 03:12:10.830 --> 03:12:10.840 align:start position:0% we don't need this form schema as we 03:12:10.840 --> 03:12:13.190 align:start position:0% we don't need this form schema as we have<03:12:11.040> created<03:12:11.439> it<03:12:11.840> in<03:12:12.080> another<03:12:12.399> file 03:12:13.190 --> 03:12:13.200 align:start position:0% have created it in another file 03:12:13.200 --> 03:12:15.830 align:start position:0% have created it in another file file<03:12:14.200> it's<03:12:14.399> also<03:12:14.640> complaining<03:12:15.200> about<03:12:15.680> what 03:12:15.830 --> 03:12:15.840 align:start position:0% file it's also complaining about what 03:12:15.840 --> 03:12:18.950 align:start position:0% file it's also complaining about what we're<03:12:16.399> receiving<03:12:16.800> here<03:12:17.800> typescript<03:12:18.520> is<03:12:18.680> also 03:12:18.950 --> 03:12:18.960 align:start position:0% we're receiving here typescript is also 03:12:18.960 --> 03:12:21.870 align:start position:0% we're receiving here typescript is also complaining<03:12:19.560> about<03:12:19.840> the<03:12:20.080> type<03:12:20.720> of<03:12:21.000> our<03:12:21.399> props 03:12:21.870 --> 03:12:21.880 align:start position:0% complaining about the type of our props 03:12:21.880 --> 03:12:23.870 align:start position:0% complaining about the type of our props here<03:12:22.399> so<03:12:22.560> we<03:12:22.680> can<03:12:22.800> say<03:12:23.080> this<03:12:23.200> is<03:12:23.319> going<03:12:23.479> to<03:12:23.640> be 03:12:23.870 --> 03:12:23.880 align:start position:0% here so we can say this is going to be 03:12:23.880 --> 03:12:28.030 align:start position:0% here so we can say this is going to be of<03:12:24.279> post<03:12:25.080> form<03:12:26.040> props<03:12:27.040> and<03:12:27.160> we<03:12:27.279> can<03:12:27.479> Define<03:12:27.760> it 03:12:28.030 --> 03:12:28.040 align:start position:0% of post form props and we can Define it 03:12:28.040 --> 03:12:31.750 align:start position:0% of post form props and we can Define it right<03:12:28.239> here<03:12:28.960> by<03:12:29.080> saying<03:12:29.600> type<03:12:30.600> post<03:12:31.120> form 03:12:31.750 --> 03:12:31.760 align:start position:0% right here by saying type post form 03:12:31.760 --> 03:12:35.910 align:start position:0% right here by saying type post form props<03:12:32.520> is<03:12:32.720> equal<03:12:33.479> to<03:12:34.479> where<03:12:34.640> we<03:12:34.800> have<03:12:34.960> a<03:12:35.160> post 03:12:35.910 --> 03:12:35.920 align:start position:0% props is equal to where we have a post 03:12:35.920 --> 03:12:37.750 align:start position:0% props is equal to where we have a post question<03:12:36.279> mark<03:12:36.800> meaning<03:12:37.399> sometimes<03:12:37.600> it's 03:12:37.750 --> 03:12:37.760 align:start position:0% question mark meaning sometimes it's 03:12:37.760 --> 03:12:40.309 align:start position:0% question mark meaning sometimes it's going<03:12:37.880> to<03:12:38.040> be<03:12:38.279> here<03:12:38.960> sometimes<03:12:39.239> it<03:12:39.359> will<03:12:39.600> not 03:12:40.309 --> 03:12:40.319 align:start position:0% going to be here sometimes it will not 03:12:40.319 --> 03:12:44.110 align:start position:0% going to be here sometimes it will not and<03:12:40.479> this<03:12:40.600> is<03:12:40.760> of<03:12:40.920> a<03:12:41.120> type<03:12:41.479> models<03:12:42.359> do<03:12:43.120> document 03:12:44.110 --> 03:12:44.120 align:start position:0% and this is of a type models do document 03:12:44.120 --> 03:12:45.870 align:start position:0% and this is of a type models do document and<03:12:44.279> this<03:12:44.479> models<03:12:45.040> is<03:12:45.160> going<03:12:45.239> to<03:12:45.359> be<03:12:45.520> coming 03:12:45.870 --> 03:12:45.880 align:start position:0% and this models is going to be coming 03:12:45.880 --> 03:12:47.429 align:start position:0% and this models is going to be coming from 03:12:47.429 --> 03:12:47.439 align:start position:0% from 03:12:47.439 --> 03:12:50.750 align:start position:0% from aight<03:12:48.439> we<03:12:48.600> also<03:12:48.800> are<03:12:48.960> never<03:12:49.239> using<03:12:49.520> a<03:12:49.640> form 03:12:50.750 --> 03:12:50.760 align:start position:0% aight we also are never using a form 03:12:50.760 --> 03:12:53.429 align:start position:0% aight we also are never using a form description<03:12:51.760> and<03:12:52.080> we<03:12:52.200> can<03:12:52.399> now<03:12:52.920> structure 03:12:53.429 --> 03:12:53.439 align:start position:0% description and we can now structure 03:12:53.439 --> 03:12:56.030 align:start position:0% description and we can now structure this<03:12:53.600> more<03:12:53.960> nicely<03:12:54.760> by<03:12:55.000> putting<03:12:55.279> it<03:12:55.680> in<03:12:55.840> a 03:12:56.030 --> 03:12:56.040 align:start position:0% this more nicely by putting it in a 03:12:56.040 --> 03:12:57.469 align:start position:0% this more nicely by putting it in a single 03:12:57.469 --> 03:12:57.479 align:start position:0% single 03:12:57.479 --> 03:13:01.469 align:start position:0% single line<03:12:58.479> there<03:12:58.720> we<03:12:58.920> go<03:12:59.560> so<03:12:59.800> now<03:13:00.000> we<03:13:00.160> have<03:13:00.279> our<03:13:00.479> form 03:13:01.469 --> 03:13:01.479 align:start position:0% line there we go so now we have our form 03:13:01.479 --> 03:13:04.030 align:start position:0% line there we go so now we have our form which<03:13:01.920> we're<03:13:02.200> almost<03:13:02.640> there<03:13:03.319> we<03:13:03.439> can<03:13:03.680> actually 03:13:04.030 --> 03:13:04.040 align:start position:0% which we're almost there we can actually 03:13:04.040 --> 03:13:06.269 align:start position:0% which we're almost there we can actually put<03:13:04.239> the<03:13:04.399> values<03:13:04.720> in<03:13:05.399> the<03:13:05.560> validation<03:13:06.120> is 03:13:06.269 --> 03:13:06.279 align:start position:0% put the values in the validation is 03:13:06.279 --> 03:13:08.630 align:start position:0% put the values in the validation is working<03:13:06.760> as<03:13:06.840> you<03:13:06.960> can<03:13:07.120> see<03:13:07.880> we<03:13:08.000> can<03:13:08.200> upload 03:13:08.630 --> 03:13:08.640 align:start position:0% working as you can see we can upload 03:13:08.640 --> 03:13:12.670 align:start position:0% working as you can see we can upload images<03:13:09.560> add<03:13:09.720> a<03:13:09.960> location<03:13:10.720> and<03:13:10.960> add<03:13:11.279> tags<03:13:12.239> the 03:13:12.670 --> 03:13:12.680 align:start position:0% images add a location and add tags the 03:13:12.680 --> 03:13:14.710 align:start position:0% images add a location and add tags the last<03:13:12.840> thing<03:13:13.000> we<03:13:13.120> have<03:13:13.239> to<03:13:13.399> do<03:13:14.040> is<03:13:14.279> implement 03:13:14.710 --> 03:13:14.720 align:start position:0% last thing we have to do is implement 03:13:14.720 --> 03:13:18.110 align:start position:0% last thing we have to do is implement the<03:13:15.040> logic<03:13:16.040> what<03:13:16.319> happens<03:13:17.120> once<03:13:17.359> we<03:13:17.560> click 03:13:18.110 --> 03:13:18.120 align:start position:0% the logic what happens once we click 03:13:18.120 --> 03:13:20.190 align:start position:0% the logic what happens once we click submit<03:13:18.960> and<03:13:19.200> this<03:13:19.359> is<03:13:19.600> where<03:13:19.760> we're<03:13:19.920> going<03:13:20.040> to 03:13:20.190 --> 03:13:20.200 align:start position:0% submit and this is where we're going to 03:13:20.200 --> 03:13:23.630 align:start position:0% submit and this is where we're going to connect<03:13:20.680> with<03:13:20.960> aite<03:13:21.960> and<03:13:22.239> create<03:13:22.479> a<03:13:22.640> new<03:13:22.920> post 03:13:23.630 --> 03:13:23.640 align:start position:0% connect with aite and create a new post 03:13:23.640 --> 03:13:27.389 align:start position:0% connect with aite and create a new post based<03:13:24.080> off<03:13:24.279> of<03:13:24.479> these<03:13:25.040> values<03:13:26.040> within<03:13:26.600> here<03:13:27.239> we 03:13:27.389 --> 03:13:27.399 align:start position:0% based off of these values within here we 03:13:27.399 --> 03:13:30.150 align:start position:0% based off of these values within here we can<03:13:27.560> now<03:13:27.840> use<03:13:28.239> this<03:13:28.439> new<03:13:29.080> hook<03:13:29.600> coming<03:13:29.880> from 03:13:30.150 --> 03:13:30.160 align:start position:0% can now use this new hook coming from 03:13:30.160 --> 03:13:32.790 align:start position:0% can now use this new hook coming from react<03:13:30.640> query<03:13:31.600> so<03:13:31.800> let's<03:13:32.040> define<03:13:32.359> it<03:13:32.640> right 03:13:32.790 --> 03:13:32.800 align:start position:0% react query so let's define it right 03:13:32.800 --> 03:13:36.630 align:start position:0% react query so let's define it right here<03:13:33.000> at<03:13:33.160> the<03:13:33.439> top<03:13:34.439> by<03:13:34.960> saying 03:13:36.630 --> 03:13:36.640 align:start position:0% here at the top by saying 03:13:36.640 --> 03:13:39.389 align:start position:0% here at the top by saying const<03:13:37.840> mutate 03:13:39.389 --> 03:13:39.399 align:start position:0% const mutate 03:13:39.399 --> 03:13:43.750 align:start position:0% const mutate async<03:13:40.399> which<03:13:40.560> we<03:13:40.680> can<03:13:40.880> call<03:13:41.239> create<03:13:41.760> post<03:13:42.960> and 03:13:43.750 --> 03:13:43.760 align:start position:0% async which we can call create post and 03:13:43.760 --> 03:13:49.309 align:start position:0% async which we can call create post and is<03:13:44.399> pending<03:13:45.399> which<03:13:45.560> we<03:13:45.680> can<03:13:45.920> call<03:13:46.359> is<03:13:47.000> loading 03:13:49.309 --> 03:13:49.319 align:start position:0% is pending which we can call is loading 03:13:49.319 --> 03:13:54.630 align:start position:0% is pending which we can call is loading create<03:13:50.319> that<03:13:50.520> is<03:13:50.760> equal<03:13:51.040> to<03:13:51.680> use<03:13:52.439> create<03:13:53.640> post 03:13:54.630 --> 03:13:54.640 align:start position:0% create that is equal to use create post 03:13:54.640 --> 03:13:57.229 align:start position:0% create that is equal to use create post and<03:13:54.760> we<03:13:54.880> can<03:13:55.120> import<03:13:55.560> use<03:13:55.880> create<03:13:56.239> post<03:13:56.920> coming 03:13:57.229 --> 03:13:57.239 align:start position:0% and we can import use create post coming 03:13:57.239 --> 03:13:59.510 align:start position:0% and we can import use create post coming from<03:13:57.760> queries<03:13:58.239> and 03:13:59.510 --> 03:13:59.520 align:start position:0% from queries and 03:13:59.520 --> 03:14:02.150 align:start position:0% from queries and mutations<03:14:00.520> now<03:14:00.720> that<03:14:00.880> we<03:14:01.080> have<03:14:01.239> it<03:14:01.880> we<03:14:02.000> can 03:14:02.150 --> 03:14:02.160 align:start position:0% mutations now that we have it we can 03:14:02.160 --> 03:14:04.590 align:start position:0% mutations now that we have it we can simply<03:14:02.560> call<03:14:03.000> this<03:14:03.200> create<03:14:03.640> post<03:14:04.359> right 03:14:04.590 --> 03:14:04.600 align:start position:0% simply call this create post right 03:14:04.600 --> 03:14:05.830 align:start position:0% simply call this create post right within 03:14:05.830 --> 03:14:05.840 align:start position:0% within 03:14:05.840 --> 03:14:07.870 align:start position:0% within onsubmit<03:14:06.840> the<03:14:07.000> way<03:14:07.200> in<03:14:07.359> which<03:14:07.479> we're<03:14:07.640> going<03:14:07.720> to 03:14:07.870 --> 03:14:07.880 align:start position:0% onsubmit the way in which we're going to 03:14:07.880 --> 03:14:13.269 align:start position:0% onsubmit the way in which we're going to call<03:14:08.160> it<03:14:08.760> is<03:14:09.600> const<03:14:10.479> new<03:14:10.880> post<03:14:11.680> is<03:14:11.960> equal<03:14:12.279> to<03:14:12.560> to 03:14:13.269 --> 03:14:13.279 align:start position:0% call it is const new post is equal to to 03:14:13.279 --> 03:14:17.590 align:start position:0% call it is const new post is equal to to await<03:14:14.279> create<03:14:14.760> post<03:14:15.680> to<03:14:16.000> which<03:14:16.600> we<03:14:16.880> pass<03:14:17.279> an 03:14:17.590 --> 03:14:17.600 align:start position:0% await create post to which we pass an 03:14:17.600 --> 03:14:21.349 align:start position:0% await create post to which we pass an object<03:14:18.359> where<03:14:18.560> we<03:14:18.800> spread<03:14:19.560> all<03:14:20.000> values<03:14:20.960> of<03:14:21.120> a 03:14:21.349 --> 03:14:21.359 align:start position:0% object where we spread all values of a 03:14:21.359 --> 03:14:26.750 align:start position:0% object where we spread all values of a post<03:14:22.359> and<03:14:22.479> then<03:14:22.760> pass<03:14:23.080> the<03:14:23.319> user<03:14:24.279> ID<03:14:25.200> of<03:14:25.399> a<03:14:25.640> type 03:14:26.750 --> 03:14:26.760 align:start position:0% post and then pass the user ID of a type 03:14:26.760 --> 03:14:28.269 align:start position:0% post and then pass the user ID of a type user. 03:14:28.269 --> 03:14:28.279 align:start position:0% user. 03:14:28.279 --> 03:14:32.349 align:start position:0% user. ID<03:14:29.279> of<03:14:29.560> a<03:14:29.760> user<03:14:30.319> that<03:14:30.520> has<03:14:30.720> created<03:14:31.080> the<03:14:31.359> post 03:14:32.349 --> 03:14:32.359 align:start position:0% ID of a user that has created the post 03:14:32.359 --> 03:14:34.510 align:start position:0% ID of a user that has created the post once<03:14:32.640> again<03:14:33.439> how<03:14:33.600> are<03:14:33.720> we<03:14:33.840> going<03:14:34.000> to<03:14:34.160> get<03:14:34.359> the 03:14:34.510 --> 03:14:34.520 align:start position:0% once again how are we going to get the 03:14:34.520 --> 03:14:36.670 align:start position:0% once again how are we going to get the user<03:14:34.840> that's<03:14:35.000> creating<03:14:35.359> the<03:14:35.560> post<03:14:36.359> well 03:14:36.670 --> 03:14:36.680 align:start position:0% user that's creating the post well 03:14:36.680 --> 03:14:39.269 align:start position:0% user that's creating the post well that's<03:14:36.920> pretty<03:14:37.239> simple<03:14:38.040> we<03:14:38.200> have<03:14:38.399> created<03:14:38.880> our 03:14:39.269 --> 03:14:39.279 align:start position:0% that's pretty simple we have created our 03:14:39.279 --> 03:14:42.229 align:start position:0% that's pretty simple we have created our context<03:14:40.279> so<03:14:40.560> now<03:14:40.960> at<03:14:41.080> the<03:14:41.319> top<03:14:41.800> we<03:14:41.880> can<03:14:42.000> say 03:14:42.229 --> 03:14:42.239 align:start position:0% context so now at the top we can say 03:14:42.239 --> 03:14:43.910 align:start position:0% context so now at the top we can say cont 03:14:43.910 --> 03:14:43.920 align:start position:0% cont 03:14:43.920 --> 03:14:49.269 align:start position:0% cont user<03:14:44.920> is<03:14:45.279> equal<03:14:45.640> to<03:14:46.680> use<03:14:47.760> user 03:14:49.269 --> 03:14:49.279 align:start position:0% user is equal to use user 03:14:49.279 --> 03:14:51.670 align:start position:0% user is equal to use user context<03:14:50.279> and<03:14:50.439> we<03:14:50.560> can<03:14:50.760> import<03:14:51.200> this<03:14:51.359> from 03:14:51.670 --> 03:14:51.680 align:start position:0% context and we can import this from 03:14:51.680 --> 03:14:53.309 align:start position:0% context and we can import this from Context<03:14:52.279> o 03:14:53.309 --> 03:14:53.319 align:start position:0% Context o 03:14:53.319 --> 03:14:57.389 align:start position:0% Context o context<03:14:54.319> and<03:14:54.800> immediately<03:14:55.640> you<03:14:55.840> get<03:14:56.000> the<03:14:56.399> ID 03:14:57.389 --> 03:14:57.399 align:start position:0% context and immediately you get the ID 03:14:57.399 --> 03:15:00.389 align:start position:0% context and immediately you get the ID so<03:14:57.640> now<03:14:57.880> we<03:14:58.000> have<03:14:58.200> this<03:14:58.439> new<03:14:58.920> post<03:14:59.920> and<03:15:00.160> what<03:15:00.279> do 03:15:00.389 --> 03:15:00.399 align:start position:0% so now we have this new post and what do 03:15:00.399 --> 03:15:03.110 align:start position:0% so now we have this new post and what do we<03:15:00.479> want<03:15:00.560> to<03:15:00.720> do<03:15:00.920> once<03:15:01.120> we<03:15:01.279> create<03:15:01.680> it<03:15:02.680> well<03:15:03.040> we 03:15:03.110 --> 03:15:03.120 align:start position:0% we want to do once we create it well we 03:15:03.120 --> 03:15:07.389 align:start position:0% we want to do once we create it well we can<03:15:03.279> say<03:15:03.640> if<03:15:04.399> there<03:15:04.600> is<03:15:04.880> no<03:15:05.479> new<03:15:05.920> Post<03:15:06.920> in<03:15:07.160> that 03:15:07.389 --> 03:15:07.399 align:start position:0% can say if there is no new Post in that 03:15:07.399 --> 03:15:09.349 align:start position:0% can say if there is no new Post in that case<03:15:07.880> we<03:15:08.000> can<03:15:08.319> return<03:15:08.600> a 03:15:09.349 --> 03:15:09.359 align:start position:0% case we can return a 03:15:09.359 --> 03:15:13.269 align:start position:0% case we can return a toast<03:15:10.359> that's<03:15:10.560> going<03:15:10.720> to<03:15:10.960> have<03:15:11.160> a<03:15:11.399> title<03:15:12.520> of 03:15:13.269 --> 03:15:13.279 align:start position:0% toast that's going to have a title of 03:15:13.279 --> 03:15:15.269 align:start position:0% toast that's going to have a title of something<03:15:13.720> like 03:15:15.269 --> 03:15:15.279 align:start position:0% something like 03:15:15.279 --> 03:15:19.510 align:start position:0% something like please<03:15:16.279> try<03:15:17.200> again<03:15:18.160> and<03:15:18.399> this<03:15:18.640> toast<03:15:19.319> is 03:15:19.510 --> 03:15:19.520 align:start position:0% please try again and this toast is 03:15:19.520 --> 03:15:24.590 align:start position:0% please try again and this toast is coming<03:15:19.880> from<03:15:20.760> const<03:15:21.720> toast<03:15:22.720> is<03:15:22.960> equal<03:15:23.279> to<03:15:24.000> use 03:15:24.590 --> 03:15:24.600 align:start position:0% coming from const toast is equal to use 03:15:24.600 --> 03:15:28.990 align:start position:0% coming from const toast is equal to use toast<03:15:25.319> coming<03:15:25.600> from<03:15:25.880> UI<03:15:26.760> use<03:15:27.640> toast<03:15:28.640> there<03:15:28.800> we 03:15:28.990 --> 03:15:29.000 align:start position:0% toast coming from UI use toast there we 03:15:29.000 --> 03:15:31.150 align:start position:0% toast coming from UI use toast there we go<03:15:29.680> what<03:15:29.880> happens<03:15:30.199> if<03:15:30.359> we<03:15:30.560> successfully 03:15:31.150 --> 03:15:31.160 align:start position:0% go what happens if we successfully 03:15:31.160 --> 03:15:34.110 align:start position:0% go what happens if we successfully created<03:15:31.520> a<03:15:31.680> new<03:15:32.000> post<03:15:33.000> well<03:15:33.160> in<03:15:33.399> that<03:15:33.640> case<03:15:33.960> we 03:15:34.110 --> 03:15:34.120 align:start position:0% created a new post well in that case we 03:15:34.120 --> 03:15:37.070 align:start position:0% created a new post well in that case we simply<03:15:34.399> want<03:15:34.560> to<03:15:34.840> navigate<03:15:35.600> to<03:15:35.800> the<03:15:36.080> homepage 03:15:37.070 --> 03:15:37.080 align:start position:0% simply want to navigate to the homepage 03:15:37.080 --> 03:15:39.150 align:start position:0% simply want to navigate to the homepage so<03:15:37.319> to<03:15:37.479> be<03:15:37.600> able<03:15:37.800> to<03:15:38.000> navigate<03:15:38.680> we<03:15:38.800> have<03:15:38.920> to 03:15:39.150 --> 03:15:39.160 align:start position:0% so to be able to navigate we have to 03:15:39.160 --> 03:15:42.590 align:start position:0% so to be able to navigate we have to import<03:15:39.600> use<03:15:40.000> navigate<03:15:40.920> from<03:15:41.439> react<03:15:42.000> router 03:15:42.590 --> 03:15:42.600 align:start position:0% import use navigate from react router 03:15:42.600 --> 03:15:49.349 align:start position:0% import use navigate from react router Dom<03:15:43.439> let's<03:15:43.640> do<03:15:43.800> it<03:15:44.000> right<03:15:44.399> here<03:15:45.760> import<03:15:46.760> use 03:15:49.349 --> 03:15:49.359 align:start position:0% 03:15:49.359 --> 03:15:55.309 align:start position:0% navigate<03:15:50.359> from<03:15:51.199> react<03:15:52.199> router<03:15:53.520> Dom<03:15:54.520> and<03:15:54.720> then 03:15:55.309 --> 03:15:55.319 align:start position:0% navigate from react router Dom and then 03:15:55.319 --> 03:15:58.309 align:start position:0% navigate from react router Dom and then we<03:15:55.439> can<03:15:55.680> simply<03:15:56.080> Define<03:15:56.359> it<03:15:56.520> as<03:15:56.640> a<03:15:56.800> hook<03:15:57.760> cons 03:15:58.309 --> 03:15:58.319 align:start position:0% we can simply Define it as a hook cons 03:15:58.319 --> 03:16:02.269 align:start position:0% we can simply Define it as a hook cons navigate<03:15:59.319> is<03:15:59.600> equal<03:15:59.920> to<03:16:00.720> use<03:16:01.160> navigate<03:16:02.040> and 03:16:02.269 --> 03:16:02.279 align:start position:0% navigate is equal to use navigate and 03:16:02.279 --> 03:16:07.229 align:start position:0% navigate is equal to use navigate and then<03:16:02.800> we<03:16:02.960> call<03:16:03.239> it<03:16:03.800> right<03:16:04.120> here<03:16:05.560> navigate<03:16:06.560> to 03:16:07.229 --> 03:16:07.239 align:start position:0% then we call it right here navigate to 03:16:07.239 --> 03:16:09.950 align:start position:0% then we call it right here navigate to forward<03:16:07.880> slash<03:16:08.880> make<03:16:09.040> sure<03:16:09.239> to<03:16:09.479> make<03:16:09.760> the 03:16:09.950 --> 03:16:09.960 align:start position:0% forward slash make sure to make the 03:16:09.960 --> 03:16:12.990 align:start position:0% forward slash make sure to make the onsubmit<03:16:10.920> an<03:16:11.239> async<03:16:12.000> function 03:16:12.990 --> 03:16:13.000 align:start position:0% onsubmit an async function 03:16:13.000 --> 03:16:15.229 align:start position:0% onsubmit an async function because<03:16:13.199> we're<03:16:13.399> using<03:16:13.720> the<03:16:13.880> await<03:16:14.359> action<03:16:14.960> of 03:16:15.229 --> 03:16:15.239 align:start position:0% because we're using the await action of 03:16:15.239 --> 03:16:18.870 align:start position:0% because we're using the await action of create<03:16:15.880> post<03:16:16.880> so<03:16:17.120> with<03:16:17.319> all<03:16:17.520> of<03:16:17.800> this<03:16:18.640> I'm 03:16:18.870 --> 03:16:18.880 align:start position:0% create post so with all of this I'm 03:16:18.880 --> 03:16:21.309 align:start position:0% create post so with all of this I'm hoping<03:16:19.560> we're<03:16:19.840> successfully<03:16:20.560> creating<03:16:20.920> our 03:16:21.309 --> 03:16:21.319 align:start position:0% hoping we're successfully creating our 03:16:21.319 --> 03:16:23.990 align:start position:0% hoping we're successfully creating our post<03:16:22.319> if<03:16:22.479> we<03:16:22.600> get<03:16:22.800> redirected<03:16:23.640> to<03:16:23.840> the 03:16:23.990 --> 03:16:24.000 align:start position:0% post if we get redirected to the 03:16:24.000 --> 03:16:27.030 align:start position:0% post if we get redirected to the homepage<03:16:24.920> it<03:16:25.040> means<03:16:25.520> we're<03:16:25.840> good<03:16:26.560> so<03:16:26.760> let's 03:16:27.030 --> 03:16:27.040 align:start position:0% homepage it means we're good so let's 03:16:27.040 --> 03:16:30.150 align:start position:0% homepage it means we're good so let's expand<03:16:27.479> it<03:16:27.880> to<03:16:28.040> see<03:16:28.319> it<03:16:28.439> in<03:16:28.640> full<03:16:29.000> glory<03:16:29.960> and 03:16:30.150 --> 03:16:30.160 align:start position:0% expand it to see it in full glory and 03:16:30.160 --> 03:16:33.309 align:start position:0% expand it to see it in full glory and let's<03:16:30.439> create<03:16:31.000> our<03:16:31.239> first<03:16:31.840> post<03:16:32.840> I'm<03:16:32.960> going<03:16:33.040> to 03:16:33.309 --> 03:16:33.319 align:start position:0% let's create our first post I'm going to 03:16:33.319 --> 03:16:35.990 align:start position:0% let's create our first post I'm going to add<03:16:33.760> our<03:16:33.960> photo<03:16:34.439> right<03:16:34.680> here<03:16:35.640> I'm<03:16:35.760> going<03:16:35.880> to 03:16:35.990 --> 03:16:36.000 align:start position:0% add our photo right here I'm going to 03:16:36.000 --> 03:16:40.510 align:start position:0% add our photo right here I'm going to say<03:16:36.439> something<03:16:36.840> like<03:16:37.680> nice<03:16:38.720> Greenery<03:16:39.720> on<03:16:40.160> a 03:16:40.510 --> 03:16:40.520 align:start position:0% say something like nice Greenery on a 03:16:40.520 --> 03:16:42.990 align:start position:0% say something like nice Greenery on a nice<03:16:41.279> River 03:16:42.990 --> 03:16:43.000 align:start position:0% nice River 03:16:43.000 --> 03:16:46.030 align:start position:0% nice River not<03:16:43.439> as<03:16:43.720> thoughtful<03:16:44.279> as<03:16:44.479> Chad<03:16:44.800> jpt<03:16:45.600> but<03:16:45.880> what 03:16:46.030 --> 03:16:46.040 align:start position:0% not as thoughtful as Chad jpt but what 03:16:46.040 --> 03:16:48.950 align:start position:0% not as thoughtful as Chad jpt but what can<03:16:46.199> you<03:16:46.359> do<03:16:47.319> and<03:16:47.520> we<03:16:47.640> have<03:16:47.760> a<03:16:47.920> location<03:16:48.760> I'm 03:16:48.950 --> 03:16:48.960 align:start position:0% can you do and we have a location I'm 03:16:48.960 --> 03:16:51.429 align:start position:0% can you do and we have a location I'm not<03:16:49.160> sure<03:16:49.439> where<03:16:49.720> this<03:16:49.960> is<03:16:50.880> let's<03:16:51.120> do 03:16:51.429 --> 03:16:51.439 align:start position:0% not sure where this is let's do 03:16:51.439 --> 03:16:55.070 align:start position:0% not sure where this is let's do something<03:16:51.960> like<03:16:53.080> River<03:16:54.080> and<03:16:54.319> we<03:16:54.439> can<03:16:54.720> add 03:16:55.070 --> 03:16:55.080 align:start position:0% something like River and we can add 03:16:55.080 --> 03:16:57.349 align:start position:0% something like River and we can add something<03:16:55.600> like 03:16:57.349 --> 03:16:57.359 align:start position:0% something like 03:16:57.359 --> 03:17:00.670 align:start position:0% something like nature<03:16:58.359> finally<03:16:58.880> let's<03:16:59.160> click 03:17:00.670 --> 03:17:00.680 align:start position:0% nature finally let's click 03:17:00.680 --> 03:17:04.910 align:start position:0% nature finally let's click submit<03:17:01.880> we<03:17:02.880> got<03:17:03.160> redirected<03:17:04.040> but<03:17:04.199> it<03:17:04.359> does<03:17:04.600> say 03:17:04.910 --> 03:17:04.920 align:start position:0% submit we got redirected but it does say 03:17:04.920 --> 03:17:07.630 align:start position:0% submit we got redirected but it does say please<03:17:05.279> try<03:17:05.720> again<03:17:06.439> so<03:17:06.680> I'm<03:17:06.880> guessing<03:17:07.439> it 03:17:07.630 --> 03:17:07.640 align:start position:0% please try again so I'm guessing it 03:17:07.640 --> 03:17:10.349 align:start position:0% please try again so I'm guessing it broke<03:17:08.439> somewhere<03:17:09.439> let's<03:17:09.720> open<03:17:09.960> up<03:17:10.160> the 03:17:10.349 --> 03:17:10.359 align:start position:0% broke somewhere let's open up the 03:17:10.359 --> 03:17:13.710 align:start position:0% broke somewhere let's open up the inspect<03:17:10.880> element<03:17:11.760> and<03:17:11.920> then<03:17:12.319> let's<03:17:12.560> go<03:17:12.800> to<03:17:12.960> our 03:17:13.710 --> 03:17:13.720 align:start position:0% inspect element and then let's go to our 03:17:13.720 --> 03:17:16.229 align:start position:0% inspect element and then let's go to our console<03:17:14.720> and<03:17:14.920> it<03:17:15.000> says<03:17:15.279> the<03:17:15.399> current<03:17:15.720> user<03:17:16.040> is 03:17:16.229 --> 03:17:16.239 align:start position:0% console and it says the current user is 03:17:16.239 --> 03:17:19.670 align:start position:0% console and it says the current user is not<03:17:16.600> authorized<03:17:17.199> to<03:17:17.439> perform<03:17:17.840> the<03:17:18.040> requested 03:17:19.670 --> 03:17:19.680 align:start position:0% not authorized to perform the requested 03:17:19.680 --> 03:17:23.189 align:start position:0% not authorized to perform the requested action<03:17:20.680> okay<03:17:21.319> that's<03:17:22.000> interesting<03:17:23.000> that 03:17:23.189 --> 03:17:23.199 align:start position:0% action okay that's interesting that 03:17:23.199 --> 03:17:26.150 align:start position:0% action okay that's interesting that could<03:17:23.600> be<03:17:24.600> because<03:17:25.000> we<03:17:25.160> haven't<03:17:25.479> set<03:17:25.720> up<03:17:25.960> the 03:17:26.150 --> 03:17:26.160 align:start position:0% could be because we haven't set up the 03:17:26.160 --> 03:17:29.950 align:start position:0% could be because we haven't set up the permissions<03:17:27.080> for<03:17:27.319> us<03:17:27.520> to<03:17:27.840> upload<03:17:28.399> new<03:17:28.960> items 03:17:29.950 --> 03:17:29.960 align:start position:0% permissions for us to upload new items 03:17:29.960 --> 03:17:33.670 align:start position:0% permissions for us to upload new items so<03:17:30.160> let's<03:17:30.399> go<03:17:30.520> to<03:17:30.800> app<03:17:31.199> right<03:17:32.199> let's<03:17:32.439> go<03:17:32.600> to 03:17:33.670 --> 03:17:33.680 align:start position:0% so let's go to app right let's go to 03:17:33.680 --> 03:17:35.469 align:start position:0% so let's go to app right let's go to storage 03:17:35.469 --> 03:17:35.479 align:start position:0% storage 03:17:35.479 --> 03:17:38.030 align:start position:0% storage media<03:17:36.479> and<03:17:36.640> then<03:17:36.960> here 03:17:38.030 --> 03:17:38.040 align:start position:0% media and then here 03:17:38.040 --> 03:17:41.269 align:start position:0% media and then here settings<03:17:39.040> and<03:17:39.199> we<03:17:39.319> can<03:17:39.560> add<03:17:39.760> a<03:17:39.920> new<03:17:40.160> role<03:17:40.880> for 03:17:41.269 --> 03:17:41.279 align:start position:0% settings and we can add a new role for 03:17:41.279 --> 03:17:45.110 align:start position:0% settings and we can add a new role for any<03:17:42.199> to<03:17:42.399> create<03:17:42.960> read<03:17:43.520> update<03:17:44.000> and<03:17:44.199> delete 03:17:45.110 --> 03:17:45.120 align:start position:0% any to create read update and delete 03:17:45.120 --> 03:17:47.910 align:start position:0% any to create read update and delete different<03:17:45.640> assets<03:17:46.319> from<03:17:46.479> our<03:17:46.760> storage<03:17:47.760> just 03:17:47.910 --> 03:17:47.920 align:start position:0% different assets from our storage just 03:17:47.920 --> 03:17:51.030 align:start position:0% different assets from our storage just to<03:17:48.040> be<03:17:48.199> sure<03:17:48.680> let's<03:17:48.880> go<03:17:49.000> to<03:17:49.479> database 03:17:51.030 --> 03:17:51.040 align:start position:0% to be sure let's go to database 03:17:51.040 --> 03:17:55.070 align:start position:0% to be sure let's go to database snapgram<03:17:52.520> post<03:17:53.520> and<03:17:53.920> it's<03:17:54.160> good<03:17:54.520> it<03:17:54.680> wasn't 03:17:55.070 --> 03:17:55.080 align:start position:0% snapgram post and it's good it wasn't 03:17:55.080 --> 03:17:57.710 align:start position:0% snapgram post and it's good it wasn't actually<03:17:55.439> created<03:17:56.120> so<03:17:56.359> that's<03:17:56.560> what<03:17:56.760> matters 03:17:57.710 --> 03:17:57.720 align:start position:0% actually created so that's what matters 03:17:57.720 --> 03:18:00.790 align:start position:0% actually created so that's what matters so<03:17:57.960> now<03:17:58.600> let's<03:17:58.800> give<03:17:58.920> it<03:17:59.120> one<03:17:59.319> more<03:17:59.680> shot<03:18:00.680> I'm 03:18:00.790 --> 03:18:00.800 align:start position:0% so now let's give it one more shot I'm 03:18:00.800 --> 03:18:04.229 align:start position:0% so now let's give it one more shot I'm going<03:18:00.880> to<03:18:01.040> do<03:18:01.359> something<03:18:01.800> like<03:18:02.399> River<03:18:03.399> and 03:18:04.229 --> 03:18:04.239 align:start position:0% going to do something like River and 03:18:04.239 --> 03:18:06.750 align:start position:0% going to do something like River and nature<03:18:05.239> I'm<03:18:05.359> going<03:18:05.439> to<03:18:05.680> upload<03:18:06.080> the<03:18:06.239> post<03:18:06.600> one 03:18:06.750 --> 03:18:06.760 align:start position:0% nature I'm going to upload the post one 03:18:06.760 --> 03:18:08.110 align:start position:0% nature I'm going to upload the post one more 03:18:08.110 --> 03:18:08.120 align:start position:0% more 03:18:08.120 --> 03:18:10.790 align:start position:0% more time<03:18:09.120> I'm<03:18:09.239> going<03:18:09.359> to<03:18:09.560> add<03:18:09.760> a<03:18:09.920> location 03:18:10.790 --> 03:18:10.800 align:start position:0% time I'm going to add a location 03:18:10.800 --> 03:18:12.950 align:start position:0% time I'm going to add a location something<03:18:11.160> like<03:18:11.279> a<03:18:11.479> river<03:18:12.479> and<03:18:12.600> I'm<03:18:12.720> going<03:18:12.840> to 03:18:12.950 --> 03:18:12.960 align:start position:0% something like a river and I'm going to 03:18:12.960 --> 03:18:16.630 align:start position:0% something like a river and I'm going to say<03:18:13.199> nature<03:18:14.120> right<03:18:14.399> here<03:18:15.000> as<03:18:15.239> well<03:18:16.239> and<03:18:16.520> I'm 03:18:16.630 --> 03:18:16.640 align:start position:0% say nature right here as well and I'm 03:18:16.640 --> 03:18:19.389 align:start position:0% say nature right here as well and I'm going<03:18:16.760> to<03:18:16.960> click 03:18:19.389 --> 03:18:19.399 align:start position:0% going to click 03:18:19.399 --> 03:18:23.030 align:start position:0% going to click submit<03:18:20.399> we<03:18:20.640> indeed<03:18:21.120> get<03:18:21.760> redirected<03:18:22.760> this 03:18:23.030 --> 03:18:23.040 align:start position:0% submit we indeed get redirected this 03:18:23.040 --> 03:18:26.590 align:start position:0% submit we indeed get redirected this time<03:18:23.600> without<03:18:24.160> any<03:18:24.920> errors<03:18:25.920> but<03:18:26.160> we<03:18:26.319> still 03:18:26.590 --> 03:18:26.600 align:start position:0% time without any errors but we still 03:18:26.600 --> 03:18:28.189 align:start position:0% time without any errors but we still cannot<03:18:26.960> know<03:18:27.319> whether<03:18:27.520> the<03:18:27.680> post<03:18:27.960> was 03:18:28.189 --> 03:18:28.199 align:start position:0% cannot know whether the post was 03:18:28.199 --> 03:18:31.950 align:start position:0% cannot know whether the post was actually<03:18:28.640> created<03:18:29.640> or<03:18:30.000> can<03:18:30.279> we<03:18:31.080> if<03:18:31.239> we<03:18:31.399> go<03:18:31.560> to 03:18:31.950 --> 03:18:31.960 align:start position:0% actually created or can we if we go to 03:18:31.960 --> 03:18:36.189 align:start position:0% actually created or can we if we go to aite<03:18:32.960> and<03:18:33.199> go<03:18:33.399> to<03:18:33.920> posts<03:18:34.920> and 03:18:36.189 --> 03:18:36.199 align:start position:0% aite and go to posts and 03:18:36.199 --> 03:18:40.349 align:start position:0% aite and go to posts and reload<03:18:37.199> we<03:18:37.319> can<03:18:37.520> see<03:18:38.040> our<03:18:38.359> first<03:18:38.800> post<03:18:39.399> appear 03:18:40.349 --> 03:18:40.359 align:start position:0% reload we can see our first post appear 03:18:40.359 --> 03:18:42.590 align:start position:0% reload we can see our first post appear right<03:18:40.920> here<03:18:41.560> it<03:18:41.720> was<03:18:41.880> created<03:18:42.080> created<03:18:42.399> on 03:18:42.590 --> 03:18:42.600 align:start position:0% right here it was created created on 03:18:42.600 --> 03:18:46.910 align:start position:0% right here it was created created on this<03:18:42.800> date<03:18:43.800> and<03:18:44.080> it<03:18:44.319> has<03:18:44.880> this<03:18:45.279> data<03:18:46.080> liked 03:18:46.910 --> 03:18:46.920 align:start position:0% this date and it has this data liked 03:18:46.920 --> 03:18:52.110 align:start position:0% this date and it has this data liked posts<03:18:47.840> name<03:18:48.760> username<03:18:49.760> account<03:18:50.160> ID<03:18:50.920> email<03:18:51.600> bio 03:18:52.110 --> 03:18:52.120 align:start position:0% posts name username account ID email bio 03:18:52.120 --> 03:18:55.469 align:start position:0% posts name username account ID email bio image<03:18:52.439> ID<03:18:52.920> image<03:18:53.199> URL<03:18:53.840> save<03:18:54.439> everything<03:18:54.920> is 03:18:55.469 --> 03:18:55.479 align:start position:0% image ID image URL save everything is 03:18:55.479 --> 03:18:58.150 align:start position:0% image ID image URL save everything is here<03:18:56.479> so<03:18:56.680> we<03:18:56.800> know<03:18:57.040> that<03:18:57.199> the<03:18:57.399> post<03:18:57.800> was 03:18:58.150 --> 03:18:58.160 align:start position:0% here so we know that the post was 03:18:58.160 --> 03:19:01.590 align:start position:0% here so we know that the post was created<03:18:59.120> in<03:18:59.279> the<03:18:59.720> database<03:19:00.720> but<03:19:01.080> was<03:19:01.359> the 03:19:01.590 --> 03:19:01.600 align:start position:0% created in the database but was the 03:19:01.600 --> 03:19:04.630 align:start position:0% created in the database but was the image<03:19:02.239> created<03:19:02.680> in<03:19:03.120> storage<03:19:04.120> let's<03:19:04.359> check 03:19:04.630 --> 03:19:04.640 align:start position:0% image created in storage let's check 03:19:04.640 --> 03:19:07.349 align:start position:0% image created in storage let's check that<03:19:04.800> out<03:19:05.600> under<03:19:05.880> media<03:19:06.760> we<03:19:06.920> have<03:19:07.080> our 03:19:07.349 --> 03:19:07.359 align:start position:0% that out under media we have our 03:19:07.359 --> 03:19:11.229 align:start position:0% that out under media we have our preview.png<03:19:08.319> and<03:19:09.199> we<03:19:09.319> can<03:19:09.479> see<03:19:10.080> this<03:19:10.319> image<03:19:10.880> on 03:19:11.229 --> 03:19:11.239 align:start position:0% preview.png and we can see this image on 03:19:11.239 --> 03:19:13.229 align:start position:0% preview.png and we can see this image on aight<03:19:11.760> server 03:19:13.229 --> 03:19:13.239 align:start position:0% aight server 03:19:13.239 --> 03:19:16.630 align:start position:0% aight server this<03:19:13.640> is<03:19:14.199> amazing<03:19:15.199> so<03:19:15.520> now<03:19:16.040> the<03:19:16.239> last<03:19:16.479> thing 03:19:16.630 --> 03:19:16.640 align:start position:0% this is amazing so now the last thing 03:19:16.640 --> 03:19:19.229 align:start position:0% this is amazing so now the last thing we'll<03:19:16.840> have<03:19:16.960> to<03:19:17.120> do<03:19:18.040> is<03:19:18.399> implement<03:19:19.000> the 03:19:19.229 --> 03:19:19.239 align:start position:0% we'll have to do is implement the 03:19:19.239 --> 03:19:22.670 align:start position:0% we'll have to do is implement the homepage<03:19:20.239> and<03:19:20.479> fetch<03:19:21.120> this<03:19:21.359> phenomenal<03:19:22.040> post 03:19:22.670 --> 03:19:22.680 align:start position:0% homepage and fetch this phenomenal post 03:19:22.680 --> 03:19:26.630 align:start position:0% homepage and fetch this phenomenal post we've<03:19:23.080> created<03:19:24.080> so<03:19:24.680> let's<03:19:24.920> do<03:19:25.160> that<03:19:25.439> next<03:19:26.279> to 03:19:26.630 --> 03:19:26.640 align:start position:0% we've created so let's do that next to 03:19:26.640 --> 03:19:28.670 align:start position:0% we've created so let's do that next to create<03:19:26.920> a<03:19:27.080> new<03:19:27.359> post<03:19:27.920> we<03:19:28.120> first<03:19:28.399> have<03:19:28.520> to 03:19:28.670 --> 03:19:28.680 align:start position:0% create a new post we first have to 03:19:28.680 --> 03:19:30.950 align:start position:0% create a new post we first have to create<03:19:28.920> a<03:19:29.120> function<03:19:29.680> that's<03:19:29.880> going<03:19:30.080> to<03:19:30.319> do<03:19:30.560> so 03:19:30.950 --> 03:19:30.960 align:start position:0% create a function that's going to do so 03:19:30.960 --> 03:19:34.510 align:start position:0% create a function that's going to do so in<03:19:31.279> aite<03:19:32.040> before<03:19:32.359> we<03:19:32.479> can<03:19:32.640> call<03:19:32.920> it<03:19:33.760> so<03:19:34.319> let's 03:19:34.510 --> 03:19:34.520 align:start position:0% in aite before we can call it so let's 03:19:34.520 --> 03:19:38.990 align:start position:0% in aite before we can call it so let's go<03:19:34.680> ahead<03:19:35.160> and<03:19:35.399> let's<03:19:35.640> go<03:19:35.960> to<03:19:36.439> our<03:19:36.880> source<03:19:37.960> lib 03:19:38.990 --> 03:19:39.000 align:start position:0% go ahead and let's go to our source lib 03:19:39.000 --> 03:19:43.349 align:start position:0% go ahead and let's go to our source lib aight<03:19:40.160> API<03:19:41.160> and<03:19:41.439> right<03:19:41.600> here<03:19:42.080> below<03:19:42.520> sign<03:19:42.880> out 03:19:43.349 --> 03:19:43.359 align:start position:0% aight API and right here below sign out 03:19:43.359 --> 03:19:48.389 align:start position:0% aight API and right here below sign out account<03:19:44.359> let's<03:19:45.120> export<03:19:46.399> async<03:19:47.399> function 03:19:48.389 --> 03:19:48.399 align:start position:0% account let's export async function 03:19:48.399 --> 03:19:51.750 align:start position:0% account let's export async function create<03:19:49.399> post<03:19:50.359> that's<03:19:50.560> going<03:19:50.760> to<03:19:51.000> receive<03:19:51.479> a 03:19:51.750 --> 03:19:51.760 align:start position:0% create post that's going to receive a 03:19:51.760 --> 03:19:56.229 align:start position:0% create post that's going to receive a post<03:19:52.359> of<03:19:52.520> a<03:19:52.760> type<03:19:53.479> I<03:19:54.479> as<03:19:54.640> an<03:19:54.840> interface<03:19:55.840> new 03:19:56.229 --> 03:19:56.239 align:start position:0% post of a type I as an interface new 03:19:56.239 --> 03:20:00.189 align:start position:0% post of a type I as an interface new post<03:19:57.160> coming<03:19:57.439> from<03:19:57.720> add<03:19:58.040> for/<03:19:59.080> types<03:20:00.080> make 03:20:00.189 --> 03:20:00.199 align:start position:0% post coming from add for/ types make 03:20:00.199 --> 03:20:03.150 align:start position:0% post coming from add for/ types make sure<03:20:00.399> to<03:20:00.600> import<03:20:00.960> it<03:20:01.920> and<03:20:02.120> then<03:20:02.520> we<03:20:02.640> can<03:20:02.880> open 03:20:03.150 --> 03:20:03.160 align:start position:0% sure to import it and then we can open 03:20:03.160 --> 03:20:06.389 align:start position:0% sure to import it and then we can open up<03:20:03.359> a<03:20:03.560> new<03:20:03.920> try<03:20:04.319> and<03:20:04.680> catch<03:20:05.160> block<03:20:06.120> you<03:20:06.199> know 03:20:06.389 --> 03:20:06.399 align:start position:0% up a new try and catch block you know 03:20:06.399 --> 03:20:09.429 align:start position:0% up a new try and catch block you know the<03:20:06.520> drill<03:20:07.199> right<03:20:08.199> in<03:20:08.399> the<03:20:08.640> catch<03:20:09.120> we<03:20:09.239> can 03:20:09.429 --> 03:20:09.439 align:start position:0% the drill right in the catch we can 03:20:09.439 --> 03:20:12.550 align:start position:0% the drill right in the catch we can simply<03:20:09.840> conso<03:20:10.319> log<03:20:10.600> the<03:20:10.720> error<03:20:11.720> but<03:20:12.160> in<03:20:12.399> the 03:20:12.550 --> 03:20:12.560 align:start position:0% simply conso log the error but in the 03:20:12.560 --> 03:20:15.990 align:start position:0% simply conso log the error but in the try<03:20:13.040> is<03:20:13.239> where<03:20:13.439> the<03:20:13.640> magic<03:20:14.160> happens<03:20:15.160> here 03:20:15.990 --> 03:20:16.000 align:start position:0% try is where the magic happens here 03:20:16.000 --> 03:20:18.910 align:start position:0% try is where the magic happens here first<03:20:16.600> we<03:20:16.720> need<03:20:16.920> to<03:20:17.239> upload<03:20:17.800> our<03:20:18.120> file<03:20:18.640> to 03:20:18.910 --> 03:20:18.920 align:start position:0% first we need to upload our file to 03:20:18.920 --> 03:20:21.750 align:start position:0% first we need to upload our file to aight<03:20:19.479> storage<03:20:20.359> let's<03:20:20.600> write<03:20:20.800> that<03:20:21.000> down 03:20:21.750 --> 03:20:21.760 align:start position:0% aight storage let's write that down 03:20:21.760 --> 03:20:24.990 align:start position:0% aight storage let's write that down upload<03:20:22.239> image<03:20:22.720> to<03:20:23.319> storage<03:20:24.319> so<03:20:24.479> we<03:20:24.560> can<03:20:24.680> say 03:20:24.990 --> 03:20:25.000 align:start position:0% upload image to storage so we can say 03:20:25.000 --> 03:20:26.429 align:start position:0% upload image to storage so we can say const 03:20:26.429 --> 03:20:26.439 align:start position:0% const 03:20:26.439 --> 03:20:32.229 align:start position:0% const uploaded<03:20:27.439> file<03:20:28.439> is<03:20:28.720> equal<03:20:29.040> to<03:20:29.479> a<03:20:30.080> wait<03:20:31.239> upload 03:20:32.229 --> 03:20:32.239 align:start position:0% uploaded file is equal to a wait upload 03:20:32.239 --> 03:20:36.590 align:start position:0% uploaded file is equal to a wait upload file<03:20:33.080> where<03:20:33.279> we<03:20:33.560> pass<03:20:33.920> the<03:20:34.199> post.<03:20:35.600> file0 03:20:36.590 --> 03:20:36.600 align:start position:0% file where we pass the post. file0 03:20:36.600 --> 03:20:37.990 align:start position:0% file where we pass the post. file0 meaning<03:20:36.920> the<03:20:37.080> first 03:20:37.990 --> 03:20:38.000 align:start position:0% meaning the first 03:20:38.000 --> 03:20:41.469 align:start position:0% meaning the first post<03:20:39.000> now<03:20:39.439> this<03:20:39.720> upload<03:20:40.160> file<03:20:40.520> function<03:20:41.279> is 03:20:41.469 --> 03:20:41.479 align:start position:0% post now this upload file function is 03:20:41.479 --> 03:20:43.830 align:start position:0% post now this upload file function is another<03:20:42.040> function<03:20:42.359> we'll<03:20:42.640> create<03:20:43.520> let's<03:20:43.720> do 03:20:43.830 --> 03:20:43.840 align:start position:0% another function we'll create let's do 03:20:43.840 --> 03:20:48.710 align:start position:0% another function we'll create let's do it<03:20:44.040> right<03:20:44.359> below<03:20:45.359> export<03:20:46.279> a<03:20:46.600> sync<03:20:47.720> function 03:20:48.710 --> 03:20:48.720 align:start position:0% it right below export a sync function 03:20:48.720 --> 03:20:52.389 align:start position:0% it right below export a sync function upload<03:20:49.640> file<03:20:50.640> that<03:20:50.840> accepts<03:20:51.279> a<03:20:51.520> file<03:20:52.000> of<03:20:52.160> a 03:20:52.389 --> 03:20:52.399 align:start position:0% upload file that accepts a file of a 03:20:52.399 --> 03:20:55.750 align:start position:0% upload file that accepts a file of a type<03:20:53.080> file<03:20:54.080> it's<03:20:54.279> going<03:20:54.439> to<03:20:54.680> have<03:20:54.840> a<03:20:55.040> try<03:20:55.399> and 03:20:55.750 --> 03:20:55.760 align:start position:0% type file it's going to have a try and 03:20:55.760 --> 03:20:58.630 align:start position:0% type file it's going to have a try and catch<03:20:56.520> block<03:20:57.520> within<03:20:57.880> the<03:20:58.040> catch<03:20:58.399> we're<03:20:58.520> going 03:20:58.630 --> 03:20:58.640 align:start position:0% catch block within the catch we're going 03:20:58.640 --> 03:21:01.870 align:start position:0% catch block within the catch we're going to<03:20:58.800> consol<03:20:59.279> log<03:20:59.680> the<03:21:00.080> error<03:21:01.080> but<03:21:01.359> within<03:21:01.640> the 03:21:01.870 --> 03:21:01.880 align:start position:0% to consol log the error but within the 03:21:01.880 --> 03:21:06.389 align:start position:0% to consol log the error but within the catch<03:21:02.800> we<03:21:02.920> can<03:21:03.040> say<03:21:03.399> con<03:21:04.000> uploaded<03:21:05.120> file<03:21:06.120> is 03:21:06.389 --> 03:21:06.399 align:start position:0% catch we can say con uploaded file is 03:21:06.399 --> 03:21:08.510 align:start position:0% catch we can say con uploaded file is equal<03:21:06.920> to 03:21:08.510 --> 03:21:08.520 align:start position:0% equal to 03:21:08.520 --> 03:21:10.150 align:start position:0% equal to await 03:21:10.150 --> 03:21:10.160 align:start position:0% await 03:21:10.160 --> 03:21:13.750 align:start position:0% await storage.<03:21:11.160> create<03:21:12.040> file<03:21:12.800> so<03:21:13.040> the<03:21:13.199> first<03:21:13.520> time 03:21:13.750 --> 03:21:13.760 align:start position:0% storage. create file so the first time 03:21:13.760 --> 03:21:15.590 align:start position:0% storage. create file so the first time in<03:21:13.960> this<03:21:14.160> application<03:21:14.720> we're<03:21:15.000> diving<03:21:15.359> into 03:21:15.590 --> 03:21:15.600 align:start position:0% in this application we're diving into 03:21:15.600 --> 03:21:18.950 align:start position:0% in this application we're diving into the<03:21:15.880> storage<03:21:16.840> functionality<03:21:17.840> remember<03:21:18.720> we 03:21:18.950 --> 03:21:18.960 align:start position:0% the storage functionality remember we 03:21:18.960 --> 03:21:23.030 align:start position:0% the storage functionality remember we had<03:21:19.319> account<03:21:20.399> databases<03:21:21.479> avatars<03:21:22.479> but<03:21:22.680> now 03:21:23.030 --> 03:21:23.040 align:start position:0% had account databases avatars but now 03:21:23.040 --> 03:21:24.510 align:start position:0% had account databases avatars but now also 03:21:24.510 --> 03:21:24.520 align:start position:0% also 03:21:24.520 --> 03:21:28.349 align:start position:0% also storage<03:21:25.520> this<03:21:25.640> is<03:21:25.800> used<03:21:26.040> for<03:21:26.279> saving<03:21:27.239> media<03:21:28.239> we 03:21:28.349 --> 03:21:28.359 align:start position:0% storage this is used for saving media we 03:21:28.359 --> 03:21:30.550 align:start position:0% storage this is used for saving media we want<03:21:28.479> to<03:21:28.720> pass<03:21:28.960> a<03:21:29.080> couple<03:21:29.319> of<03:21:29.520> things<03:21:30.120> we<03:21:30.319> first 03:21:30.550 --> 03:21:30.560 align:start position:0% want to pass a couple of things we first 03:21:30.560 --> 03:21:32.990 align:start position:0% want to pass a couple of things we first want<03:21:30.680> to<03:21:30.880> pass<03:21:31.120> the<03:21:31.279> storage<03:21:31.720> ID<03:21:32.439> by<03:21:32.560> saying 03:21:32.990 --> 03:21:33.000 align:start position:0% want to pass the storage ID by saying 03:21:33.000 --> 03:21:36.710 align:start position:0% want to pass the storage ID by saying upright<03:21:33.560> config<03:21:34.479> do<03:21:34.800> storage<03:21:35.319> ID<03:21:36.319> then<03:21:36.600> we 03:21:36.710 --> 03:21:36.720 align:start position:0% upright config do storage ID then we 03:21:36.720 --> 03:21:40.349 align:start position:0% upright config do storage ID then we want<03:21:36.840> to<03:21:37.000> make<03:21:37.160> a<03:21:37.359> unique<03:21:37.880> ID<03:21:38.520> by<03:21:38.640> saying<03:21:39.080> id. 03:21:40.349 --> 03:21:40.359 align:start position:0% want to make a unique ID by saying id. 03:21:40.359 --> 03:21:42.469 align:start position:0% want to make a unique ID by saying id. unique<03:21:41.359> and<03:21:41.479> then<03:21:41.680> want<03:21:41.840> want<03:21:41.920> to<03:21:42.040> pass<03:21:42.279> the 03:21:42.469 --> 03:21:42.479 align:start position:0% unique and then want want to pass the 03:21:42.479 --> 03:21:45.630 align:start position:0% unique and then want want to pass the file<03:21:43.040> which<03:21:43.199> we<03:21:43.439> actually<03:21:43.760> want<03:21:43.960> to<03:21:44.640> upload 03:21:45.630 --> 03:21:45.640 align:start position:0% file which we actually want to upload 03:21:45.640 --> 03:21:48.910 align:start position:0% file which we actually want to upload finally<03:21:46.319> we<03:21:46.439> want<03:21:46.600> to<03:21:46.920> return<03:21:47.479> the<03:21:47.920> uploaded 03:21:48.910 --> 03:21:48.920 align:start position:0% finally we want to return the uploaded 03:21:48.920 --> 03:21:52.389 align:start position:0% finally we want to return the uploaded file<03:21:49.920> so<03:21:50.160> now<03:21:50.720> from<03:21:50.920> the<03:21:51.080> function<03:21:51.520> above<03:21:52.239> we 03:21:52.389 --> 03:21:52.399 align:start position:0% file so now from the function above we 03:21:52.399 --> 03:21:54.830 align:start position:0% file so now from the function above we get<03:21:52.640> this<03:21:52.840> file<03:21:53.199> back<03:21:53.640> and<03:21:53.800> we<03:21:53.880> are<03:21:54.080> ready<03:21:54.439> to 03:21:54.830 --> 03:21:54.840 align:start position:0% get this file back and we are ready to 03:21:54.840 --> 03:21:57.790 align:start position:0% get this file back and we are ready to attach<03:21:55.239> it<03:21:55.640> to<03:21:55.960> a<03:21:56.279> post<03:21:56.960> that<03:21:57.080> we're<03:21:57.319> about<03:21:57.520> to 03:21:57.790 --> 03:21:57.800 align:start position:0% attach it to a post that we're about to 03:21:57.800 --> 03:22:00.469 align:start position:0% attach it to a post that we're about to create<03:21:58.120> in<03:21:58.239> a<03:21:58.520> database<03:21:59.520> just<03:21:59.680> to<03:21:59.840> be<03:21:59.960> sure<03:22:00.359> we 03:22:00.469 --> 03:22:00.479 align:start position:0% create in a database just to be sure we 03:22:00.479 --> 03:22:03.469 align:start position:0% create in a database just to be sure we can<03:22:00.600> do<03:22:00.800> one<03:22:01.040> check<03:22:01.720> if<03:22:02.000> there<03:22:02.120> is<03:22:02.359> no<03:22:02.880> uploaded 03:22:03.469 --> 03:22:03.479 align:start position:0% can do one check if there is no uploaded 03:22:03.479 --> 03:22:07.670 align:start position:0% can do one check if there is no uploaded file<03:22:04.080> throw<03:22:04.439> an<03:22:04.800> error<03:22:05.800> else<03:22:06.279> we<03:22:06.399> need<03:22:06.560> to<03:22:06.920> get 03:22:07.670 --> 03:22:07.680 align:start position:0% file throw an error else we need to get 03:22:07.680 --> 03:22:10.910 align:start position:0% file throw an error else we need to get the<03:22:07.920> file<03:22:08.439> URL<03:22:09.439> so<03:22:09.600> we<03:22:09.720> can<03:22:09.840> say<03:22:10.120> const<03:22:10.640> file 03:22:10.910 --> 03:22:10.920 align:start position:0% the file URL so we can say const file 03:22:10.920 --> 03:22:17.070 align:start position:0% the file URL so we can say const file URL<03:22:11.960> is<03:22:12.199> equal<03:22:12.520> to<03:22:13.520> get<03:22:14.600> file 03:22:17.070 --> 03:22:17.080 align:start position:0% URL is equal to get file 03:22:17.080 --> 03:22:19.389 align:start position:0% URL is equal to get file preview<03:22:18.080> to<03:22:18.319> which<03:22:18.479> we<03:22:18.600> have<03:22:18.720> to<03:22:18.960> pass<03:22:19.239> the 03:22:19.389 --> 03:22:19.399 align:start position:0% preview to which we have to pass the 03:22:19.399 --> 03:22:20.630 align:start position:0% preview to which we have to pass the uploaded 03:22:20.630 --> 03:22:20.640 align:start position:0% uploaded 03:22:20.640 --> 03:22:23.030 align:start position:0% uploaded file.<03:22:21.640> dollar<03:22:22.080> sign 03:22:23.030 --> 03:22:23.040 align:start position:0% file. dollar sign 03:22:23.040 --> 03:22:26.510 align:start position:0% file. dollar sign ID<03:22:24.040> and<03:22:24.279> this<03:22:24.479> get<03:22:24.800> file<03:22:25.080> preview<03:22:25.840> is<03:22:26.120> another 03:22:26.510 --> 03:22:26.520 align:start position:0% ID and this get file preview is another 03:22:26.520 --> 03:22:28.469 align:start position:0% ID and this get file preview is another function<03:22:26.920> we'll<03:22:27.239> create<03:22:27.960> because<03:22:28.199> we'll<03:22:28.359> want 03:22:28.469 --> 03:22:28.479 align:start position:0% function we'll create because we'll want 03:22:28.479 --> 03:22:31.349 align:start position:0% function we'll create because we'll want to<03:22:28.680> reuse<03:22:29.120> it<03:22:29.319> multiple<03:22:29.840> times<03:22:30.560> across<03:22:30.920> this 03:22:31.349 --> 03:22:31.359 align:start position:0% to reuse it multiple times across this 03:22:31.359 --> 03:22:33.990 align:start position:0% to reuse it multiple times across this application<03:22:32.359> so<03:22:32.560> let's<03:22:32.760> create<03:22:33.000> a<03:22:33.120> new<03:22:33.439> export 03:22:33.990 --> 03:22:34.000 align:start position:0% application so let's create a new export 03:22:34.000 --> 03:22:38.349 align:start position:0% application so let's create a new export async<03:22:35.000> function<03:22:36.000> get<03:22:36.520> file<03:22:37.199> preview<03:22:38.199> it's 03:22:38.349 --> 03:22:38.359 align:start position:0% async function get file preview it's 03:22:38.359 --> 03:22:41.469 align:start position:0% async function get file preview it's going<03:22:38.560> to<03:22:38.680> get<03:22:38.920> one<03:22:39.160> program<03:22:39.800> of<03:22:40.120> file<03:22:40.520> ID<03:22:41.199> of<03:22:41.319> a 03:22:41.469 --> 03:22:41.479 align:start position:0% going to get one program of file ID of a 03:22:41.479 --> 03:22:44.469 align:start position:0% going to get one program of file ID of a type<03:22:41.880> string<03:22:42.199> into<03:22:42.600> it<03:22:43.600> it's<03:22:43.800> going<03:22:43.960> to<03:22:44.120> have<03:22:44.279> a 03:22:44.469 --> 03:22:44.479 align:start position:0% type string into it it's going to have a 03:22:44.479 --> 03:22:47.550 align:start position:0% type string into it it's going to have a try<03:22:44.840> and<03:22:45.319> catch<03:22:46.279> where<03:22:46.439> we<03:22:46.640> consel<03:22:47.120> Lo<03:22:47.359> the 03:22:47.550 --> 03:22:47.560 align:start position:0% try and catch where we consel Lo the 03:22:47.560 --> 03:22:49.030 align:start position:0% try and catch where we consel Lo the error<03:22:48.120> in<03:22:48.279> the 03:22:49.030 --> 03:22:49.040 align:start position:0% error in the 03:22:49.040 --> 03:22:52.990 align:start position:0% error in the catch<03:22:50.040> and<03:22:50.239> in<03:22:50.399> the<03:22:50.560> try<03:22:51.520> we<03:22:51.640> need<03:22:51.800> to<03:22:52.560> get<03:22:52.840> the 03:22:52.990 --> 03:22:53.000 align:start position:0% catch and in the try we need to get the 03:22:53.000 --> 03:22:56.469 align:start position:0% catch and in the try we need to get the preview<03:22:53.720> so<03:22:53.880> we<03:22:54.000> can<03:22:54.120> say<03:22:54.399> const<03:22:54.880> file<03:22:55.279> URL<03:22:56.279> is 03:22:56.469 --> 03:22:56.479 align:start position:0% preview so we can say const file URL is 03:22:56.479 --> 03:22:58.510 align:start position:0% preview so we can say const file URL is equal<03:22:56.800> to 03:22:58.510 --> 03:22:58.520 align:start position:0% equal to 03:22:58.520 --> 03:23:01.550 align:start position:0% equal to storage.<03:22:59.520> getet<03:23:00.239> file 03:23:01.550 --> 03:23:01.560 align:start position:0% storage. getet file 03:23:01.560 --> 03:23:05.389 align:start position:0% storage. getet file preview<03:23:02.560> here<03:23:02.960> we<03:23:03.120> first<03:23:03.399> need<03:23:03.560> to<03:23:03.840> pass<03:23:04.239> the 03:23:05.389 --> 03:23:05.399 align:start position:0% preview here we first need to pass the 03:23:05.399 --> 03:23:10.349 align:start position:0% preview here we first need to pass the app<03:23:06.520> config<03:23:07.520> do<03:23:07.880> storage<03:23:08.640> ID<03:23:09.640> we<03:23:09.840> pass<03:23:10.160> the 03:23:10.349 --> 03:23:10.359 align:start position:0% app config do storage ID we pass the 03:23:10.359 --> 03:23:12.389 align:start position:0% app config do storage ID we pass the file<03:23:10.680> ID<03:23:10.960> we<03:23:11.080> want<03:23:11.199> to<03:23:11.399> get 03:23:12.389 --> 03:23:12.399 align:start position:0% file ID we want to get 03:23:12.399 --> 03:23:14.550 align:start position:0% file ID we want to get and<03:23:12.560> then<03:23:12.720> we<03:23:12.880> specify<03:23:13.399> the<03:23:13.600> width<03:23:14.199> and<03:23:14.359> the 03:23:14.550 --> 03:23:14.560 align:start position:0% and then we specify the width and the 03:23:14.560 --> 03:23:16.349 align:start position:0% and then we specify the width and the height<03:23:15.239> which<03:23:15.399> in<03:23:15.560> this<03:23:15.760> case<03:23:16.000> I'm<03:23:16.120> going<03:23:16.239> to 03:23:16.349 --> 03:23:16.359 align:start position:0% height which in this case I'm going to 03:23:16.359 --> 03:23:17.389 align:start position:0% height which in this case I'm going to set<03:23:16.560> to 03:23:17.389 --> 03:23:17.399 align:start position:0% set to 03:23:17.399 --> 03:23:20.110 align:start position:0% set to 2,000<03:23:18.399> then<03:23:18.640> we<03:23:18.840> specify<03:23:19.279> the<03:23:19.439> gravity 03:23:20.110 --> 03:23:20.120 align:start position:0% 2,000 then we specify the gravity 03:23:20.120 --> 03:23:22.110 align:start position:0% 2,000 then we specify the gravity meaning<03:23:20.560> where<03:23:20.720> is<03:23:20.840> it<03:23:21.000> going<03:23:21.160> to<03:23:21.319> show<03:23:21.960> in 03:23:22.110 --> 03:23:22.120 align:start position:0% meaning where is it going to show in 03:23:22.120 --> 03:23:24.389 align:start position:0% meaning where is it going to show in this<03:23:22.319> case<03:23:22.479> we're<03:23:22.600> going<03:23:22.720> to<03:23:22.840> say<03:23:23.160> top<03:23:24.160> and 03:23:24.389 --> 03:23:24.399 align:start position:0% this case we're going to say top and 03:23:24.399 --> 03:23:27.309 align:start position:0% this case we're going to say top and finally<03:23:24.880> you<03:23:25.160> specify<03:23:25.960> the<03:23:26.160> quality<03:23:27.000> in<03:23:27.160> this 03:23:27.309 --> 03:23:27.319 align:start position:0% finally you specify the quality in this 03:23:27.319 --> 03:23:30.229 align:start position:0% finally you specify the quality in this case<03:23:27.479> we're<03:23:27.600> going<03:23:27.760> to<03:23:27.880> get<03:23:28.279> 100<03:23:28.960> the<03:23:29.160> top 03:23:30.229 --> 03:23:30.239 align:start position:0% case we're going to get 100 the top 03:23:30.239 --> 03:23:33.670 align:start position:0% case we're going to get 100 the top quality<03:23:31.239> finally<03:23:31.880> once<03:23:32.080> we<03:23:32.239> get<03:23:32.399> it<03:23:33.359> we<03:23:33.479> can 03:23:33.670 --> 03:23:33.680 align:start position:0% quality finally once we get it we can 03:23:33.680 --> 03:23:36.630 align:start position:0% quality finally once we get it we can simply<03:23:34.520> return<03:23:35.160> a<03:23:35.439> file 03:23:36.630 --> 03:23:36.640 align:start position:0% simply return a file 03:23:36.640 --> 03:23:39.590 align:start position:0% simply return a file URL<03:23:37.640> now<03:23:38.040> we<03:23:38.160> can<03:23:38.359> go<03:23:38.560> back<03:23:38.720> to<03:23:38.880> the<03:23:39.040> function 03:23:39.590 --> 03:23:39.600 align:start position:0% URL now we can go back to the function 03:23:39.600 --> 03:23:43.990 align:start position:0% URL now we can go back to the function above<03:23:40.600> we<03:23:40.760> now<03:23:41.120> have<03:23:41.439> our<03:23:41.680> our<03:23:41.840> file<03:23:42.560> URL<03:23:43.560> and 03:23:43.990 --> 03:23:44.000 align:start position:0% above we now have our our file URL and 03:23:44.000 --> 03:23:46.269 align:start position:0% above we now have our our file URL and just<03:23:44.120> to<03:23:44.279> be<03:23:44.399> sure<03:23:44.840> we<03:23:44.960> can<03:23:45.120> add<03:23:45.279> an<03:23:45.479> if<03:23:45.680> check 03:23:46.269 --> 03:23:46.279 align:start position:0% just to be sure we can add an if check 03:23:46.279 --> 03:23:50.150 align:start position:0% just to be sure we can add an if check if<03:23:46.520> no<03:23:46.800> file<03:23:47.080> URL<03:23:47.880> throw<03:23:48.160> a<03:23:48.319> new<03:23:48.920> error<03:23:49.920> but 03:23:50.150 --> 03:23:50.160 align:start position:0% if no file URL throw a new error but 03:23:50.160 --> 03:23:52.269 align:start position:0% if no file URL throw a new error but also<03:23:51.000> not<03:23:51.199> only<03:23:51.439> do<03:23:51.560> we<03:23:51.680> want<03:23:51.800> to<03:23:51.920> throw<03:23:52.160> an 03:23:52.269 --> 03:23:52.279 align:start position:0% also not only do we want to throw an 03:23:52.279 --> 03:23:56.070 align:start position:0% also not only do we want to throw an error<03:23:53.279> we<03:23:53.520> also<03:23:53.800> want<03:23:53.960> to<03:23:54.520> delete<03:23:55.120> a<03:23:55.399> file 03:23:56.070 --> 03:23:56.080 align:start position:0% error we also want to delete a file 03:23:56.080 --> 03:23:58.030 align:start position:0% error we also want to delete a file because<03:23:56.520> something<03:23:56.920> was<03:23:57.160> corrupted 03:23:58.030 --> 03:23:58.040 align:start position:0% because something was corrupted 03:23:58.040 --> 03:24:00.630 align:start position:0% because something was corrupted something<03:23:58.399> wasn't<03:23:58.840> right<03:23:59.080> with<03:23:59.199> it<03:24:00.160> so<03:24:00.359> let's 03:24:00.630 --> 03:24:00.640 align:start position:0% something wasn't right with it so let's 03:24:00.640 --> 03:24:02.150 align:start position:0% something wasn't right with it so let's create<03:24:01.040> a<03:24:01.239> new 03:24:02.150 --> 03:24:02.160 align:start position:0% create a new 03:24:02.160 --> 03:24:06.349 align:start position:0% create a new function<03:24:03.239> delete<03:24:04.399> file<03:24:05.399> to<03:24:05.840> which<03:24:06.239> we're 03:24:06.349 --> 03:24:06.359 align:start position:0% function delete file to which we're 03:24:06.359 --> 03:24:10.590 align:start position:0% function delete file to which we're going<03:24:06.479> to<03:24:06.760> pass<03:24:07.199> the<03:24:07.640> uploaded 03:24:10.590 --> 03:24:10.600 align:start position:0% 03:24:10.600 --> 03:24:14.950 align:start position:0% file<03:24:11.880> do<03:24:12.399> dollar<03:24:12.880> sign 03:24:14.950 --> 03:24:14.960 align:start position:0% file do dollar sign 03:24:14.960 --> 03:24:17.550 align:start position:0% file do dollar sign ID<03:24:15.960> there<03:24:16.120> we<03:24:16.319> go<03:24:16.600> so<03:24:16.760> we're<03:24:17.000> thinking<03:24:17.279> up 03:24:17.550 --> 03:24:17.560 align:start position:0% ID there we go so we're thinking up 03:24:17.560 --> 03:24:19.750 align:start position:0% ID there we go so we're thinking up front<03:24:18.000> if<03:24:18.160> something<03:24:18.479> was<03:24:18.680> corrupted<03:24:19.439> we<03:24:19.640> want 03:24:19.750 --> 03:24:19.760 align:start position:0% front if something was corrupted we want 03:24:19.760 --> 03:24:22.790 align:start position:0% front if something was corrupted we want to<03:24:19.920> delete<03:24:20.359> the<03:24:20.520> previous<03:24:21.239> file<03:24:22.239> and<03:24:22.560> let's 03:24:22.790 --> 03:24:22.800 align:start position:0% to delete the previous file and let's 03:24:22.800 --> 03:24:26.189 align:start position:0% to delete the previous file and let's create<03:24:23.120> this<03:24:23.520> function<03:24:24.520> export<03:24:25.120> async 03:24:26.189 --> 03:24:26.199 align:start position:0% create this function export async 03:24:26.199 --> 03:24:29.870 align:start position:0% create this function export async function<03:24:27.199> delete 03:24:29.870 --> 03:24:29.880 align:start position:0% function delete 03:24:29.880 --> 03:24:33.750 align:start position:0% function delete file<03:24:30.880> which<03:24:31.120> once<03:24:31.399> again<03:24:31.840> accepts<03:24:32.199> a<03:24:32.399> file<03:24:32.760> ID 03:24:33.750 --> 03:24:33.760 align:start position:0% file which once again accepts a file ID 03:24:33.760 --> 03:24:37.750 align:start position:0% file which once again accepts a file ID of<03:24:34.000> a<03:24:34.160> type<03:24:34.439> string<03:24:35.399> of<03:24:35.640> a<03:24:35.840> file<03:24:36.080> we<03:24:36.199> want<03:24:36.319> to 03:24:37.750 --> 03:24:37.760 align:start position:0% of a type string of a file we want to 03:24:37.760 --> 03:24:40.269 align:start position:0% of a type string of a file we want to create<03:24:38.760> it's<03:24:38.920> going<03:24:39.040> to<03:24:39.160> be<03:24:39.279> a<03:24:39.439> try<03:24:39.680> and<03:24:39.960> catch 03:24:40.269 --> 03:24:40.279 align:start position:0% create it's going to be a try and catch 03:24:40.279 --> 03:24:43.269 align:start position:0% create it's going to be a try and catch block<03:24:41.120> with<03:24:41.600> the<03:24:41.760> Consol<03:24:42.199> log<03:24:42.439> of<03:24:42.560> the<03:24:42.680> error 03:24:43.269 --> 03:24:43.279 align:start position:0% block with the Consol log of the error 03:24:43.279 --> 03:24:46.870 align:start position:0% block with the Consol log of the error right<03:24:43.479> here 03:24:46.870 --> 03:24:46.880 align:start position:0% 03:24:46.880 --> 03:24:51.710 align:start position:0% below<03:24:47.880> error<03:24:48.760> and<03:24:48.920> then<03:24:49.199> here<03:24:49.680> we<03:24:49.760> can<03:24:49.880> say 03:24:51.710 --> 03:24:51.720 align:start position:0% below error and then here we can say 03:24:51.720 --> 03:24:56.550 align:start position:0% below error and then here we can say await<03:24:53.160> storage.<03:24:54.160> delete<03:24:54.960> file<03:24:55.960> to<03:24:56.199> which<03:24:56.359> we 03:24:56.550 --> 03:24:56.560 align:start position:0% await storage. delete file to which we 03:24:56.560 --> 03:25:00.590 align:start position:0% await storage. delete file to which we pass<03:24:56.840> the<03:24:57.000> upright<03:24:58.199> config<03:24:59.199> storage<03:24:59.640> ID<03:25:00.439> and 03:25:00.590 --> 03:25:00.600 align:start position:0% pass the upright config storage ID and 03:25:00.600 --> 03:25:02.429 align:start position:0% pass the upright config storage ID and the<03:25:00.760> file<03:25:01.040> ID<03:25:01.439> of<03:25:01.600> the<03:25:01.760> file<03:25:01.960> we<03:25:02.080> want<03:25:02.199> to 03:25:02.429 --> 03:25:02.439 align:start position:0% the file ID of the file we want to 03:25:02.439 --> 03:25:05.670 align:start position:0% the file ID of the file we want to delete<03:25:03.439> and<03:25:03.560> we<03:25:03.680> can<03:25:04.000> return<03:25:04.520> an<03:25:04.840> object<03:25:05.520> with 03:25:05.670 --> 03:25:05.680 align:start position:0% delete and we can return an object with 03:25:05.680 --> 03:25:08.429 align:start position:0% delete and we can return an object with a<03:25:06.120> status<03:25:07.120> of 03:25:08.429 --> 03:25:08.439 align:start position:0% a status of 03:25:08.439 --> 03:25:11.510 align:start position:0% a status of okay<03:25:09.439> there<03:25:09.600> we<03:25:09.800> go<03:25:10.399> so<03:25:10.600> now<03:25:10.720> we're<03:25:10.920> also<03:25:11.160> dele 03:25:11.510 --> 03:25:11.520 align:start position:0% okay there we go so now we're also dele 03:25:11.520 --> 03:25:14.469 align:start position:0% okay there we go so now we're also dele deleting<03:25:11.840> a<03:25:12.359> file<03:25:13.359> and<03:25:13.560> now<03:25:13.920> if<03:25:14.120> we<03:25:14.279> have 03:25:14.469 --> 03:25:14.479 align:start position:0% deleting a file and now if we have 03:25:14.479 --> 03:25:17.550 align:start position:0% deleting a file and now if we have successfully<03:25:15.080> created<03:25:15.439> a<03:25:15.640> file<03:25:16.319> if<03:25:16.439> it<03:25:16.600> isn't 03:25:17.550 --> 03:25:17.560 align:start position:0% successfully created a file if it isn't 03:25:17.560 --> 03:25:20.389 align:start position:0% successfully created a file if it isn't corrupted<03:25:18.560> then<03:25:19.000> we<03:25:19.120> are<03:25:19.520> almost<03:25:19.960> ready<03:25:20.199> to 03:25:20.389 --> 03:25:20.399 align:start position:0% corrupted then we are almost ready to 03:25:20.399 --> 03:25:23.309 align:start position:0% corrupted then we are almost ready to create<03:25:20.680> a<03:25:20.920> post<03:25:21.560> but<03:25:21.800> first<03:25:22.279> we<03:25:22.399> have<03:25:22.520> to<03:25:22.760> deal 03:25:23.309 --> 03:25:23.319 align:start position:0% create a post but first we have to deal 03:25:23.319 --> 03:25:27.790 align:start position:0% create a post but first we have to deal with<03:25:23.479> the<03:25:23.800> tags<03:25:24.800> so<03:25:24.960> we<03:25:25.080> need<03:25:25.239> to 03:25:27.790 --> 03:25:27.800 align:start position:0% 03:25:27.800 --> 03:25:32.110 align:start position:0% convert<03:25:28.800> tags<03:25:29.640> into<03:25:30.040> an<03:25:30.600> array<03:25:31.600> we<03:25:31.720> can<03:25:31.880> do 03:25:32.110 --> 03:25:32.120 align:start position:0% convert tags into an array we can do 03:25:32.120 --> 03:25:35.510 align:start position:0% convert tags into an array we can do that<03:25:32.520> by<03:25:32.640> saying<03:25:33.000> cons<03:25:33.479> tags<03:25:34.199> is<03:25:34.439> equal<03:25:34.760> to 03:25:35.510 --> 03:25:35.520 align:start position:0% that by saying cons tags is equal to 03:25:35.520 --> 03:25:39.269 align:start position:0% that by saying cons tags is equal to post.<03:25:36.359> tags<03:25:37.080> question<03:25:37.479> mark. 03:25:39.269 --> 03:25:39.279 align:start position:0% post. tags question mark. 03:25:39.279 --> 03:25:41.950 align:start position:0% post. tags question mark. replace<03:25:40.279> we<03:25:40.399> want<03:25:40.520> to<03:25:40.680> replace<03:25:41.520> all<03:25:41.640> of<03:25:41.800> the 03:25:41.950 --> 03:25:41.960 align:start position:0% replace we want to replace all of the 03:25:41.960 --> 03:25:44.790 align:start position:0% replace we want to replace all of the empty<03:25:42.399> strings<03:25:43.399> so<03:25:43.560> we<03:25:43.680> can<03:25:43.840> do<03:25:44.160> a<03:25:44.359> regular 03:25:44.790 --> 03:25:44.800 align:start position:0% empty strings so we can do a regular 03:25:44.800 --> 03:25:48.030 align:start position:0% empty strings so we can do a regular expression<03:25:45.720> like<03:25:46.160> so<03:25:47.160> so<03:25:47.399> globally<03:25:47.840> we're 03:25:48.030 --> 03:25:48.040 align:start position:0% expression like so so globally we're 03:25:48.040 --> 03:25:50.309 align:start position:0% expression like so so globally we're looking<03:25:48.239> for<03:25:48.439> all<03:25:48.680> the<03:25:48.960> spaces<03:25:49.960> and<03:25:50.120> we 03:25:50.309 --> 03:25:50.319 align:start position:0% looking for all the spaces and we 03:25:50.319 --> 03:25:52.950 align:start position:0% looking for all the spaces and we replace<03:25:50.680> it<03:25:50.880> with<03:25:51.000> an<03:25:51.160> empty<03:25:51.640> space<03:25:52.640> and<03:25:52.800> then 03:25:52.950 --> 03:25:52.960 align:start position:0% replace it with an empty space and then 03:25:52.960 --> 03:25:55.630 align:start position:0% replace it with an empty space and then we<03:25:53.120> split<03:25:53.520> them<03:25:53.960> by<03:25:54.120> a<03:25:54.359> comma<03:25:55.120> so<03:25:55.359> this<03:25:55.439> will 03:25:55.630 --> 03:25:55.640 align:start position:0% we split them by a comma so this will 03:25:55.640 --> 03:25:59.309 align:start position:0% we split them by a comma so this will ensure<03:25:56.359> to<03:25:56.600> then<03:25:56.840> split<03:25:57.439> all<03:25:57.600> of<03:25:57.720> our<03:25:57.960> tags<03:25:58.920> or 03:25:59.309 --> 03:25:59.319 align:start position:0% ensure to then split all of our tags or 03:25:59.319 --> 03:26:01.189 align:start position:0% ensure to then split all of our tags or we<03:25:59.439> can<03:25:59.560> say<03:25:59.880> just<03:26:00.000> an<03:26:00.160> empty 03:26:01.189 --> 03:26:01.199 align:start position:0% we can say just an empty 03:26:01.199 --> 03:26:05.030 align:start position:0% we can say just an empty string<03:26:02.199> and<03:26:02.479> finally<03:26:03.040> we<03:26:03.199> are<03:26:03.439> ready<03:26:04.000> to<03:26:04.680> save 03:26:05.030 --> 03:26:05.040 align:start position:0% string and finally we are ready to save 03:26:05.040 --> 03:26:08.030 align:start position:0% string and finally we are ready to save the<03:26:05.199> new<03:26:05.479> post<03:26:06.080> database<03:26:07.000> by<03:26:07.160> saying<03:26:07.520> const 03:26:08.030 --> 03:26:08.040 align:start position:0% the new post database by saying const 03:26:08.040 --> 03:26:12.070 align:start position:0% the new post database by saying const new<03:26:08.760> post<03:26:09.760> is<03:26:10.160> equal<03:26:10.520> to 03:26:12.070 --> 03:26:12.080 align:start position:0% new post is equal to 03:26:12.080 --> 03:26:13.870 align:start position:0% new post is equal to await 03:26:13.870 --> 03:26:13.880 align:start position:0% await 03:26:13.880 --> 03:26:16.510 align:start position:0% await databases.<03:26:14.880> create 03:26:16.510 --> 03:26:16.520 align:start position:0% databases. create 03:26:16.520 --> 03:26:19.710 align:start position:0% databases. create document<03:26:17.520> first<03:26:17.880> we<03:26:18.080> pass<03:26:18.479> the<03:26:18.760> database<03:26:19.319> ID 03:26:19.710 --> 03:26:19.720 align:start position:0% document first we pass the database ID 03:26:19.720 --> 03:26:22.269 align:start position:0% document first we pass the database ID we<03:26:19.800> want<03:26:19.920> to<03:26:20.120> update<03:26:20.760> so<03:26:21.040> ight<03:26:21.560> config 03:26:22.269 --> 03:26:22.279 align:start position:0% we want to update so ight config 03:26:22.279 --> 03:26:24.910 align:start position:0% we want to update so ight config database<03:26:22.840> ID<03:26:23.800> then<03:26:24.120> we<03:26:24.359> pass<03:26:24.680> which 03:26:24.910 --> 03:26:24.920 align:start position:0% database ID then we pass which 03:26:24.920 --> 03:26:26.870 align:start position:0% database ID then we pass which collection<03:26:25.399> do<03:26:25.560> we<03:26:25.680> want<03:26:25.760> to<03:26:25.960> update<03:26:26.680> by 03:26:26.870 --> 03:26:26.880 align:start position:0% collection do we want to update by 03:26:26.880 --> 03:26:29.469 align:start position:0% collection do we want to update by passing<03:26:27.199> the<03:26:27.520> upright<03:26:28.040> config<03:26:28.960> do 03:26:29.469 --> 03:26:29.479 align:start position:0% passing the upright config do 03:26:29.479 --> 03:26:30.590 align:start position:0% passing the upright config do postcollection 03:26:30.590 --> 03:26:30.600 align:start position:0% postcollection 03:26:30.600 --> 03:26:34.950 align:start position:0% postcollection ID<03:26:31.600> we<03:26:31.800> Define<03:26:32.279> the<03:26:32.560> unique<03:26:33.560> ID<03:26:34.560> that<03:26:34.680> we<03:26:34.800> want 03:26:34.950 --> 03:26:34.960 align:start position:0% ID we Define the unique ID that we want 03:26:34.960 --> 03:26:39.630 align:start position:0% ID we Define the unique ID that we want to<03:26:35.479> create<03:26:36.479> meaning<03:26:36.840> the<03:26:37.199> post<03:26:38.199> like<03:26:38.520> so<03:26:39.520> and 03:26:39.630 --> 03:26:39.640 align:start position:0% to create meaning the post like so and 03:26:39.640 --> 03:26:41.349 align:start position:0% to create meaning the post like so and then<03:26:39.800> we<03:26:39.880> need<03:26:40.040> to<03:26:40.239> pass<03:26:40.520> the<03:26:40.640> entire<03:26:41.040> object 03:26:41.349 --> 03:26:41.359 align:start position:0% then we need to pass the entire object 03:26:41.359 --> 03:26:43.830 align:start position:0% then we need to pass the entire object object<03:26:41.720> containing<03:26:42.239> all<03:26:42.439> the<03:26:42.640> data<03:26:43.359> about<03:26:43.640> the 03:26:43.830 --> 03:26:43.840 align:start position:0% object containing all the data about the 03:26:43.840 --> 03:26:47.309 align:start position:0% object containing all the data about the post<03:26:44.640> such<03:26:44.840> as<03:26:45.080> creator<03:26:46.040> of<03:26:46.199> a<03:26:46.439> type<03:26:46.680> post. 03:26:47.309 --> 03:26:47.319 align:start position:0% post such as creator of a type post. 03:26:47.319 --> 03:26:51.550 align:start position:0% post such as creator of a type post. user<03:26:48.000> ID<03:26:49.000> the<03:26:49.640> caption<03:26:50.640> which<03:26:50.800> is<03:26:50.920> going<03:26:51.120> to<03:26:51.279> be 03:26:51.550 --> 03:26:51.560 align:start position:0% user ID the caption which is going to be 03:26:51.560 --> 03:26:53.950 align:start position:0% user ID the caption which is going to be of<03:26:51.800> a<03:26:52.040> post. 03:26:53.950 --> 03:26:53.960 align:start position:0% of a post. 03:26:53.960 --> 03:26:57.349 align:start position:0% of a post. caption<03:26:54.960> image<03:26:55.279> URL<03:26:56.160> which<03:26:56.279> is<03:26:56.439> going<03:26:56.600> to<03:26:56.760> be<03:26:57.000> a 03:26:57.349 --> 03:26:57.359 align:start position:0% caption image URL which is going to be a 03:26:57.359 --> 03:26:58.429 align:start position:0% caption image URL which is going to be a file 03:26:58.429 --> 03:26:58.439 align:start position:0% file 03:26:58.439 --> 03:27:01.429 align:start position:0% file URL<03:26:59.439> image<03:26:59.880> ID<03:27:00.640> which<03:27:00.760> is<03:27:00.880> going<03:27:01.080> to<03:27:01.199> be 03:27:01.429 --> 03:27:01.439 align:start position:0% URL image ID which is going to be 03:27:01.439 --> 03:27:04.510 align:start position:0% URL image ID which is going to be uploaded<03:27:02.239> file.<03:27:03.239> doar<03:27:03.560> Sun 03:27:04.510 --> 03:27:04.520 align:start position:0% uploaded file. doar Sun 03:27:04.520 --> 03:27:09.229 align:start position:0% uploaded file. doar Sun ID<03:27:05.520> location<03:27:06.520> which<03:27:06.640> is<03:27:06.760> going<03:27:06.960> to<03:27:07.120> be<03:27:07.600> post. 03:27:09.229 --> 03:27:09.239 align:start position:0% ID location which is going to be post. 03:27:09.239 --> 03:27:12.229 align:start position:0% ID location which is going to be post. location<03:27:10.239> and<03:27:10.399> then<03:27:10.680> tags<03:27:11.640> which<03:27:11.760> is<03:27:11.920> going<03:27:12.120> to 03:27:12.229 --> 03:27:12.239 align:start position:0% location and then tags which is going to 03:27:12.239 --> 03:27:13.870 align:start position:0% location and then tags which is going to be<03:27:12.399> set<03:27:13.000> to 03:27:13.870 --> 03:27:13.880 align:start position:0% be set to 03:27:13.880 --> 03:27:17.670 align:start position:0% be set to tags<03:27:14.880> and<03:27:15.120> now<03:27:16.120> this<03:27:16.560> is<03:27:16.720> saving<03:27:17.279> this<03:27:17.439> new 03:27:17.670 --> 03:27:17.680 align:start position:0% tags and now this is saving this new 03:27:17.680 --> 03:27:18.910 align:start position:0% tags and now this is saving this new Post<03:27:18.000> in<03:27:18.160> the 03:27:18.910 --> 03:27:18.920 align:start position:0% Post in the 03:27:18.920 --> 03:27:22.030 align:start position:0% Post in the database<03:27:19.920> finally<03:27:20.880> we<03:27:21.000> want<03:27:21.160> to<03:27:21.359> check<03:27:21.760> if<03:27:21.920> the 03:27:22.030 --> 03:27:22.040 align:start position:0% database finally we want to check if the 03:27:22.040 --> 03:27:26.269 align:start position:0% database finally we want to check if the new<03:27:22.279> post<03:27:22.640> was<03:27:22.880> created<03:27:23.640> so<03:27:24.000> if<03:27:24.560> no<03:27:24.880> new<03:27:25.279> Post 03:27:26.269 --> 03:27:26.279 align:start position:0% new post was created so if no new Post 03:27:26.279 --> 03:27:29.110 align:start position:0% new post was created so if no new Post in<03:27:26.560> that<03:27:26.840> case<03:27:27.279> we<03:27:27.560> again<03:27:28.080> want<03:27:28.239> to<03:27:28.520> delete 03:27:29.110 --> 03:27:29.120 align:start position:0% in that case we again want to delete 03:27:29.120 --> 03:27:31.870 align:start position:0% in that case we again want to delete this<03:27:29.399> file<03:27:30.160> so<03:27:30.319> we<03:27:30.399> can<03:27:30.560> call<03:27:30.800> a<03:27:31.040> wait<03:27:31.359> delete 03:27:31.870 --> 03:27:31.880 align:start position:0% this file so we can call a wait delete 03:27:31.880 --> 03:27:34.429 align:start position:0% this file so we can call a wait delete file<03:27:32.680> and<03:27:32.800> we<03:27:32.920> want<03:27:33.040> to<03:27:33.279> pass<03:27:33.560> the<03:27:33.720> uploaded 03:27:34.429 --> 03:27:34.439 align:start position:0% file and we want to pass the uploaded 03:27:34.439 --> 03:27:37.070 align:start position:0% file and we want to pass the uploaded file.<03:27:35.439> doar<03:27:35.760> sign<03:27:36.000> ID<03:27:36.560> because<03:27:36.800> something 03:27:37.070 --> 03:27:37.080 align:start position:0% file. doar sign ID because something 03:27:37.080 --> 03:27:40.110 align:start position:0% file. doar sign ID because something went<03:27:37.359> wrong<03:27:38.359> and<03:27:38.479> we<03:27:38.600> want<03:27:38.680> to<03:27:38.880> throw<03:27:39.399> a<03:27:39.600> new 03:27:40.110 --> 03:27:40.120 align:start position:0% went wrong and we want to throw a new 03:27:40.120 --> 03:27:42.670 align:start position:0% went wrong and we want to throw a new error<03:27:40.960> finally<03:27:41.279> finally<03:27:41.840> if<03:27:42.080> all<03:27:42.279> of<03:27:42.479> that 03:27:42.670 --> 03:27:42.680 align:start position:0% error finally finally if all of that 03:27:42.680 --> 03:27:47.349 align:start position:0% error finally finally if all of that succeeded<03:27:43.640> we<03:27:43.760> can<03:27:44.160> return<03:27:44.840> a<03:27:45.040> new<03:27:46.160> post<03:27:47.160> and 03:27:47.349 --> 03:27:47.359 align:start position:0% succeeded we can return a new post and 03:27:47.359 --> 03:27:49.990 align:start position:0% succeeded we can return a new post and with<03:27:47.600> this<03:27:48.120> we're<03:27:48.399> done<03:27:48.800> with<03:27:48.960> the<03:27:49.160> creation 03:27:49.990 --> 03:27:50.000 align:start position:0% with this we're done with the creation 03:27:50.000 --> 03:27:52.389 align:start position:0% with this we're done with the creation of<03:27:50.160> our<03:27:50.399> post<03:27:51.239> we're<03:27:51.439> building<03:27:51.760> a<03:27:51.960> production 03:27:52.389 --> 03:27:52.399 align:start position:0% of our post we're building a production 03:27:52.399 --> 03:27:54.469 align:start position:0% of our post we're building a production ready<03:27:52.720> application<03:27:53.479> so<03:27:53.680> we<03:27:53.800> have<03:27:53.920> a<03:27:54.080> lot<03:27:54.279> of 03:27:54.469 --> 03:27:54.479 align:start position:0% ready application so we have a lot of 03:27:54.479 --> 03:27:56.550 align:start position:0% ready application so we have a lot of checks<03:27:55.120> we<03:27:55.239> need<03:27:55.359> to<03:27:55.600> ensure<03:27:56.000> that<03:27:56.239> everything 03:27:56.550 --> 03:27:56.560 align:start position:0% checks we need to ensure that everything 03:27:56.560 --> 03:27:58.870 align:start position:0% checks we need to ensure that everything is<03:27:56.680> going<03:27:57.000> well<03:27:57.720> if<03:27:57.880> it<03:27:58.000> doesn't<03:27:58.319> go<03:27:58.520> well<03:27:58.760> we 03:27:58.870 --> 03:27:58.880 align:start position:0% is going well if it doesn't go well we 03:27:58.880 --> 03:28:01.030 align:start position:0% is going well if it doesn't go well we have<03:27:58.960> to<03:27:59.120> delete<03:27:59.520> our<03:27:59.720> file<03:28:00.160> not<03:28:00.359> to<03:28:00.560> overload 03:28:01.030 --> 03:28:01.040 align:start position:0% have to delete our file not to overload 03:28:01.040 --> 03:28:04.510 align:start position:0% have to delete our file not to overload our<03:28:01.199> storage<03:28:02.120> right<03:28:02.920> so<03:28:03.279> this<03:28:03.560> is<03:28:03.800> now<03:28:04.239> our 03:28:04.510 --> 03:28:04.520 align:start position:0% our storage right so this is now our 03:28:04.520 --> 03:28:07.550 align:start position:0% our storage right so this is now our function<03:28:05.160> that<03:28:05.319> will<03:28:05.560> create<03:28:05.840> a<03:28:06.239> post<03:28:07.239> now<03:28:07.399> we 03:28:07.550 --> 03:28:07.560 align:start position:0% function that will create a post now we 03:28:07.560 --> 03:28:09.550 align:start position:0% function that will create a post now we have<03:28:07.640> to<03:28:07.840> call<03:28:08.199> this<03:28:08.359> create<03:28:08.760> post<03:28:09.239> as<03:28:09.359> a 03:28:09.550 --> 03:28:09.560 align:start position:0% have to call this create post as a 03:28:09.560 --> 03:28:12.389 align:start position:0% have to call this create post as a mutation<03:28:10.560> so<03:28:10.760> we<03:28:10.920> go<03:28:11.359> back<03:28:11.560> to<03:28:11.720> our<03:28:11.920> react 03:28:12.389 --> 03:28:12.399 align:start position:0% mutation so we go back to our react 03:28:12.399 --> 03:28:14.670 align:start position:0% mutation so we go back to our react query<03:28:13.279> queries<03:28:13.760> and 03:28:14.670 --> 03:28:14.680 align:start position:0% query queries and 03:28:14.680 --> 03:28:17.070 align:start position:0% query queries and mutations<03:28:15.680> we<03:28:15.800> can<03:28:16.000> collapse<03:28:16.479> the<03:28:16.640> existing 03:28:17.070 --> 03:28:17.080 align:start position:0% mutations we can collapse the existing 03:28:17.080 --> 03:28:20.150 align:start position:0% mutations we can collapse the existing ones<03:28:17.720> and<03:28:17.960> create<03:28:18.359> a<03:28:18.560> new<03:28:18.760> one<03:28:19.239> right<03:28:19.479> here 03:28:20.150 --> 03:28:20.160 align:start position:0% ones and create a new one right here 03:28:20.160 --> 03:28:25.309 align:start position:0% ones and create a new one right here below<03:28:21.160> we<03:28:21.279> can<03:28:21.640> export<03:28:22.560> const<03:28:23.560> use<03:28:24.239> create 03:28:25.309 --> 03:28:25.319 align:start position:0% below we can export const use create 03:28:25.319 --> 03:28:28.910 align:start position:0% below we can export const use create post<03:28:26.319> then<03:28:26.680> we<03:28:26.840> want<03:28:27.000> to<03:28:27.239> say<03:28:27.560> as<03:28:27.920> before 03:28:28.910 --> 03:28:28.920 align:start position:0% post then we want to say as before 03:28:28.920 --> 03:28:33.150 align:start position:0% post then we want to say as before return<03:28:29.760> use<03:28:30.640> mutation<03:28:31.640> to<03:28:32.000> which<03:28:32.479> we<03:28:32.720> pass<03:28:33.000> the 03:28:33.150 --> 03:28:33.160 align:start position:0% return use mutation to which we pass the 03:28:33.160 --> 03:28:36.429 align:start position:0% return use mutation to which we pass the mutation<03:28:33.840> FN<03:28:34.520> as<03:28:34.680> in<03:28:35.000> function<03:28:36.000> that's<03:28:36.239> going 03:28:36.429 --> 03:28:36.439 align:start position:0% mutation FN as in function that's going 03:28:36.439 --> 03:28:41.990 align:start position:0% mutation FN as in function that's going to<03:28:36.840> get<03:28:37.040> in<03:28:37.199> a<03:28:37.399> post<03:28:38.239> of<03:28:38.399> a<03:28:38.640> type<03:28:39.080> I<03:28:39.439> new<03:28:40.199> post 03:28:41.990 --> 03:28:42.000 align:start position:0% to get in a post of a type I new post 03:28:42.000 --> 03:28:45.110 align:start position:0% to get in a post of a type I new post and<03:28:42.239> we<03:28:42.359> want<03:28:42.479> to<03:28:42.680> call<03:28:43.319> a<03:28:43.600> create<03:28:44.160> post<03:28:44.840> to 03:28:45.110 --> 03:28:45.120 align:start position:0% and we want to call a create post to 03:28:45.120 --> 03:28:47.389 align:start position:0% and we want to call a create post to which<03:28:45.319> we<03:28:45.520> pass<03:28:45.840> that<03:28:46.120> post<03:28:46.880> of<03:28:47.040> course<03:28:47.239> we 03:28:47.389 --> 03:28:47.399 align:start position:0% which we pass that post of course we 03:28:47.399 --> 03:28:49.429 align:start position:0% which we pass that post of course we have<03:28:47.520> to<03:28:47.680> import<03:28:48.040> the<03:28:48.199> create<03:28:48.600> post<03:28:49.239> from 03:28:49.429 --> 03:28:49.439 align:start position:0% have to import the create post from 03:28:49.439 --> 03:28:52.910 align:start position:0% have to import the create post from where<03:28:49.600> we<03:28:49.760> just<03:28:49.960> created<03:28:50.359> it<03:28:50.880> at<03:28:51.319> upright 03:28:52.910 --> 03:28:52.920 align:start position:0% where we just created it at upright 03:28:52.920 --> 03:28:56.830 align:start position:0% where we just created it at upright API<03:28:53.920> and<03:28:54.080> also<03:28:54.359> the<03:28:54.560> I<03:28:54.800> new<03:28:55.080> post<03:28:55.600> from<03:28:55.840> at/ 03:28:56.830 --> 03:28:56.840 align:start position:0% API and also the I new post from at/ 03:28:56.840 --> 03:28:59.309 align:start position:0% API and also the I new post from at/ types<03:28:57.800> but<03:28:58.000> now<03:28:58.359> this<03:28:58.479> is<03:28:58.680> not<03:28:58.880> the<03:28:59.000> only<03:28:59.199> thing 03:28:59.309 --> 03:28:59.319 align:start position:0% types but now this is not the only thing 03:28:59.319 --> 03:29:01.830 align:start position:0% types but now this is not the only thing we<03:28:59.439> want<03:28:59.560> to<03:28:59.720> do<03:29:00.080> once<03:29:00.239> we<03:29:00.399> create<03:29:00.640> a<03:29:00.840> post<03:29:01.640> we 03:29:01.830 --> 03:29:01.840 align:start position:0% we want to do once we create a post we 03:29:01.840 --> 03:29:03.950 align:start position:0% we want to do once we create a post we also<03:29:02.080> want<03:29:02.199> to<03:29:02.439> query<03:29:03.000> all<03:29:03.279> the<03:29:03.479> existing 03:29:03.950 --> 03:29:03.960 align:start position:0% also want to query all the existing 03:29:03.960 --> 03:29:05.790 align:start position:0% also want to query all the existing posts<03:29:04.520> so<03:29:04.680> we<03:29:04.800> can<03:29:04.920> show<03:29:05.239> them<03:29:05.359> on<03:29:05.479> the 03:29:05.790 --> 03:29:05.800 align:start position:0% posts so we can show them on the 03:29:05.800 --> 03:29:10.150 align:start position:0% posts so we can show them on the homepage<03:29:06.800> so<03:29:07.000> let's<03:29:07.160> say<03:29:07.439> const<03:29:08.399> query<03:29:09.160> client 03:29:10.150 --> 03:29:10.160 align:start position:0% homepage so let's say const query client 03:29:10.160 --> 03:29:14.550 align:start position:0% homepage so let's say const query client is<03:29:10.439> equal<03:29:10.760> to<03:29:11.520> use<03:29:12.080> Query<03:29:12.600> client<03:29:13.560> and<03:29:13.800> then 03:29:14.550 --> 03:29:14.560 align:start position:0% is equal to use Query client and then 03:29:14.560 --> 03:29:17.030 align:start position:0% is equal to use Query client and then right<03:29:14.840> here<03:29:15.279> after<03:29:15.560> the<03:29:15.720> mutation<03:29:16.279> function 03:29:17.030 --> 03:29:17.040 align:start position:0% right here after the mutation function 03:29:17.040 --> 03:29:20.550 align:start position:0% right here after the mutation function we<03:29:17.160> can<03:29:17.319> say<03:29:17.640> on<03:29:18.600> success<03:29:19.600> so<03:29:19.880> what's<03:29:20.080> going<03:29:20.279> to 03:29:20.550 --> 03:29:20.560 align:start position:0% we can say on success so what's going to 03:29:20.560 --> 03:29:23.070 align:start position:0% we can say on success so what's going to happen<03:29:21.199> on<03:29:21.520> success<03:29:22.479> we<03:29:22.640> create<03:29:22.920> this 03:29:23.070 --> 03:29:23.080 align:start position:0% happen on success we create this 03:29:23.080 --> 03:29:25.950 align:start position:0% happen on success we create this callback<03:29:23.560> function<03:29:24.439> and<03:29:24.600> say<03:29:24.920> query 03:29:25.950 --> 03:29:25.960 align:start position:0% callback function and say query 03:29:25.960 --> 03:29:27.950 align:start position:0% callback function and say query client. 03:29:27.950 --> 03:29:27.960 align:start position:0% client. 03:29:27.960 --> 03:29:29.750 align:start position:0% client. invalidate 03:29:29.750 --> 03:29:29.760 align:start position:0% invalidate 03:29:29.760 --> 03:29:32.750 align:start position:0% invalidate queries<03:29:30.760> and<03:29:30.960> here<03:29:31.120> we<03:29:31.239> can<03:29:31.479> pass<03:29:31.720> the<03:29:31.880> filters 03:29:32.750 --> 03:29:32.760 align:start position:0% queries and here we can pass the filters 03:29:32.760 --> 03:29:35.550 align:start position:0% queries and here we can pass the filters based<03:29:33.160> off<03:29:33.359> of<03:29:33.600> which<03:29:34.080> we<03:29:34.199> want<03:29:34.319> to<03:29:34.600> invalidate 03:29:35.550 --> 03:29:35.560 align:start position:0% based off of which we want to invalidate 03:29:35.560 --> 03:29:38.630 align:start position:0% based off of which we want to invalidate the<03:29:35.920> query<03:29:36.920> specifically<03:29:37.720> we<03:29:37.880> want<03:29:38.000> to<03:29:38.199> choose 03:29:38.630 --> 03:29:38.640 align:start position:0% the query specifically we want to choose 03:29:38.640 --> 03:29:41.189 align:start position:0% the query specifically we want to choose a<03:29:38.880> query<03:29:39.359> key<03:29:40.279> which<03:29:40.399> is<03:29:40.520> going<03:29:40.680> to<03:29:40.800> be 03:29:41.189 --> 03:29:41.199 align:start position:0% a query key which is going to be 03:29:41.199 --> 03:29:42.990 align:start position:0% a query key which is going to be something<03:29:41.520> like 03:29:42.990 --> 03:29:43.000 align:start position:0% something like 03:29:43.000 --> 03:29:46.990 align:start position:0% something like posts<03:29:44.000> or<03:29:44.359> rather<03:29:44.920> in<03:29:45.160> this<03:29:45.359> case<03:29:45.680> not<03:29:46.040> posts 03:29:46.990 --> 03:29:47.000 align:start position:0% posts or rather in this case not posts 03:29:47.000 --> 03:29:52.590 align:start position:0% posts or rather in this case not posts but<03:29:47.560> get<03:29:48.920> recent<03:29:50.319> posts<03:29:51.319> why<03:29:51.600> is<03:29:51.840> that<03:29:52.279> and<03:29:52.479> why 03:29:52.590 --> 03:29:52.600 align:start position:0% but get recent posts why is that and why 03:29:52.600 --> 03:29:54.870 align:start position:0% but get recent posts why is that and why do<03:29:52.720> we<03:29:52.840> need<03:29:52.960> to<03:29:53.120> invalidate<03:29:53.720> it<03:29:54.399> well<03:29:54.640> that's 03:29:54.870 --> 03:29:54.880 align:start position:0% do we need to invalidate it well that's 03:29:54.880 --> 03:29:58.189 align:start position:0% do we need to invalidate it well that's the<03:29:55.080> beauty<03:29:55.680> of<03:29:56.120> react<03:29:56.680> query<03:29:57.520> it<03:29:57.680> allows<03:29:58.040> us 03:29:58.189 --> 03:29:58.199 align:start position:0% the beauty of react query it allows us 03:29:58.199 --> 03:30:01.830 align:start position:0% the beauty of react query it allows us to<03:29:58.399> fetch<03:29:59.080> new<03:29:59.720> fresh<03:30:00.319> data<03:30:01.000> and<03:30:01.199> not<03:30:01.479> let<03:30:01.680> the 03:30:01.830 --> 03:30:01.840 align:start position:0% to fetch new fresh data and not let the 03:30:01.840 --> 03:30:04.750 align:start position:0% to fetch new fresh data and not let the data<03:30:02.080> go<03:30:02.399> stale<03:30:03.359> so<03:30:03.680> the<03:30:03.800> next<03:30:04.040> time<03:30:04.199> we<03:30:04.359> try<03:30:04.600> to 03:30:04.750 --> 03:30:04.760 align:start position:0% data go stale so the next time we try to 03:30:04.760 --> 03:30:07.790 align:start position:0% data go stale so the next time we try to get<03:30:05.080> recent<03:30:05.479> posts<03:30:06.279> it<03:30:06.560> actually<03:30:07.040> invalidated 03:30:07.790 --> 03:30:07.800 align:start position:0% get recent posts it actually invalidated 03:30:07.800 --> 03:30:09.910 align:start position:0% get recent posts it actually invalidated this<03:30:07.960> query<03:30:08.680> which<03:30:08.840> means<03:30:09.120> that<03:30:09.279> it<03:30:09.399> will<03:30:09.680> not 03:30:09.910 --> 03:30:09.920 align:start position:0% this query which means that it will not 03:30:09.920 --> 03:30:13.950 align:start position:0% this query which means that it will not be<03:30:10.120> able<03:30:10.359> to<03:30:10.560> get<03:30:11.359> post<03:30:11.680> from<03:30:12.120> cash<03:30:13.120> rather<03:30:13.840> it 03:30:13.950 --> 03:30:13.960 align:start position:0% be able to get post from cash rather it 03:30:13.960 --> 03:30:16.150 align:start position:0% be able to get post from cash rather it will<03:30:14.160> need<03:30:14.319> to<03:30:14.560> recall<03:30:15.080> it<03:30:15.319> again<03:30:15.800> from<03:30:16.000> the 03:30:16.150 --> 03:30:16.160 align:start position:0% will need to recall it again from the 03:30:16.160 --> 03:30:18.469 align:start position:0% will need to recall it again from the server<03:30:17.040> so<03:30:17.279> that's<03:30:17.479> why<03:30:17.600> we<03:30:17.760> have<03:30:17.880> to<03:30:18.000> do<03:30:18.160> it 03:30:18.469 --> 03:30:18.479 align:start position:0% server so that's why we have to do it 03:30:18.479 --> 03:30:21.030 align:start position:0% server so that's why we have to do it this<03:30:18.680> way<03:30:19.199> and<03:30:19.439> invalidate<03:30:20.399> the<03:30:20.560> query<03:30:20.880> for 03:30:21.030 --> 03:30:21.040 align:start position:0% this way and invalidate the query for 03:30:21.040 --> 03:30:23.389 align:start position:0% this way and invalidate the query for the<03:30:21.199> recent<03:30:21.560> posts<03:30:22.359> after<03:30:22.600> we<03:30:22.760> create<03:30:23.040> a<03:30:23.160> new 03:30:23.389 --> 03:30:23.399 align:start position:0% the recent posts after we create a new 03:30:23.399 --> 03:30:26.950 align:start position:0% the recent posts after we create a new post<03:30:24.120> I<03:30:24.279> hope<03:30:24.800> that<03:30:24.960> makes<03:30:25.359> sense<03:30:26.359> now<03:30:26.680> later 03:30:26.950 --> 03:30:26.960 align:start position:0% post I hope that makes sense now later 03:30:26.960 --> 03:30:29.150 align:start position:0% post I hope that makes sense now later on<03:30:27.279> we're<03:30:27.399> going<03:30:27.520> to<03:30:27.680> have<03:30:28.000> many<03:30:28.479> of<03:30:28.760> these 03:30:29.150 --> 03:30:29.160 align:start position:0% on we're going to have many of these 03:30:29.160 --> 03:30:32.070 align:start position:0% on we're going to have many of these query<03:30:29.680> keys<03:30:30.680> and<03:30:30.880> it's<03:30:31.000> a<03:30:31.160> good<03:30:31.319> idea<03:30:31.600> to<03:30:31.800> keep 03:30:32.070 --> 03:30:32.080 align:start position:0% query keys and it's a good idea to keep 03:30:32.080 --> 03:30:35.070 align:start position:0% query keys and it's a good idea to keep them<03:30:32.319> somewhere<03:30:32.920> and<03:30:33.160> keep<03:30:33.399> them<03:30:33.720> safe<03:30:34.680> so 03:30:35.070 --> 03:30:35.080 align:start position:0% them somewhere and keep them safe so 03:30:35.080 --> 03:30:37.590 align:start position:0% them somewhere and keep them safe so what<03:30:35.239> we<03:30:35.319> can<03:30:35.479> do<03:30:35.920> is<03:30:36.160> create<03:30:36.479> a<03:30:36.680> new<03:30:37.000> file 03:30:37.590 --> 03:30:37.600 align:start position:0% what we can do is create a new file 03:30:37.600 --> 03:30:41.870 align:start position:0% what we can do is create a new file right<03:30:37.800> here<03:30:38.000> in<03:30:38.239> react<03:30:38.720> query<03:30:39.479> called<03:30:40.040> query 03:30:41.870 --> 03:30:41.880 align:start position:0% right here in react query called query 03:30:41.880 --> 03:30:45.910 align:start position:0% right here in react query called query keys.<03:30:43.160> TS<03:30:44.160> and<03:30:44.479> there<03:30:44.960> we<03:30:45.080> can<03:30:45.359> define 03:30:45.910 --> 03:30:45.920 align:start position:0% keys. TS and there we can define 03:30:45.920 --> 03:30:48.229 align:start position:0% keys. TS and there we can define something<03:30:46.199> known<03:30:46.520> as<03:30:46.640> an<03:30:46.840> enum<03:30:47.479> so<03:30:47.640> we<03:30:47.760> can<03:30:47.920> say 03:30:48.229 --> 03:30:48.239 align:start position:0% something known as an enum so we can say 03:30:48.239 --> 03:30:52.910 align:start position:0% something known as an enum so we can say export<03:30:49.120> enam<03:30:50.000> query<03:30:51.040> keys<03:30:52.040> this<03:30:52.160> is<03:30:52.279> an 03:30:52.910 --> 03:30:52.920 align:start position:0% export enam query keys this is an 03:30:52.920 --> 03:30:55.030 align:start position:0% export enam query keys this is an enumeration<03:30:53.920> what<03:30:54.040> it<03:30:54.199> means<03:30:54.520> that<03:30:54.720> we<03:30:54.800> can 03:30:55.030 --> 03:30:55.040 align:start position:0% enumeration what it means that we can 03:30:55.040 --> 03:30:58.189 align:start position:0% enumeration what it means that we can Define<03:30:55.720> or<03:30:56.040> connect<03:30:56.840> one<03:30:57.239> key<03:30:57.720> with<03:30:57.920> one 03:30:58.189 --> 03:30:58.199 align:start position:0% Define or connect one key with one 03:30:58.199 --> 03:31:03.269 align:start position:0% Define or connect one key with one string<03:30:59.199> for<03:30:59.439> example<03:31:00.439> get<03:31:01.160> recent<03:31:02.160> posts<03:31:03.080> is 03:31:03.269 --> 03:31:03.279 align:start position:0% string for example get recent posts is 03:31:03.279 --> 03:31:07.229 align:start position:0% string for example get recent posts is going<03:31:03.439> to<03:31:03.640> be<03:31:04.000> a<03:31:04.199> string<03:31:05.000> of<03:31:05.239> get<03:31:05.640> recent<03:31:06.239> posts 03:31:07.229 --> 03:31:07.239 align:start position:0% going to be a string of get recent posts 03:31:07.239 --> 03:31:10.269 align:start position:0% going to be a string of get recent posts now<03:31:07.840> why<03:31:08.279> do<03:31:08.439> we<03:31:08.600> have<03:31:08.720> to<03:31:08.880> do<03:31:09.160> this<03:31:10.080> well 03:31:10.269 --> 03:31:10.279 align:start position:0% now why do we have to do this well 03:31:10.279 --> 03:31:12.189 align:start position:0% now why do we have to do this well that's<03:31:10.560> because<03:31:11.120> if<03:31:11.239> you<03:31:11.359> just<03:31:11.600> misspell 03:31:12.189 --> 03:31:12.199 align:start position:0% that's because if you just misspell 03:31:12.199 --> 03:31:16.550 align:start position:0% that's because if you just misspell something<03:31:12.600> here<03:31:13.279> like<03:31:13.720> get<03:31:14.479> posts<03:31:15.439> like<03:31:15.720> this 03:31:16.550 --> 03:31:16.560 align:start position:0% something here like get posts like this 03:31:16.560 --> 03:31:18.670 align:start position:0% something here like get posts like this or<03:31:16.800> get<03:31:17.000> recent<03:31:17.399> post<03:31:17.760> maybe<03:31:18.160> that's<03:31:18.359> even<03:31:18.560> a 03:31:18.670 --> 03:31:18.680 align:start position:0% or get recent post maybe that's even a 03:31:18.680 --> 03:31:21.790 align:start position:0% or get recent post maybe that's even a bigger<03:31:19.239> misspelling<03:31:20.239> it<03:31:20.439> might<03:31:20.640> be<03:31:21.160> really 03:31:21.790 --> 03:31:21.800 align:start position:0% bigger misspelling it might be really 03:31:21.800 --> 03:31:25.110 align:start position:0% bigger misspelling it might be really really<03:31:22.239> hard<03:31:22.479> to<03:31:22.680> notice<03:31:23.520> almost<03:31:24.120> impossible 03:31:25.110 --> 03:31:25.120 align:start position:0% really hard to notice almost impossible 03:31:25.120 --> 03:31:27.590 align:start position:0% really hard to notice almost impossible and<03:31:25.319> you<03:31:25.439> can<03:31:25.600> spend<03:31:26.080> hours<03:31:26.760> looking<03:31:27.120> for<03:31:27.359> this 03:31:27.590 --> 03:31:27.600 align:start position:0% and you can spend hours looking for this 03:31:27.600 --> 03:31:30.510 align:start position:0% and you can spend hours looking for this bug<03:31:28.199> but<03:31:28.399> on<03:31:28.560> the<03:31:28.720> other<03:31:29.040> hand<03:31:30.040> if<03:31:30.160> you<03:31:30.319> do 03:31:30.510 --> 03:31:30.520 align:start position:0% bug but on the other hand if you do 03:31:30.520 --> 03:31:37.110 align:start position:0% bug but on the other hand if you do something<03:31:30.880> like<03:31:31.399> this<03:31:32.800> array<03:31:34.080> query<03:31:35.080> unor 03:31:37.110 --> 03:31:37.120 align:start position:0% something like this array query unor 03:31:37.120 --> 03:31:41.110 align:start position:0% something like this array query unor keys.<03:31:38.120> getet<03:31:38.640> recent<03:31:39.279> posts<03:31:40.279> it's<03:31:40.479> impossible 03:31:41.110 --> 03:31:41.120 align:start position:0% keys. getet recent posts it's impossible 03:31:41.120 --> 03:31:43.030 align:start position:0% keys. getet recent posts it's impossible to<03:31:41.279> miss<03:31:41.439> it<03:31:41.880> because<03:31:42.080> you<03:31:42.160> can<03:31:42.399> import<03:31:42.760> it 03:31:43.030 --> 03:31:43.040 align:start position:0% to miss it because you can import it 03:31:43.040 --> 03:31:45.590 align:start position:0% to miss it because you can import it specifically<03:31:43.920> from<03:31:44.160> query<03:31:44.600> keys<03:31:45.359> and<03:31:45.479> then 03:31:45.590 --> 03:31:45.600 align:start position:0% specifically from query keys and then 03:31:45.600 --> 03:31:48.590 align:start position:0% specifically from query keys and then you<03:31:45.800> know<03:31:46.399> it's<03:31:46.600> going<03:31:46.760> to<03:31:46.920> be<03:31:47.199> right<03:31:48.199> and<03:31:48.399> now 03:31:48.590 --> 03:31:48.600 align:start position:0% you know it's going to be right and now 03:31:48.600 --> 03:31:50.630 align:start position:0% you know it's going to be right and now if<03:31:48.720> I<03:31:48.920> misspell<03:31:49.319> it<03:31:49.560> here<03:31:50.160> it's<03:31:50.319> going<03:31:50.479> to 03:31:50.630 --> 03:31:50.640 align:start position:0% if I misspell it here it's going to 03:31:50.640 --> 03:31:53.429 align:start position:0% if I misspell it here it's going to immediately<03:31:51.160> complain<03:31:52.160> so<03:31:52.479> this<03:31:52.720> is<03:31:52.840> a<03:31:53.120> pro 03:31:53.429 --> 03:31:53.439 align:start position:0% immediately complain so this is a pro 03:31:53.439 --> 03:31:55.910 align:start position:0% immediately complain so this is a pro tip<03:31:53.760> when<03:31:53.960> building<03:31:54.319> large<03:31:54.760> applications<03:31:55.760> how 03:31:55.910 --> 03:31:55.920 align:start position:0% tip when building large applications how 03:31:55.920 --> 03:31:59.349 align:start position:0% tip when building large applications how to<03:31:56.160> save<03:31:56.479> yourself<03:31:57.120> from<03:31:57.520> typos<03:31:58.520> create<03:31:59.120> an 03:31:59.349 --> 03:31:59.359 align:start position:0% to save yourself from typos create an 03:31:59.359 --> 03:32:01.389 align:start position:0% to save yourself from typos create an enam<03:32:00.040> where<03:32:00.199> you'll<03:32:00.359> be<03:32:00.479> able<03:32:00.640> to<03:32:00.800> create<03:32:01.120> more 03:32:01.389 --> 03:32:01.399 align:start position:0% enam where you'll be able to create more 03:32:01.399 --> 03:32:04.110 align:start position:0% enam where you'll be able to create more different<03:32:01.760> versions<03:32:02.160> of<03:32:02.520> this<03:32:03.520> so<03:32:03.840> in<03:32:03.960> the 03:32:04.110 --> 03:32:04.120 align:start position:0% different versions of this so in the 03:32:04.120 --> 03:32:06.550 align:start position:0% different versions of this so in the description<03:32:04.600> down<03:32:04.760> below<03:32:05.439> you<03:32:05.560> can<03:32:05.760> find<03:32:06.120> all 03:32:06.550 --> 03:32:06.560 align:start position:0% description down below you can find all 03:32:06.560 --> 03:32:09.389 align:start position:0% description down below you can find all query<03:32:06.960> keys.<03:32:07.560> TS<03:32:08.359> it's<03:32:08.520> going<03:32:08.680> to<03:32:08.840> be<03:32:09.080> just<03:32:09.239> a 03:32:09.389 --> 03:32:09.399 align:start position:0% query keys. TS it's going to be just a 03:32:09.399 --> 03:32:11.349 align:start position:0% query keys. TS it's going to be just a couple<03:32:09.680> more<03:32:10.399> and<03:32:10.520> we'll<03:32:10.680> use<03:32:10.920> use<03:32:11.120> these 03:32:11.349 --> 03:32:11.359 align:start position:0% couple more and we'll use use these 03:32:11.359 --> 03:32:14.590 align:start position:0% couple more and we'll use use these later<03:32:11.640> on<03:32:12.160> to<03:32:12.479> invalidate<03:32:13.439> specific<03:32:13.880> queries 03:32:14.590 --> 03:32:14.600 align:start position:0% later on to invalidate specific queries 03:32:14.600 --> 03:32:17.710 align:start position:0% later on to invalidate specific queries so<03:32:14.800> we<03:32:14.920> can<03:32:15.199> always<03:32:15.680> keep<03:32:15.920> our<03:32:16.160> data<03:32:16.720> fresh 03:32:17.710 --> 03:32:17.720 align:start position:0% so we can always keep our data fresh 03:32:17.720 --> 03:32:20.510 align:start position:0% so we can always keep our data fresh great<03:32:18.399> so<03:32:18.600> now<03:32:18.880> we<03:32:19.000> have<03:32:19.120> our<03:32:19.319> use<03:32:19.680> create<03:32:20.080> post 03:32:20.510 --> 03:32:20.520 align:start position:0% great so now we have our use create post 03:32:20.520 --> 03:32:24.189 align:start position:0% great so now we have our use create post mutation<03:32:21.520> and<03:32:21.680> we<03:32:21.760> can<03:32:21.960> call<03:32:22.279> it<03:32:23.040> within<03:32:24.040> can 03:32:24.189 --> 03:32:24.199 align:start position:0% mutation and we can call it within can 03:32:24.199 --> 03:32:28.710 align:start position:0% mutation and we can call it within can you<03:32:24.359> guess<03:32:24.680> where<03:32:25.680> within<03:32:26.399> post<03:32:27.080> form<03:32:28.040> yep<03:32:28.520> we 03:32:28.710 --> 03:32:28.720 align:start position:0% you guess where within post form yep we 03:32:28.720 --> 03:32:31.429 align:start position:0% you guess where within post form yep we finally<03:32:29.160> got<03:32:29.479> there<03:32:30.359> we<03:32:30.479> can<03:32:30.720> start<03:32:31.199> by 03:32:31.429 --> 03:32:31.439 align:start position:0% finally got there we can start by 03:32:31.439 --> 03:32:34.309 align:start position:0% finally got there we can start by creating<03:32:31.800> the<03:32:32.080> structure<03:32:32.760> for<03:32:33.040> our<03:32:33.359> homepage 03:32:34.309 --> 03:32:34.319 align:start position:0% creating the structure for our homepage 03:32:34.319 --> 03:32:36.030 align:start position:0% creating the structure for our homepage we're<03:32:34.520> going<03:32:34.680> to<03:32:34.880> have<03:32:35.080> a<03:32:35.239> div<03:32:35.680> that's<03:32:35.880> going 03:32:36.030 --> 03:32:36.040 align:start position:0% we're going to have a div that's going 03:32:36.040 --> 03:32:40.469 align:start position:0% we're going to have a div that's going to<03:32:36.279> have<03:32:36.600> a<03:32:36.920> class<03:32:37.560> name<03:32:38.560> equal<03:32:38.880> to<03:32:39.520> flex<03:32:40.239> and 03:32:40.469 --> 03:32:40.479 align:start position:0% to have a class name equal to flex and 03:32:40.479 --> 03:32:43.750 align:start position:0% to have a class name equal to flex and flex<03:32:40.840> x<03:32:41.040> one<03:32:41.399> so<03:32:41.600> it<03:32:42.160> expands<03:32:43.160> within<03:32:43.439> it<03:32:43.640> we're 03:32:43.750 --> 03:32:43.760 align:start position:0% flex x one so it expands within it we're 03:32:43.760 --> 03:32:45.269 align:start position:0% flex x one so it expands within it we're going<03:32:43.880> to<03:32:44.000> have<03:32:44.199> another<03:32:44.520> div<03:32:44.960> that's<03:32:45.160> going 03:32:45.269 --> 03:32:45.279 align:start position:0% going to have another div that's going 03:32:45.279 --> 03:32:49.590 align:start position:0% going to have another div that's going to<03:32:45.520> have<03:32:45.840> a<03:32:46.120> class<03:32:46.520> name<03:32:47.199> is<03:32:47.439> equal<03:32:47.760> to<03:32:48.600> home 03:32:49.590 --> 03:32:49.600 align:start position:0% to have a class name is equal to home 03:32:49.600 --> 03:32:52.510 align:start position:0% to have a class name is equal to home Das<03:32:50.199> container<03:32:51.199> if<03:32:51.319> we<03:32:51.479> save<03:32:51.800> this<03:32:52.160> we<03:32:52.279> cannot 03:32:52.510 --> 03:32:52.520 align:start position:0% Das container if we save this we cannot 03:32:52.520 --> 03:32:54.990 align:start position:0% Das container if we save this we cannot see<03:32:52.680> a<03:32:52.800> lot<03:32:53.359> but<03:32:53.600> it's<03:32:53.920> there<03:32:54.560> let's<03:32:54.720> go<03:32:54.840> ahead 03:32:54.990 --> 03:32:55.000 align:start position:0% see a lot but it's there let's go ahead 03:32:55.000 --> 03:32:57.229 align:start position:0% see a lot but it's there let's go ahead and<03:32:55.120> move<03:32:55.399> this<03:32:55.560> over<03:32:55.800> to<03:32:56.000> the<03:32:56.199> side<03:32:56.920> so<03:32:57.080> now 03:32:57.229 --> 03:32:57.239 align:start position:0% and move this over to the side so now 03:32:57.239 --> 03:32:59.590 align:start position:0% and move this over to the side so now it's<03:32:57.359> easier<03:32:57.680> to<03:32:57.960> develop<03:32:58.960> right<03:32:59.160> within<03:32:59.399> our 03:32:59.590 --> 03:32:59.600 align:start position:0% it's easier to develop right within our 03:32:59.600 --> 03:33:02.429 align:start position:0% it's easier to develop right within our home<03:32:59.880> container<03:33:00.640> we<03:33:00.760> can<03:33:00.960> create<03:33:01.279> another<03:33:01.640> div 03:33:02.429 --> 03:33:02.439 align:start position:0% home container we can create another div 03:33:02.439 --> 03:33:04.590 align:start position:0% home container we can create another div that's<03:33:02.640> going<03:33:02.760> to<03:33:02.920> have<03:33:03.080> a<03:33:03.279> class<03:33:03.640> name<03:33:04.279> equal 03:33:04.590 --> 03:33:04.600 align:start position:0% that's going to have a class name equal 03:33:04.600 --> 03:33:07.510 align:start position:0% that's going to have a class name equal to<03:33:05.279> home- 03:33:07.510 --> 03:33:07.520 align:start position:0% to home- 03:33:07.520 --> 03:33:11.469 align:start position:0% to home- poost<03:33:08.520> and<03:33:08.800> within<03:33:09.080> it<03:33:09.359> we<03:33:09.479> can<03:33:09.640> create<03:33:09.960> an<03:33:10.160> H2 03:33:11.469 --> 03:33:11.479 align:start position:0% poost and within it we can create an H2 03:33:11.479 --> 03:33:13.710 align:start position:0% poost and within it we can create an H2 that's<03:33:11.680> going<03:33:11.840> to<03:33:12.040> say<03:33:12.600> home 03:33:13.710 --> 03:33:13.720 align:start position:0% that's going to say home 03:33:13.720 --> 03:33:16.110 align:start position:0% that's going to say home feed<03:33:14.720> there<03:33:14.880> we<03:33:15.040> go<03:33:15.359> the<03:33:15.479> first<03:33:15.720> thing<03:33:15.880> we<03:33:15.960> can 03:33:16.110 --> 03:33:16.120 align:start position:0% feed there we go the first thing we can 03:33:16.120 --> 03:33:19.030 align:start position:0% feed there we go the first thing we can see<03:33:16.399> here<03:33:17.160> let's<03:33:17.359> give<03:33:17.479> it<03:33:17.600> a<03:33:17.800> class<03:33:18.120> name 03:33:19.030 --> 03:33:19.040 align:start position:0% see here let's give it a class name 03:33:19.040 --> 03:33:21.469 align:start position:0% see here let's give it a class name equal<03:33:19.359> to<03:33:19.760> H3 03:33:21.469 --> 03:33:21.479 align:start position:0% equal to H3 03:33:21.479 --> 03:33:27.389 align:start position:0% equal to H3 dasb<03:33:22.479> on<03:33:22.680> medium<03:33:23.199> devices<03:33:24.279> H2<03:33:25.640> dasb<03:33:26.640> text- 03:33:27.389 --> 03:33:27.399 align:start position:0% dasb on medium devices H2 dasb text- 03:33:27.399 --> 03:33:31.830 align:start position:0% dasb on medium devices H2 dasb text- left<03:33:28.399> and<03:33:28.720> w-<03:33:29.479> full<03:33:30.359> so<03:33:30.600> now<03:33:31.199> we<03:33:31.319> can<03:33:31.439> see<03:33:31.600> it<03:33:31.720> on 03:33:31.830 --> 03:33:31.840 align:start position:0% left and w- full so now we can see it on 03:33:31.840 --> 03:33:35.309 align:start position:0% left and w- full so now we can see it on the<03:33:32.040> top<03:33:32.680> left<03:33:33.680> now<03:33:34.000> immediately<03:33:34.520> below<03:33:35.239> we 03:33:35.309 --> 03:33:35.319 align:start position:0% the top left now immediately below we 03:33:35.319 --> 03:33:36.910 align:start position:0% the top left now immediately below we want<03:33:35.439> to<03:33:35.600> show<03:33:35.880> some<03:33:36.080> kind<03:33:36.199> of<03:33:36.319> a<03:33:36.439> loader 03:33:36.910 --> 03:33:36.920 align:start position:0% want to show some kind of a loader 03:33:36.920 --> 03:33:39.550 align:start position:0% want to show some kind of a loader component<03:33:37.680> if<03:33:37.920> posts<03:33:38.239> are<03:33:38.439> loading<03:33:39.160> so<03:33:39.359> let's 03:33:39.550 --> 03:33:39.560 align:start position:0% component if posts are loading so let's 03:33:39.560 --> 03:33:43.750 align:start position:0% component if posts are loading so let's create<03:33:39.840> a<03:33:40.080> fake<03:33:40.760> const<03:33:41.560> is<03:33:42.160> post<03:33:42.760> loading 03:33:43.750 --> 03:33:43.760 align:start position:0% create a fake const is post loading 03:33:43.760 --> 03:33:45.750 align:start position:0% create a fake const is post loading which<03:33:43.880> is<03:33:44.040> going<03:33:44.160> to<03:33:44.279> be<03:33:44.439> set<03:33:44.760> to<03:33:45.399> let's<03:33:45.560> do 03:33:45.750 --> 03:33:45.760 align:start position:0% which is going to be set to let's do 03:33:45.760 --> 03:33:48.950 align:start position:0% which is going to be set to let's do true<03:33:46.040> for<03:33:46.520> now<03:33:47.520> immediately<03:33:48.080> below<03:33:48.720> we<03:33:48.800> can 03:33:48.950 --> 03:33:48.960 align:start position:0% true for now immediately below we can 03:33:48.960 --> 03:33:53.110 align:start position:0% true for now immediately below we can say<03:33:49.239> if<03:33:49.680> is<03:33:50.040> post<03:33:50.840> loading<03:33:51.840> and<03:33:52.160> if<03:33:52.319> there's<03:33:52.640> no 03:33:53.110 --> 03:33:53.120 align:start position:0% say if is post loading and if there's no 03:33:53.120 --> 03:33:56.710 align:start position:0% say if is post loading and if there's no posts<03:33:54.120> and<03:33:54.520> post<03:33:55.160> is<03:33:55.279> going<03:33:55.479> to<03:33:55.680> be<03:33:56.080> set<03:33:56.359> to 03:33:56.710 --> 03:33:56.720 align:start position:0% posts and post is going to be set to 03:33:56.720 --> 03:34:00.590 align:start position:0% posts and post is going to be set to null<03:33:57.040> for<03:33:57.640> now<03:33:58.640> if<03:33:58.800> there's<03:33:59.040> no<03:33:59.399> that<03:34:00.120> then<03:34:00.479> we 03:34:00.590 --> 03:34:00.600 align:start position:0% null for now if there's no that then we 03:34:00.600 --> 03:34:05.110 align:start position:0% null for now if there's no that then we can<03:34:00.760> show<03:34:01.560> the<03:34:02.199> loading<03:34:03.199> right<03:34:03.920> here<03:34:04.920> or 03:34:05.110 --> 03:34:05.120 align:start position:0% can show the loading right here or 03:34:05.120 --> 03:34:07.389 align:start position:0% can show the loading right here or rather<03:34:05.319> a<03:34:05.479> loader<03:34:06.160> I<03:34:06.239> believe<03:34:06.520> we<03:34:06.680> called<03:34:06.960> it 03:34:07.389 --> 03:34:07.399 align:start position:0% rather a loader I believe we called it 03:34:07.399 --> 03:34:10.910 align:start position:0% rather a loader I believe we called it we<03:34:07.479> can<03:34:07.680> import<03:34:08.000> it<03:34:08.520> immediately<03:34:09.520> and<03:34:09.840> else<03:34:10.800> we 03:34:10.910 --> 03:34:10.920 align:start position:0% we can import it immediately and else we 03:34:10.920 --> 03:34:13.870 align:start position:0% we can import it immediately and else we can<03:34:11.160> actually<03:34:11.720> create<03:34:12.080> a<03:34:12.399> UL<03:34:13.399> that's<03:34:13.560> going<03:34:13.720> to 03:34:13.870 --> 03:34:13.880 align:start position:0% can actually create a UL that's going to 03:34:13.880 --> 03:34:16.870 align:start position:0% can actually create a UL that's going to allow<03:34:14.120> us<03:34:14.239> to<03:34:14.399> Loop<03:34:14.840> over<03:34:15.319> all<03:34:15.479> of<03:34:15.600> our 03:34:16.870 --> 03:34:16.880 align:start position:0% allow us to Loop over all of our 03:34:16.880 --> 03:34:19.469 align:start position:0% allow us to Loop over all of our posts<03:34:17.880> so<03:34:18.040> for<03:34:18.279> now<03:34:18.560> we<03:34:18.720> can<03:34:18.840> see<03:34:19.040> this<03:34:19.160> great 03:34:19.469 --> 03:34:19.479 align:start position:0% posts so for now we can see this great 03:34:19.479 --> 03:34:21.870 align:start position:0% posts so for now we can see this great loading<03:34:20.279> but<03:34:20.479> now<03:34:20.800> let's<03:34:21.080> focus<03:34:21.399> on<03:34:21.680> what 03:34:21.870 --> 03:34:21.880 align:start position:0% loading but now let's focus on what 03:34:21.880 --> 03:34:25.189 align:start position:0% loading but now let's focus on what matters<03:34:22.399> more<03:34:23.199> and<03:34:23.439> that<03:34:23.600> is<03:34:23.960> fetching<03:34:24.640> all<03:34:25.000> of 03:34:25.189 --> 03:34:25.199 align:start position:0% matters more and that is fetching all of 03:34:25.199 --> 03:34:27.910 align:start position:0% matters more and that is fetching all of the<03:34:25.560> posts<03:34:26.560> to<03:34:26.800> fetch<03:34:27.040> the<03:34:27.199> posts<03:34:27.640> we'll<03:34:27.840> have 03:34:27.910 --> 03:34:27.920 align:start position:0% the posts to fetch the posts we'll have 03:34:27.920 --> 03:34:29.389 align:start position:0% the posts to fetch the posts we'll have to<03:34:28.040> go<03:34:28.160> to<03:34:28.319> our 03:34:29.389 --> 03:34:29.399 align:start position:0% to go to our 03:34:29.399 --> 03:34:32.110 align:start position:0% to go to our queries<03:34:30.399> and<03:34:30.720> here<03:34:31.160> we'll<03:34:31.359> have<03:34:31.479> to<03:34:31.640> create<03:34:31.960> a 03:34:32.110 --> 03:34:32.120 align:start position:0% queries and here we'll have to create a 03:34:32.120 --> 03:34:35.469 align:start position:0% queries and here we'll have to create a new<03:34:32.359> query<03:34:32.800> to<03:34:33.080> get<03:34:33.399> recent<03:34:33.880> posts<03:34:34.800> by<03:34:34.960> saying 03:34:35.469 --> 03:34:35.479 align:start position:0% new query to get recent posts by saying 03:34:35.479 --> 03:34:36.910 align:start position:0% new query to get recent posts by saying export 03:34:36.910 --> 03:34:36.920 align:start position:0% export 03:34:36.920 --> 03:34:41.670 align:start position:0% export const<03:34:37.920> use<03:34:38.760> get<03:34:39.680> recent 03:34:41.670 --> 03:34:41.680 align:start position:0% const use get recent 03:34:41.680 --> 03:34:44.189 align:start position:0% const use get recent posts<03:34:42.680> this<03:34:42.760> is<03:34:42.920> going<03:34:43.080> to<03:34:43.199> be<03:34:43.319> a<03:34:43.479> function 03:34:44.189 --> 03:34:44.199 align:start position:0% posts this is going to be a function 03:34:44.199 --> 03:34:47.189 align:start position:0% posts this is going to be a function that's<03:34:44.399> going<03:34:44.560> to<03:34:44.880> return<03:34:45.479> a<03:34:45.720> use<03:34:46.279> Query<03:34:47.000> no 03:34:47.189 --> 03:34:47.199 align:start position:0% that's going to return a use Query no 03:34:47.199 --> 03:34:50.950 align:start position:0% that's going to return a use Query no longer<03:34:47.520> a<03:34:47.680> Ed<03:34:48.000> mutation<03:34:49.000> rather<03:34:49.520> a<03:34:49.680> used<03:34:50.080> query 03:34:50.950 --> 03:34:50.960 align:start position:0% longer a Ed mutation rather a used query 03:34:50.960 --> 03:34:53.229 align:start position:0% longer a Ed mutation rather a used query where<03:34:51.199> the<03:34:51.399> query<03:34:51.880> key<03:34:52.399> of<03:34:52.640> what<03:34:52.760> we<03:34:52.880> want<03:34:53.000> to 03:34:53.229 --> 03:34:53.239 align:start position:0% where the query key of what we want to 03:34:53.239 --> 03:34:57.750 align:start position:0% where the query key of what we want to get<03:34:53.840> is<03:34:54.000> going<03:34:54.160> to<03:34:54.279> be<03:34:54.439> an<03:34:54.600> array<03:34:55.399> of<03:34:55.720> query 03:34:57.750 --> 03:34:57.760 align:start position:0% get is going to be an array of query 03:34:57.760 --> 03:35:00.550 align:start position:0% get is going to be an array of query keys.<03:34:58.760> getor 03:35:00.550 --> 03:35:00.560 align:start position:0% keys. getor 03:35:00.560 --> 03:35:02.150 align:start position:0% keys. getor recentposts 03:35:02.150 --> 03:35:02.160 align:start position:0% recentposts 03:35:02.160 --> 03:35:05.229 align:start position:0% recentposts and<03:35:03.160> a<03:35:03.359> query<03:35:03.760> function<03:35:04.359> meaning<03:35:04.920> what<03:35:05.040> will 03:35:05.229 --> 03:35:05.239 align:start position:0% and a query function meaning what will 03:35:05.239 --> 03:35:09.189 align:start position:0% and a query function meaning what will get<03:35:05.920> executed<03:35:06.920> once<03:35:07.120> we<03:35:07.279> try<03:35:07.520> to<03:35:07.720> fetch<03:35:08.199> this 03:35:09.189 --> 03:35:09.199 align:start position:0% get executed once we try to fetch this 03:35:09.199 --> 03:35:11.030 align:start position:0% get executed once we try to fetch this this<03:35:09.640> will<03:35:09.840> have<03:35:09.960> to<03:35:10.080> be<03:35:10.199> a<03:35:10.279> function<03:35:10.800> coming 03:35:11.030 --> 03:35:11.040 align:start position:0% this will have to be a function coming 03:35:11.040 --> 03:35:14.150 align:start position:0% this will have to be a function coming from<03:35:11.399> aight<03:35:12.399> so<03:35:12.680> now<03:35:13.080> we<03:35:13.199> have<03:35:13.319> to<03:35:13.520> move<03:35:13.760> to<03:35:13.960> the 03:35:14.150 --> 03:35:14.160 align:start position:0% from aight so now we have to move to the 03:35:14.160 --> 03:35:17.309 align:start position:0% from aight so now we have to move to the aight<03:35:14.760> API<03:35:15.760> and<03:35:15.960> create<03:35:16.239> a<03:35:16.399> new 03:35:17.309 --> 03:35:17.319 align:start position:0% aight API and create a new 03:35:17.319 --> 03:35:22.110 align:start position:0% aight API and create a new function<03:35:18.319> export<03:35:19.520> async<03:35:20.520> function<03:35:21.479> get 03:35:22.110 --> 03:35:22.120 align:start position:0% function export async function get 03:35:22.120 --> 03:35:23.550 align:start position:0% function export async function get recent 03:35:23.550 --> 03:35:23.560 align:start position:0% recent 03:35:23.560 --> 03:35:27.269 align:start position:0% recent posts<03:35:24.560> where<03:35:24.920> we<03:35:25.040> can<03:35:25.160> set<03:35:25.439> the<03:35:25.880> posts<03:35:26.880> to<03:35:27.040> be 03:35:27.269 --> 03:35:27.279 align:start position:0% posts where we can set the posts to be 03:35:27.279 --> 03:35:30.349 align:start position:0% posts where we can set the posts to be equal<03:35:27.560> to<03:35:28.520> await 03:35:30.349 --> 03:35:30.359 align:start position:0% equal to await 03:35:30.359 --> 03:35:32.910 align:start position:0% equal to await databases.<03:35:31.359> list 03:35:32.910 --> 03:35:32.920 align:start position:0% databases. list 03:35:32.920 --> 03:35:35.590 align:start position:0% databases. list documents<03:35:33.920> to<03:35:34.239> that<03:35:34.520> we<03:35:34.720> have<03:35:34.840> to<03:35:35.040> provide<03:35:35.399> the 03:35:35.590 --> 03:35:35.600 align:start position:0% documents to that we have to provide the 03:35:35.600 --> 03:35:36.710 align:start position:0% documents to that we have to provide the aight 03:35:36.710 --> 03:35:36.720 align:start position:0% aight 03:35:36.720 --> 03:35:41.750 align:start position:0% aight config<03:35:37.720> database<03:35:38.640> ID<03:35:39.640> aright<03:35:40.120> config 03:35:41.750 --> 03:35:41.760 align:start position:0% config database ID aright config 03:35:41.760 --> 03:35:45.030 align:start position:0% config database ID aright config dopost<03:35:42.760> collection<03:35:43.560> ID<03:35:44.199> as<03:35:44.359> the<03:35:44.520> second 03:35:45.030 --> 03:35:45.040 align:start position:0% dopost collection ID as the second 03:35:45.040 --> 03:35:47.389 align:start position:0% dopost collection ID as the second parameter<03:35:46.040> and<03:35:46.160> then<03:35:46.319> we<03:35:46.439> can<03:35:46.680> Define<03:35:47.160> in 03:35:47.389 --> 03:35:47.399 align:start position:0% parameter and then we can Define in 03:35:47.399 --> 03:35:49.710 align:start position:0% parameter and then we can Define in which<03:35:47.680> order<03:35:48.160> do<03:35:48.319> we<03:35:48.439> want<03:35:48.640> to<03:35:48.800> get<03:35:48.960> it<03:35:49.479> so<03:35:49.640> we 03:35:49.710 --> 03:35:49.720 align:start position:0% which order do we want to get it so we 03:35:49.720 --> 03:35:50.630 align:start position:0% which order do we want to get it so we can<03:35:49.840> say 03:35:50.630 --> 03:35:50.640 align:start position:0% can say 03:35:50.640 --> 03:35:52.189 align:start position:0% can say query. 03:35:52.189 --> 03:35:52.199 align:start position:0% query. 03:35:52.199 --> 03:35:55.030 align:start position:0% query. orderes<03:35:53.199> as<03:35:53.319> in<03:35:53.560> descending 03:35:55.030 --> 03:35:55.040 align:start position:0% orderes as in descending 03:35:55.040 --> 03:35:59.990 align:start position:0% orderes as in descending DEC<03:35:56.040> based<03:35:56.680> off<03:35:56.880> of<03:35:57.080> the<03:35:57.520> created<03:35:58.479> at<03:35:59.000> criteria 03:35:59.990 --> 03:36:00.000 align:start position:0% DEC based off of the created at criteria 03:36:00.000 --> 03:36:01.830 align:start position:0% DEC based off of the created at criteria so<03:36:00.199> the<03:36:00.359> latest<03:36:00.760> ones<03:36:01.000> are<03:36:01.160> going<03:36:01.319> to<03:36:01.520> appear 03:36:01.830 --> 03:36:01.840 align:start position:0% so the latest ones are going to appear 03:36:01.840 --> 03:36:04.630 align:start position:0% so the latest ones are going to appear on<03:36:02.120> top<03:36:02.920> and<03:36:03.040> then<03:36:03.199> we<03:36:03.279> can<03:36:03.520> also<03:36:03.760> do<03:36:03.960> another 03:36:04.630 --> 03:36:04.640 align:start position:0% on top and then we can also do another 03:36:04.640 --> 03:36:09.469 align:start position:0% on top and then we can also do another query.<03:36:05.640> limit<03:36:06.359> to<03:36:06.720> 20<03:36:07.239> post<03:36:08.120> tops<03:36:09.120> and<03:36:09.279> this 03:36:09.469 --> 03:36:09.479 align:start position:0% query. limit to 20 post tops and this 03:36:09.479 --> 03:36:11.630 align:start position:0% query. limit to 20 post tops and this has<03:36:09.600> to<03:36:09.760> be<03:36:10.040> as<03:36:10.160> the<03:36:10.279> second<03:36:10.680> parameter<03:36:11.279> to<03:36:11.479> our 03:36:11.630 --> 03:36:11.640 align:start position:0% has to be as the second parameter to our 03:36:11.640 --> 03:36:14.590 align:start position:0% has to be as the second parameter to our query<03:36:12.279> just<03:36:12.520> like<03:36:12.800> this<03:36:13.640> then<03:36:13.920> we<03:36:14.040> can<03:36:14.279> fix 03:36:14.590 --> 03:36:14.600 align:start position:0% query just like this then we can fix 03:36:14.600 --> 03:36:17.070 align:start position:0% query just like this then we can fix this<03:36:14.880> right<03:36:15.120> here<03:36:15.720> and<03:36:15.840> we<03:36:15.960> can<03:36:16.120> say<03:36:16.600> if 03:36:17.070 --> 03:36:17.080 align:start position:0% this right here and we can say if 03:36:17.080 --> 03:36:20.429 align:start position:0% this right here and we can say if there's<03:36:17.479> no<03:36:17.880> posts<03:36:18.880> then<03:36:19.080> we<03:36:19.199> can<03:36:19.359> throw<03:36:19.640> an 03:36:20.429 --> 03:36:20.439 align:start position:0% there's no posts then we can throw an 03:36:20.439 --> 03:36:23.150 align:start position:0% there's no posts then we can throw an error<03:36:21.439> that's<03:36:21.640> going<03:36:21.840> to<03:36:22.000> look<03:36:22.239> like<03:36:22.439> this 03:36:23.150 --> 03:36:23.160 align:start position:0% error that's going to look like this 03:36:23.160 --> 03:36:26.590 align:start position:0% error that's going to look like this else<03:36:23.760> we<03:36:23.880> can<03:36:24.080> simply<03:36:24.600> return<03:36:24.960> posts<03:36:25.960> so<03:36:26.199> now 03:36:26.590 --> 03:36:26.600 align:start position:0% else we can simply return posts so now 03:36:26.600 --> 03:36:28.309 align:start position:0% else we can simply return posts so now we<03:36:26.720> can<03:36:26.880> go<03:36:27.080> back<03:36:27.239> to<03:36:27.359> our<03:36:27.520> queries<03:36:27.880> and 03:36:28.309 --> 03:36:28.319 align:start position:0% we can go back to our queries and 03:36:28.319 --> 03:36:31.309 align:start position:0% we can go back to our queries and mutations<03:36:29.319> and<03:36:29.520> we<03:36:29.600> can<03:36:29.760> simply<03:36:30.080> say<03:36:30.479> get 03:36:31.309 --> 03:36:31.319 align:start position:0% mutations and we can simply say get 03:36:31.319 --> 03:36:35.030 align:start position:0% mutations and we can simply say get recent<03:36:32.239> posts<03:36:33.239> import<03:36:33.600> it<03:36:33.760> at<03:36:33.880> the<03:36:34.080> top<03:36:34.840> and 03:36:35.030 --> 03:36:35.040 align:start position:0% recent posts import it at the top and 03:36:35.040 --> 03:36:38.150 align:start position:0% recent posts import it at the top and now<03:36:35.960> this<03:36:36.319> use<03:36:36.720> get<03:36:36.960> recent<03:36:37.319> posts<03:36:37.840> is<03:36:38.000> going 03:36:38.150 --> 03:36:38.160 align:start position:0% now this use get recent posts is going 03:36:38.160 --> 03:36:42.189 align:start position:0% now this use get recent posts is going to<03:36:38.399> expose<03:36:39.239> this<03:36:39.439> function<03:36:39.920> to<03:36:40.160> get<03:36:40.600> called<03:36:41.600> so 03:36:42.189 --> 03:36:42.199 align:start position:0% to expose this function to get called so 03:36:42.199 --> 03:36:45.150 align:start position:0% to expose this function to get called so let's<03:36:42.439> now<03:36:42.680> go<03:36:43.000> back<03:36:43.439> right<03:36:43.720> here<03:36:44.560> and<03:36:44.880> let's 03:36:45.150 --> 03:36:45.160 align:start position:0% let's now go back right here and let's 03:36:45.160 --> 03:36:49.590 align:start position:0% let's now go back right here and let's declare<03:36:45.640> a<03:36:45.840> hook<03:36:46.279> that<03:36:46.399> we<03:36:46.520> can<03:36:47.120> call<03:36:48.600> Con 03:36:49.590 --> 03:36:49.600 align:start position:0% declare a hook that we can call Con 03:36:49.600 --> 03:36:52.150 align:start position:0% declare a hook that we can call Con where<03:36:49.760> we<03:36:49.960> get<03:36:50.239> data<03:36:51.080> so<03:36:51.319> with<03:36:51.520> every<03:36:51.800> query 03:36:52.150 --> 03:36:52.160 align:start position:0% where we get data so with every query 03:36:52.160 --> 03:36:54.309 align:start position:0% where we get data so with every query you<03:36:52.359> get<03:36:52.520> something<03:36:52.800> known<03:36:53.000> as<03:36:53.120> a<03:36:53.319> data<03:36:53.680> object 03:36:54.309 --> 03:36:54.319 align:start position:0% you get something known as a data object 03:36:54.319 --> 03:36:56.429 align:start position:0% you get something known as a data object and<03:36:54.439> you<03:36:54.560> can<03:36:54.720> rename<03:36:55.120> it<03:36:55.319> to<03:36:55.520> in<03:36:55.720> this<03:36:55.920> case 03:36:56.429 --> 03:36:56.439 align:start position:0% and you can rename it to in this case 03:36:56.439 --> 03:36:59.670 align:start position:0% and you can rename it to in this case post<03:36:57.439> we<03:36:57.600> get<03:36:57.800> the<03:36:58.080> not<03:36:58.399> is<03:36:58.640> loading<03:36:59.080> anymore 03:36:59.670 --> 03:36:59.680 align:start position:0% post we get the not is loading anymore 03:36:59.680 --> 03:37:03.110 align:start position:0% post we get the not is loading anymore it's<03:36:59.880> going<03:37:00.000> to<03:37:00.199> be<03:37:01.080> is<03:37:01.800> pending<03:37:02.800> and<03:37:02.920> that's 03:37:03.110 --> 03:37:03.120 align:start position:0% it's going to be is pending and that's 03:37:03.120 --> 03:37:05.950 align:start position:0% it's going to be is pending and that's going<03:37:03.239> to<03:37:03.359> be<03:37:03.600> is<03:37:03.920> post<03:37:04.640> loading<03:37:05.640> and<03:37:05.760> then 03:37:05.950 --> 03:37:05.960 align:start position:0% going to be is post loading and then 03:37:05.960 --> 03:37:08.510 align:start position:0% going to be is post loading and then finally<03:37:06.399> is<03:37:06.680> error<03:37:07.359> you<03:37:07.560> also<03:37:07.880> get<03:37:08.120> that<03:37:08.439> we 03:37:08.510 --> 03:37:08.520 align:start position:0% finally is error you also get that we 03:37:08.520 --> 03:37:11.950 align:start position:0% finally is error you also get that we can<03:37:08.680> say<03:37:08.960> is<03:37:09.560> error<03:37:10.560> posts<03:37:11.560> and<03:37:11.720> that's<03:37:11.880> going 03:37:11.950 --> 03:37:11.960 align:start position:0% can say is error posts and that's going 03:37:11.960 --> 03:37:15.229 align:start position:0% can say is error posts and that's going to<03:37:12.120> be<03:37:12.319> equal<03:37:12.600> to<03:37:12.760> a<03:37:12.960> hook<03:37:13.479> of<03:37:13.760> use<03:37:14.399> get<03:37:14.760> recent 03:37:15.229 --> 03:37:15.239 align:start position:0% to be equal to a hook of use get recent 03:37:15.239 --> 03:37:18.349 align:start position:0% to be equal to a hook of use get recent posts<03:37:15.960> which<03:37:16.120> we<03:37:16.239> can<03:37:16.399> simply<03:37:16.800> import<03:37:17.640> and 03:37:18.349 --> 03:37:18.359 align:start position:0% posts which we can simply import and 03:37:18.359 --> 03:37:21.510 align:start position:0% posts which we can simply import and call<03:37:19.359> now<03:37:19.600> if<03:37:19.720> we<03:37:19.880> save<03:37:20.279> this<03:37:21.000> it's<03:37:21.160> going<03:37:21.319> to 03:37:21.510 --> 03:37:21.520 align:start position:0% call now if we save this it's going to 03:37:21.520 --> 03:37:23.389 align:start position:0% call now if we save this it's going to automatically<03:37:22.199> know<03:37:22.760> whether<03:37:23.000> we<03:37:23.120> have<03:37:23.239> to 03:37:23.389 --> 03:37:23.399 align:start position:0% automatically know whether we have to 03:37:23.399 --> 03:37:25.910 align:start position:0% automatically know whether we have to load<03:37:23.760> something<03:37:24.160> or<03:37:24.399> not<03:37:25.239> and<03:37:25.359> as<03:37:25.479> you<03:37:25.560> can<03:37:25.680> see 03:37:25.910 --> 03:37:25.920 align:start position:0% load something or not and as you can see 03:37:25.920 --> 03:37:29.429 align:start position:0% load something or not and as you can see the<03:37:26.040> loading<03:37:26.760> was<03:37:26.960> immediately<03:37:27.520> switched<03:37:28.439> off 03:37:29.429 --> 03:37:29.439 align:start position:0% the loading was immediately switched off 03:37:29.439 --> 03:37:32.469 align:start position:0% the loading was immediately switched off and<03:37:29.800> we<03:37:29.920> can<03:37:30.080> render<03:37:31.040> test<03:37:32.040> and<03:37:32.160> as<03:37:32.279> you<03:37:32.359> can 03:37:32.469 --> 03:37:32.479 align:start position:0% and we can render test and as you can 03:37:32.479 --> 03:37:34.830 align:start position:0% and we can render test and as you can see<03:37:32.680> we<03:37:32.760> can<03:37:32.920> see<03:37:33.160> it<03:37:33.720> that<03:37:33.880> means<03:37:34.279> that<03:37:34.600> we 03:37:34.830 --> 03:37:34.840 align:start position:0% see we can see it that means that we 03:37:34.840 --> 03:37:38.510 align:start position:0% see we can see it that means that we indeed<03:37:35.720> have<03:37:35.960> some<03:37:36.239> posts<03:37:36.800> to<03:37:37.040> load<03:37:38.000> so<03:37:38.319> let's 03:37:38.510 --> 03:37:38.520 align:start position:0% indeed have some posts to load so let's 03:37:38.520 --> 03:37:42.189 align:start position:0% indeed have some posts to load so let's create<03:37:38.840> the<03:37:39.000> UI<03:37:39.560> for<03:37:39.920> loading<03:37:40.479> a<03:37:40.880> post<03:37:41.880> we<03:37:42.000> can 03:37:42.189 --> 03:37:42.199 align:start position:0% create the UI for loading a post we can 03:37:42.199 --> 03:37:46.990 align:start position:0% create the UI for loading a post we can give<03:37:42.399> this<03:37:42.600> UL<03:37:43.160> a<03:37:43.479> class<03:37:43.880> name<03:37:44.560> equal<03:37:44.880> to<03:37:45.279> flex 03:37:46.990 --> 03:37:47.000 align:start position:0% give this UL a class name equal to flex 03:37:47.000 --> 03:37:49.229 align:start position:0% give this UL a class name equal to flex flex-all<03:37:48.000> so<03:37:48.239> they<03:37:48.399> appear<03:37:48.720> one<03:37:48.920> below 03:37:49.229 --> 03:37:49.239 align:start position:0% flex-all so they appear one below 03:37:49.239 --> 03:37:53.189 align:start position:0% flex-all so they appear one below another<03:37:50.000> Flex<03:37:50.720> D1<03:37:51.720> a<03:37:51.920> gap<03:37:52.160> of<03:37:52.359> nine<03:37:52.720> for<03:37:52.880> some 03:37:53.189 --> 03:37:53.199 align:start position:0% another Flex D1 a gap of nine for some 03:37:53.199 --> 03:37:58.189 align:start position:0% another Flex D1 a gap of nine for some spacing<03:37:54.199> and<03:37:54.479> a<03:37:54.720> w-<03:37:55.520> full<03:37:55.960> for<03:37:56.120> full<03:37:56.800> width<03:37:57.800> now 03:37:58.189 --> 03:37:58.199 align:start position:0% spacing and a w- full for full width now 03:37:58.199 --> 03:38:00.510 align:start position:0% spacing and a w- full for full width now here<03:37:58.479> we<03:37:58.600> want<03:37:58.720> to<03:37:58.960> map<03:37:59.239> over<03:37:59.479> the<03:37:59.680> posts<03:38:00.359> by 03:38:00.510 --> 03:38:00.520 align:start position:0% here we want to map over the posts by 03:38:00.520 --> 03:38:03.030 align:start position:0% here we want to map over the posts by saying<03:38:00.920> posts<03:38:01.439> question<03:38:01.800> mark. 03:38:03.030 --> 03:38:03.040 align:start position:0% saying posts question mark. 03:38:03.040 --> 03:38:05.830 align:start position:0% saying posts question mark. documents.<03:38:04.040> map<03:38:04.960> where<03:38:05.160> we<03:38:05.279> get<03:38:05.560> each 03:38:05.830 --> 03:38:05.840 align:start position:0% documents. map where we get each 03:38:05.840 --> 03:38:08.870 align:start position:0% documents. map where we get each individual<03:38:06.520> post<03:38:07.199> of<03:38:07.359> a<03:38:07.600> type 03:38:08.870 --> 03:38:08.880 align:start position:0% individual post of a type 03:38:08.880 --> 03:38:11.110 align:start position:0% individual post of a type models.<03:38:09.880> document 03:38:11.110 --> 03:38:11.120 align:start position:0% models. document 03:38:11.120 --> 03:38:13.309 align:start position:0% models. document and<03:38:11.239> the<03:38:11.359> models<03:38:11.880> has<03:38:12.040> to<03:38:12.199> be<03:38:12.359> imported<03:38:12.920> from 03:38:13.309 --> 03:38:13.319 align:start position:0% and the models has to be imported from 03:38:13.319 --> 03:38:16.550 align:start position:0% and the models has to be imported from aite<03:38:14.319> and<03:38:14.560> then<03:38:14.920> we<03:38:15.040> can<03:38:15.279> instantly<03:38:15.880> return<03:38:16.319> An 03:38:16.550 --> 03:38:16.560 align:start position:0% aite and then we can instantly return An 03:38:16.560 --> 03:38:19.750 align:start position:0% aite and then we can instantly return An Li<03:38:17.319> which<03:38:17.479> is<03:38:17.560> a<03:38:17.760> list<03:38:18.080> item<03:38:19.000> that<03:38:19.120> for<03:38:19.319> now<03:38:19.600> can 03:38:19.750 --> 03:38:19.760 align:start position:0% Li which is a list item that for now can 03:38:19.760 --> 03:38:22.790 align:start position:0% Li which is a list item that for now can render<03:38:20.120> something<03:38:20.399> like<03:38:20.600> post.<03:38:21.520> tile<03:38:22.520> if<03:38:22.640> we 03:38:22.790 --> 03:38:22.800 align:start position:0% render something like post. tile if we 03:38:22.800 --> 03:38:26.269 align:start position:0% render something like post. tile if we save<03:38:23.040> it<03:38:23.920> we<03:38:24.120> cannot<03:38:24.439> see<03:38:24.920> anything<03:38:25.920> let's<03:38:26.080> see 03:38:26.269 --> 03:38:26.279 align:start position:0% save it we cannot see anything let's see 03:38:26.279 --> 03:38:28.710 align:start position:0% save it we cannot see anything let's see if<03:38:26.399> I<03:38:26.520> properly<03:38:26.880> called<03:38:27.160> it<03:38:27.439> is<03:38:27.520> it<03:38:27.680> a<03:38:27.920> title<03:38:28.520> or 03:38:28.710 --> 03:38:28.720 align:start position:0% if I properly called it is it a title or 03:38:28.720 --> 03:38:31.389 align:start position:0% if I properly called it is it a title or is<03:38:28.840> it<03:38:29.000> something<03:38:29.359> else<03:38:30.199> well<03:38:30.399> if<03:38:30.520> I<03:38:30.680> go<03:38:30.800> to<03:38:31.040> app 03:38:31.389 --> 03:38:31.399 align:start position:0% is it something else well if I go to app 03:38:31.399 --> 03:38:33.670 align:start position:0% is it something else well if I go to app right<03:38:32.120> we<03:38:32.239> can<03:38:32.399> see<03:38:32.680> we<03:38:32.840> have<03:38:33.000> the<03:38:33.160> preview 03:38:33.670 --> 03:38:33.680 align:start position:0% right we can see we have the preview 03:38:33.680 --> 03:38:36.790 align:start position:0% right we can see we have the preview image<03:38:34.199> this<03:38:34.439> is<03:38:34.600> under<03:38:35.000> storage<03:38:36.000> but<03:38:36.199> if<03:38:36.319> I<03:38:36.560> go 03:38:36.790 --> 03:38:36.800 align:start position:0% image this is under storage but if I go 03:38:36.800 --> 03:38:37.950 align:start position:0% image this is under storage but if I go to 03:38:37.950 --> 03:38:37.960 align:start position:0% to 03:38:37.960 --> 03:38:41.990 align:start position:0% to databases<03:38:39.319> database<03:38:40.359> posts<03:38:41.359> and<03:38:41.560> here<03:38:41.800> we<03:38:41.880> can 03:38:41.990 --> 03:38:42.000 align:start position:0% databases database posts and here we can 03:38:42.000 --> 03:38:43.870 align:start position:0% databases database posts and here we can see<03:38:42.279> all<03:38:42.479> the<03:38:42.720> attributes<03:38:43.479> that<03:38:43.640> this 03:38:43.870 --> 03:38:43.880 align:start position:0% see all the attributes that this 03:38:43.880 --> 03:38:47.830 align:start position:0% see all the attributes that this document<03:38:44.399> has<03:38:45.000> under<03:38:45.479> data<03:38:46.479> so<03:38:46.640> we<03:38:46.800> have<03:38:47.000> likes 03:38:47.830 --> 03:38:47.840 align:start position:0% document has under data so we have likes 03:38:47.840 --> 03:38:51.189 align:start position:0% document has under data so we have likes caption<03:38:48.560> yeah<03:38:48.680> let's<03:38:48.880> do<03:38:49.080> caption<03:38:49.840> post. 03:38:51.189 --> 03:38:51.199 align:start position:0% caption yeah let's do caption post. 03:38:51.199 --> 03:38:54.030 align:start position:0% caption yeah let's do caption post. caption<03:38:52.199> now<03:38:52.359> if<03:38:52.479> we<03:38:52.640> do<03:38:52.800> it<03:38:53.160> we<03:38:53.239> can<03:38:53.359> see<03:38:53.600> River 03:38:54.030 --> 03:38:54.040 align:start position:0% caption now if we do it we can see River 03:38:54.040 --> 03:38:56.309 align:start position:0% caption now if we do it we can see River and<03:38:54.279> nature<03:38:54.880> which<03:38:55.000> means<03:38:55.239> we're<03:38:55.479> getting<03:38:55.800> it 03:38:56.309 --> 03:38:56.319 align:start position:0% and nature which means we're getting it 03:38:56.319 --> 03:38:59.389 align:start position:0% and nature which means we're getting it right<03:38:56.560> here<03:38:56.720> from<03:38:57.000> aite<03:38:57.680> from<03:38:57.840> our<03:38:58.080> own<03:38:58.560> server 03:38:59.389 --> 03:38:59.399 align:start position:0% right here from aite from our own server 03:38:59.399 --> 03:39:02.950 align:start position:0% right here from aite from our own server database<03:39:00.399> how<03:39:00.760> cool<03:39:01.199> is<03:39:01.439> that<03:39:02.319> but<03:39:02.560> instead<03:39:02.840> of 03:39:02.950 --> 03:39:02.960 align:start position:0% database how cool is that but instead of 03:39:02.960 --> 03:39:05.070 align:start position:0% database how cool is that but instead of Simply<03:39:03.199> showing<03:39:03.520> the<03:39:03.720> caption<03:39:04.520> let's<03:39:04.720> show 03:39:05.070 --> 03:39:05.080 align:start position:0% Simply showing the caption let's show 03:39:05.080 --> 03:39:08.429 align:start position:0% Simply showing the caption let's show something<03:39:05.399> more<03:39:06.040> a<03:39:06.279> nice<03:39:06.600> looking<03:39:07.000> post<03:39:07.920> so<03:39:08.239> to 03:39:08.429 --> 03:39:08.439 align:start position:0% something more a nice looking post so to 03:39:08.439 --> 03:39:11.229 align:start position:0% something more a nice looking post so to do<03:39:08.640> it<03:39:09.120> we<03:39:09.239> can<03:39:09.439> render<03:39:09.880> a<03:39:10.040> new<03:39:10.479> component 03:39:11.229 --> 03:39:11.239 align:start position:0% do it we can render a new component 03:39:11.239 --> 03:39:14.269 align:start position:0% do it we can render a new component called<03:39:11.840> post 03:39:14.269 --> 03:39:14.279 align:start position:0% called post 03:39:14.279 --> 03:39:16.870 align:start position:0% called post card<03:39:15.279> this<03:39:15.399> is<03:39:15.520> going<03:39:15.680> to<03:39:15.800> be<03:39:15.920> a<03:39:16.080> self-closing 03:39:16.870 --> 03:39:16.880 align:start position:0% card this is going to be a self-closing 03:39:16.880 --> 03:39:19.510 align:start position:0% card this is going to be a self-closing component<03:39:17.640> to<03:39:17.960> which<03:39:18.399> we're<03:39:18.520> going<03:39:18.640> to<03:39:18.960> pass 03:39:19.510 --> 03:39:19.520 align:start position:0% component to which we're going to pass 03:39:19.520 --> 03:39:22.750 align:start position:0% component to which we're going to pass the<03:39:19.760> post<03:39:20.479> as<03:39:20.640> the<03:39:20.840> first<03:39:21.120> and<03:39:21.359> only 03:39:22.750 --> 03:39:22.760 align:start position:0% the post as the first and only 03:39:22.760 --> 03:39:26.550 align:start position:0% the post as the first and only prop<03:39:23.760> there<03:39:23.920> we<03:39:24.120> go<03:39:25.000> now<03:39:25.199> this<03:39:25.399> postcard<03:39:26.399> of 03:39:26.550 --> 03:39:26.560 align:start position:0% prop there we go now this postcard of 03:39:26.560 --> 03:39:29.030 align:start position:0% prop there we go now this postcard of course<03:39:26.960> is<03:39:27.120> something<03:39:27.439> we<03:39:27.600> have<03:39:27.720> to<03:39:27.880> create<03:39:28.680> So 03:39:29.030 --> 03:39:29.040 align:start position:0% course is something we have to create So 03:39:29.040 --> 03:39:32.269 align:start position:0% course is something we have to create So within<03:39:29.680> components<03:39:30.680> and<03:39:30.840> then<03:39:31.160> shared<03:39:32.000> we<03:39:32.080> can 03:39:32.269 --> 03:39:32.279 align:start position:0% within components and then shared we can 03:39:32.279 --> 03:39:37.750 align:start position:0% within components and then shared we can create<03:39:32.560> a<03:39:32.840> new<03:39:33.840> post<03:39:34.479> card.<03:39:35.680> TSX<03:39:36.680> run 03:39:37.750 --> 03:39:37.760 align:start position:0% create a new post card. TSX run 03:39:37.760 --> 03:39:40.469 align:start position:0% create a new post card. TSX run RFC<03:39:38.760> and<03:39:38.960> we<03:39:39.040> can<03:39:39.239> import<03:39:39.600> it<03:39:40.000> right<03:39:40.279> right 03:39:40.469 --> 03:39:40.479 align:start position:0% RFC and we can import it right right 03:39:40.479 --> 03:39:43.229 align:start position:0% RFC and we can import it right right here<03:39:40.880> within<03:39:41.160> the<03:39:41.680> homepage<03:39:42.680> once<03:39:42.840> you<03:39:43.000> do 03:39:43.229 --> 03:39:43.239 align:start position:0% here within the homepage once you do 03:39:43.239 --> 03:39:46.150 align:start position:0% here within the homepage once you do that<03:39:43.760> you<03:39:43.880> can<03:39:44.000> see<03:39:44.199> the<03:39:44.680> postcard<03:39:45.680> and<03:39:45.800> now 03:39:46.150 --> 03:39:46.160 align:start position:0% that you can see the postcard and now 03:39:46.160 --> 03:39:48.710 align:start position:0% that you can see the postcard and now within<03:39:46.920> the<03:39:47.080> postcard<03:39:47.960> we<03:39:48.080> are<03:39:48.279> ready<03:39:48.520> to 03:39:48.710 --> 03:39:48.720 align:start position:0% within the postcard we are ready to 03:39:48.720 --> 03:39:51.990 align:start position:0% within the postcard we are ready to implement<03:39:49.439> the<03:39:49.680> UI<03:39:50.520> of<03:39:50.640> the 03:39:51.990 --> 03:39:52.000 align:start position:0% implement the UI of the 03:39:52.000 --> 03:39:55.389 align:start position:0% implement the UI of the postcard<03:39:53.000> first<03:39:53.239> of<03:39:53.439> all<03:39:53.960> we<03:39:54.199> know<03:39:54.960> that<03:39:55.199> it's 03:39:55.389 --> 03:39:55.399 align:start position:0% postcard first of all we know that it's 03:39:55.399 --> 03:39:58.750 align:start position:0% postcard first of all we know that it's going<03:39:55.640> to<03:39:56.080> accept<03:39:56.960> posts<03:39:57.560> as<03:39:57.720> the<03:39:57.920> prop<03:39:58.520> so<03:39:58.680> we 03:39:58.750 --> 03:39:58.760 align:start position:0% going to accept posts as the prop so we 03:39:58.760 --> 03:40:01.830 align:start position:0% going to accept posts as the prop so we can<03:39:58.920> say<03:39:59.239> post<03:40:00.199> did<03:40:00.399> we<03:40:00.560> pass<03:40:00.720> it<03:40:00.840> as<03:40:00.960> a<03:40:01.160> post<03:40:01.439> or 03:40:01.830 --> 03:40:01.840 align:start position:0% can say post did we pass it as a post or 03:40:01.840 --> 03:40:04.030 align:start position:0% can say post did we pass it as a post or posts<03:40:02.840> yeah<03:40:03.000> it's<03:40:03.160> definitely<03:40:03.520> going<03:40:03.680> to<03:40:03.800> be 03:40:04.030 --> 03:40:04.040 align:start position:0% posts yeah it's definitely going to be 03:40:04.040 --> 03:40:06.870 align:start position:0% posts yeah it's definitely going to be post<03:40:04.640> because<03:40:04.840> it's<03:40:05.040> singular<03:40:05.560> one<03:40:06.359> so<03:40:06.680> we<03:40:06.760> can 03:40:06.870 --> 03:40:06.880 align:start position:0% post because it's singular one so we can 03:40:06.880 --> 03:40:10.150 align:start position:0% post because it's singular one so we can say<03:40:07.199> post<03:40:07.720> is<03:40:07.880> going<03:40:08.040> to<03:40:08.199> be<03:40:08.359> of<03:40:08.520> a<03:40:08.800> type<03:40:09.800> post 03:40:10.150 --> 03:40:10.160 align:start position:0% say post is going to be of a type post 03:40:10.160 --> 03:40:13.150 align:start position:0% say post is going to be of a type post post<03:40:10.479> card<03:40:11.120> props<03:40:12.120> where<03:40:12.399> we<03:40:12.520> can<03:40:12.720> Define<03:40:12.960> it 03:40:13.150 --> 03:40:13.160 align:start position:0% post card props where we can Define it 03:40:13.160 --> 03:40:16.550 align:start position:0% post card props where we can Define it right<03:40:13.319> here<03:40:13.439> at<03:40:13.560> the<03:40:13.760> top<03:40:14.520> type<03:40:15.359> postcard 03:40:16.550 --> 03:40:16.560 align:start position:0% right here at the top type postcard 03:40:16.560 --> 03:40:20.469 align:start position:0% right here at the top type postcard props<03:40:17.560> is<03:40:17.720> going<03:40:17.880> to<03:40:18.040> be<03:40:18.720> post<03:40:19.640> of 03:40:20.469 --> 03:40:20.479 align:start position:0% props is going to be post of 03:40:20.479 --> 03:40:23.910 align:start position:0% props is going to be post of models.<03:40:21.640> document<03:40:22.640> and<03:40:22.840> this<03:40:23.000> models<03:40:23.680> is 03:40:23.910 --> 03:40:23.920 align:start position:0% models. document and this models is 03:40:23.920 --> 03:40:26.030 align:start position:0% models. document and this models is coming<03:40:24.239> from<03:40:24.640> app<03:40:25.000> right<03:40:25.279> so<03:40:25.560> immediately 03:40:26.030 --> 03:40:26.040 align:start position:0% coming from app right so immediately 03:40:26.040 --> 03:40:29.030 align:start position:0% coming from app right so immediately know<03:40:26.399> the<03:40:26.560> structure<03:40:27.199> of<03:40:27.399> this<03:40:27.880> document<03:40:28.880> once 03:40:29.030 --> 03:40:29.040 align:start position:0% know the structure of this document once 03:40:29.040 --> 03:40:31.309 align:start position:0% know the structure of this document once we<03:40:29.199> get<03:40:29.359> it<03:40:29.720> we<03:40:29.840> can<03:40:30.000> use<03:40:30.279> its<03:40:30.520> data<03:40:31.000> and<03:40:31.160> then 03:40:31.309 --> 03:40:31.319 align:start position:0% we get it we can use its data and then 03:40:31.319 --> 03:40:33.870 align:start position:0% we get it we can use its data and then render<03:40:31.680> it<03:40:32.279> so<03:40:32.479> let's<03:40:32.640> create<03:40:32.880> a<03:40:33.040> new<03:40:33.239> div 03:40:33.870 --> 03:40:33.880 align:start position:0% render it so let's create a new div 03:40:33.880 --> 03:40:36.910 align:start position:0% render it so let's create a new div that's<03:40:34.080> going<03:40:34.279> to<03:40:34.520> have<03:40:34.880> a<03:40:35.199> class<03:40:35.760> name<03:40:36.560> equal 03:40:36.910 --> 03:40:36.920 align:start position:0% that's going to have a class name equal 03:40:36.920 --> 03:40:41.469 align:start position:0% that's going to have a class name equal to<03:40:38.000> post-c<03:40:39.120> card<03:40:40.520> that's<03:40:40.760> going<03:40:40.920> to<03:40:41.120> create 03:40:41.469 --> 03:40:41.479 align:start position:0% to post-c card that's going to create 03:40:41.479 --> 03:40:44.070 align:start position:0% to post-c card that's going to create this<03:40:41.720> nice<03:40:42.319> rectangle<03:40:43.319> we<03:40:43.439> can<03:40:43.640> also<03:40:43.880> do 03:40:44.070 --> 03:40:44.080 align:start position:0% this nice rectangle we can also do 03:40:44.080 --> 03:40:46.590 align:start position:0% this nice rectangle we can also do another<03:40:44.399> one<03:40:45.120> right<03:40:45.359> below<03:40:46.080> that's<03:40:46.279> going<03:40:46.439> to 03:40:46.590 --> 03:40:46.600 align:start position:0% another one right below that's going to 03:40:46.600 --> 03:40:50.510 align:start position:0% another one right below that's going to have<03:40:46.760> a<03:40:47.000> class<03:40:47.359> name<03:40:48.080> equal<03:40:48.359> to<03:40:48.920> flex 03:40:50.510 --> 03:40:50.520 align:start position:0% have a class name equal to flex 03:40:50.520 --> 03:40:53.189 align:start position:0% have a class name equal to flex between<03:40:51.520> within<03:40:51.800> it<03:40:52.160> we<03:40:52.239> can<03:40:52.439> create<03:40:52.800> another 03:40:53.189 --> 03:40:53.199 align:start position:0% between within it we can create another 03:40:53.199 --> 03:40:56.429 align:start position:0% between within it we can create another div<03:40:53.800> that's<03:40:54.000> going<03:40:54.160> to<03:40:54.439> have<03:40:54.800> a<03:40:55.120> class<03:40:55.560> name 03:40:56.429 --> 03:40:56.439 align:start position:0% div that's going to have a class name 03:40:56.439 --> 03:41:01.189 align:start position:0% div that's going to have a class name equal<03:40:56.760> to<03:40:57.560> flex<03:40:58.560> items<03:40:59.040> Das<03:40:59.399> Center<03:41:00.399> and<03:41:00.680> a<03:41:00.920> gap 03:41:01.189 --> 03:41:01.199 align:start position:0% equal to flex items Das Center and a gap 03:41:01.199 --> 03:41:03.910 align:start position:0% equal to flex items Das Center and a gap of<03:41:01.439> three<03:41:02.439> and<03:41:02.640> then<03:41:02.920> there<03:41:03.279> we<03:41:03.399> can<03:41:03.520> render 03:41:03.910 --> 03:41:03.920 align:start position:0% of three and then there we can render 03:41:03.920 --> 03:41:06.269 align:start position:0% of three and then there we can render who<03:41:04.239> created<03:41:04.640> it<03:41:04.960> so<03:41:05.160> that's<03:41:05.359> going<03:41:05.520> to<03:41:05.720> be 03:41:06.269 --> 03:41:06.279 align:start position:0% who created it so that's going to be 03:41:06.279 --> 03:41:09.510 align:start position:0% who created it so that's going to be this<03:41:06.840> right<03:41:07.080> here<03:41:07.800> Hobbit<03:41:08.439> with<03:41:08.600> a<03:41:08.760> photo<03:41:09.279> two 03:41:09.510 --> 03:41:09.520 align:start position:0% this right here Hobbit with a photo two 03:41:09.520 --> 03:41:13.030 align:start position:0% this right here Hobbit with a photo two days<03:41:09.720> ago<03:41:10.399> and<03:41:10.560> then<03:41:10.840> tags<03:41:11.399> that<03:41:11.520> were<03:41:12.040> added 03:41:13.030 --> 03:41:13.040 align:start position:0% days ago and then tags that were added 03:41:13.040 --> 03:41:16.349 align:start position:0% days ago and then tags that were added so<03:41:13.279> let's<03:41:13.479> create<03:41:13.720> a<03:41:13.880> new<03:41:14.359> link<03:41:15.359> and<03:41:15.600> this<03:41:15.800> link 03:41:16.349 --> 03:41:16.359 align:start position:0% so let's create a new link and this link 03:41:16.359 --> 03:41:18.990 align:start position:0% so let's create a new link and this link has<03:41:16.520> to<03:41:16.680> be<03:41:16.840> imported<03:41:17.560> so<03:41:17.720> we<03:41:17.840> can<03:41:18.000> say<03:41:18.279> import 03:41:18.990 --> 03:41:19.000 align:start position:0% has to be imported so we can say import 03:41:19.000 --> 03:41:23.349 align:start position:0% has to be imported so we can say import link<03:41:19.840> from<03:41:20.359> react<03:41:21.160> router 03:41:23.349 --> 03:41:23.359 align:start position:0% link from react router 03:41:23.359 --> 03:41:26.590 align:start position:0% link from react router Dom<03:41:24.359> that<03:41:24.600> link<03:41:25.040> is<03:41:25.199> going<03:41:25.359> to<03:41:25.600> point<03:41:26.159> to<03:41:26.399> the 03:41:26.590 --> 03:41:26.600 align:start position:0% Dom that link is going to point to the 03:41:26.600 --> 03:41:29.229 align:start position:0% Dom that link is going to point to the Creator<03:41:27.080> who<03:41:27.279> created<03:41:27.680> it<03:41:28.040> so<03:41:28.199> we<03:41:28.279> can<03:41:28.439> say 03:41:29.229 --> 03:41:29.239 align:start position:0% Creator who created it so we can say 03:41:29.239 --> 03:41:31.550 align:start position:0% Creator who created it so we can say two<03:41:30.239> that's<03:41:30.399> going<03:41:30.560> to<03:41:30.640> be 03:41:31.550 --> 03:41:31.560 align:start position:0% two that's going to be 03:41:31.560 --> 03:41:34.630 align:start position:0% two that's going to be dynamic<03:41:32.560> forward<03:41:33.000> SL 03:41:34.630 --> 03:41:34.640 align:start position:0% dynamic forward SL 03:41:34.640 --> 03:41:36.309 align:start position:0% dynamic forward SL profile 03:41:36.309 --> 03:41:36.319 align:start position:0% profile 03:41:36.319 --> 03:41:41.149 align:start position:0% profile slost<03:41:37.319> doc<03:41:38.120> creator.<03:41:39.120> dollar<03:41:39.560> sign 03:41:41.149 --> 03:41:41.159 align:start position:0% slost doc creator. dollar sign 03:41:41.159 --> 03:41:44.269 align:start position:0% slost doc creator. dollar sign ID<03:41:42.159> here<03:41:42.479> we<03:41:42.560> can<03:41:42.720> show<03:41:43.040> the<03:41:43.239> Creator's<03:41:43.760> image 03:41:44.269 --> 03:41:44.279 align:start position:0% ID here we can show the Creator's image 03:41:44.279 --> 03:41:48.110 align:start position:0% ID here we can show the Creator's image by<03:41:44.399> saying<03:41:44.760> image<03:41:45.680> has<03:41:45.840> a<03:41:46.120> source<03:41:46.640> of<03:41:46.880> equal<03:41:47.239> to 03:41:48.110 --> 03:41:48.120 align:start position:0% by saying image has a source of equal to 03:41:48.120 --> 03:41:50.870 align:start position:0% by saying image has a source of equal to post<03:41:48.640> question<03:41:49.040> mark. 03:41:50.870 --> 03:41:50.880 align:start position:0% post question mark. 03:41:50.880 --> 03:41:54.790 align:start position:0% post question mark. Creator<03:41:51.880> question<03:41:52.279> mark.<03:41:52.840> image<03:41:53.359> URL<03:41:54.359> or<03:41:54.720> we 03:41:54.790 --> 03:41:54.800 align:start position:0% Creator question mark. image URL or we 03:41:54.800 --> 03:42:00.469 align:start position:0% Creator question mark. image URL or we can<03:41:54.960> do<03:41:55.080> a<03:41:55.279> default<03:41:56.120> of<03:41:56.760> SL<03:41:57.319> assets<03:41:58.319> SL<03:41:59.000> ions<03:42:00.000> SL 03:42:00.469 --> 03:42:00.479 align:start position:0% can do a default of SL assets SL ions SL 03:42:00.479 --> 03:42:04.870 align:start position:0% can do a default of SL assets SL ions SL profile<03:42:01.040> dplace<03:42:01.840> holder.<03:42:03.279> SVG<03:42:04.279> there<03:42:04.439> we<03:42:04.640> go 03:42:04.870 --> 03:42:04.880 align:start position:0% profile dplace holder. SVG there we go 03:42:04.880 --> 03:42:07.950 align:start position:0% profile dplace holder. SVG there we go that's<03:42:05.040> a<03:42:05.239> huge<03:42:05.680> the<03:42:05.840> real<03:42:06.399> JSM<03:42:07.399> we<03:42:07.520> can<03:42:07.680> also 03:42:07.950 --> 03:42:07.960 align:start position:0% that's a huge the real JSM we can also 03:42:07.960 --> 03:42:10.750 align:start position:0% that's a huge the real JSM we can also give<03:42:08.080> it<03:42:08.199> an<03:42:08.319> ALT<03:42:08.680> tag<03:42:08.920> of<03:42:09.159> creator 03:42:10.750 --> 03:42:10.760 align:start position:0% give it an ALT tag of creator 03:42:10.760 --> 03:42:14.510 align:start position:0% give it an ALT tag of creator and<03:42:11.040> a<03:42:11.279> class<03:42:11.640> name<03:42:12.159> of<03:42:12.600> rounded<03:42:13.399> D 03:42:14.510 --> 03:42:14.520 align:start position:0% and a class name of rounded D 03:42:14.520 --> 03:42:19.550 align:start position:0% and a class name of rounded D full<03:42:15.520> W<03:42:16.120> of<03:42:16.840> 12<03:42:17.840> and<03:42:18.040> then<03:42:18.159> on<03:42:18.359> large<03:42:18.720> devices<03:42:19.239> h 03:42:19.550 --> 03:42:19.560 align:start position:0% full W of 12 and then on large devices h 03:42:19.560 --> 03:42:22.710 align:start position:0% full W of 12 and then on large devices h of<03:42:19.760> 12<03:42:20.439> as<03:42:20.640> well<03:42:21.399> below<03:42:21.800> that<03:42:21.960> link<03:42:22.479> we<03:42:22.600> can 03:42:22.710 --> 03:42:22.720 align:start position:0% of 12 as well below that link we can 03:42:22.720 --> 03:42:25.229 align:start position:0% of 12 as well below that link we can render<03:42:23.120> a<03:42:23.359> div<03:42:24.120> that's<03:42:24.319> going<03:42:24.479> to<03:42:24.720> have<03:42:24.960> a 03:42:25.229 --> 03:42:25.239 align:start position:0% render a div that's going to have a 03:42:25.239 --> 03:42:30.149 align:start position:0% render a div that's going to have a class<03:42:25.600> name<03:42:26.359> equal<03:42:26.680> to<03:42:27.600> flex 03:42:30.149 --> 03:42:30.159 align:start position:0% class name equal to flex 03:42:30.159 --> 03:42:33.910 align:start position:0% class name equal to flex flex-all<03:42:31.159> and<03:42:31.680> within<03:42:31.960> it<03:42:32.359> we<03:42:32.479> can<03:42:32.640> render<03:42:33.199> a<03:42:33.439> P 03:42:33.910 --> 03:42:33.920 align:start position:0% flex-all and within it we can render a P 03:42:33.920 --> 03:42:37.389 align:start position:0% flex-all and within it we can render a P tag<03:42:34.920> that's<03:42:35.120> going<03:42:35.279> to<03:42:35.399> render<03:42:35.840> the<03:42:36.120> post. 03:42:37.389 --> 03:42:37.399 align:start position:0% tag that's going to render the post. 03:42:37.399 --> 03:42:41.830 align:start position:0% tag that's going to render the post. creator.<03:42:38.560> name<03:42:39.560> okay<03:42:40.040> that's<03:42:40.399> better<03:42:41.399> below 03:42:41.830 --> 03:42:41.840 align:start position:0% creator. name okay that's better below 03:42:41.840 --> 03:42:44.590 align:start position:0% creator. name okay that's better below this<03:42:42.000> P<03:42:42.279> tag<03:42:42.640> we<03:42:42.760> can<03:42:42.880> render<03:42:43.199> a<03:42:43.439> div<03:42:44.439> that's 03:42:44.590 --> 03:42:44.600 align:start position:0% this P tag we can render a div that's 03:42:44.600 --> 03:42:47.550 align:start position:0% this P tag we can render a div that's going<03:42:44.760> to<03:42:44.880> render<03:42:45.279> a<03:42:45.479> new<03:42:45.760> P<03:42:46.040> tag<03:42:47.000> and<03:42:47.159> within 03:42:47.550 --> 03:42:47.560 align:start position:0% going to render a new P tag and within 03:42:47.560 --> 03:42:51.309 align:start position:0% going to render a new P tag and within here<03:42:48.000> we<03:42:48.080> can<03:42:48.199> show<03:42:48.439> the<03:42:49.159> post.<03:42:50.159> dollar<03:42:50.560> sign 03:42:51.309 --> 03:42:51.319 align:start position:0% here we can show the post. dollar sign 03:42:51.319 --> 03:42:54.469 align:start position:0% here we can show the post. dollar sign created<03:42:52.520> at<03:42:53.520> there<03:42:53.640> we<03:42:53.800> go<03:42:53.960> so<03:42:54.120> now<03:42:54.239> we<03:42:54.359> have 03:42:54.469 --> 03:42:54.479 align:start position:0% created at there we go so now we have 03:42:54.479 --> 03:42:57.309 align:start position:0% created at there we go so now we have the<03:42:54.600> full<03:42:55.080> date<03:42:56.080> below<03:42:56.399> it<03:42:56.680> we<03:42:56.800> can<03:42:56.960> add<03:42:57.159> some 03:42:57.309 --> 03:42:57.319 align:start position:0% the full date below it we can add some 03:42:57.319 --> 03:42:59.790 align:start position:0% the full date below it we can add some kind<03:42:57.439> of<03:42:57.560> a<03:42:57.720> dash<03:42:58.399> and<03:42:58.560> then<03:42:58.800> add<03:42:59.080> another<03:42:59.439> one 03:42:59.790 --> 03:42:59.800 align:start position:0% kind of a dash and then add another one 03:42:59.800 --> 03:43:02.030 align:start position:0% kind of a dash and then add another one that's<03:43:00.000> going<03:43:00.159> to<03:43:00.279> say<03:43:00.640> post. 03:43:02.030 --> 03:43:02.040 align:start position:0% that's going to say post. 03:43:02.040 --> 03:43:04.349 align:start position:0% that's going to say post. location<03:43:03.040> there<03:43:03.199> we<03:43:03.359> go<03:43:03.560> so<03:43:03.760> now<03:43:03.960> we<03:43:04.120> have 03:43:04.349 --> 03:43:04.359 align:start position:0% location there we go so now we have 03:43:04.359 --> 03:43:07.189 align:start position:0% location there we go so now we have almost<03:43:04.800> everything<03:43:05.439> we<03:43:05.760> need<03:43:06.640> but<03:43:06.880> let's<03:43:07.080> go 03:43:07.189 --> 03:43:07.199 align:start position:0% almost everything we need but let's go 03:43:07.199 --> 03:43:10.149 align:start position:0% almost everything we need but let's go ahead<03:43:07.399> and<03:43:07.640> style<03:43:07.960> it<03:43:08.080> a<03:43:08.239> bit<03:43:08.880> better<03:43:10.000> this 03:43:10.149 --> 03:43:10.159 align:start position:0% ahead and style it a bit better this 03:43:10.159 --> 03:43:12.750 align:start position:0% ahead and style it a bit better this first<03:43:10.520> P<03:43:10.800> tag<03:43:11.199> is<03:43:11.359> going<03:43:11.560> to<03:43:11.800> have<03:43:12.080> a<03:43:12.359> class 03:43:12.750 --> 03:43:12.760 align:start position:0% first P tag is going to have a class 03:43:12.760 --> 03:43:16.110 align:start position:0% first P tag is going to have a class name<03:43:13.359> equal<03:43:13.680> to<03:43:14.359> base- 03:43:16.110 --> 03:43:16.120 align:start position:0% name equal to base- 03:43:16.120 --> 03:43:18.750 align:start position:0% name equal to base- medium<03:43:17.120> this<03:43:17.239> is<03:43:17.359> going<03:43:17.520> to<03:43:17.640> make<03:43:17.760> it<03:43:17.960> Bolder 03:43:18.750 --> 03:43:18.760 align:start position:0% medium this is going to make it Bolder 03:43:18.760 --> 03:43:21.429 align:start position:0% medium this is going to make it Bolder on<03:43:18.960> large<03:43:19.359> devices<03:43:19.880> it's<03:43:20.040> going<03:43:20.199> to<03:43:20.319> be<03:43:20.560> body 03:43:21.429 --> 03:43:21.439 align:start position:0% on large devices it's going to be body 03:43:21.439 --> 03:43:24.710 align:start position:0% on large devices it's going to be body bold<03:43:22.439> and<03:43:22.600> it's<03:43:22.760> going<03:43:22.920> to<03:43:23.040> be<03:43:23.239> text- 03:43:24.710 --> 03:43:24.720 align:start position:0% bold and it's going to be text- 03:43:24.720 --> 03:43:27.750 align:start position:0% bold and it's going to be text- light-1<03:43:25.720> the<03:43:25.960> div<03:43:26.359> below<03:43:26.920> is<03:43:27.040> going<03:43:27.239> to<03:43:27.399> have<03:43:27.520> a 03:43:27.750 --> 03:43:27.760 align:start position:0% light-1 the div below is going to have a 03:43:27.760 --> 03:43:31.229 align:start position:0% light-1 the div below is going to have a class<03:43:28.080> name<03:43:28.600> of<03:43:28.840> flex<03:43:29.359> Das<03:43:30.040> Center<03:43:31.040> that's 03:43:31.229 --> 03:43:31.239 align:start position:0% class name of flex Das Center that's 03:43:31.239 --> 03:43:34.630 align:start position:0% class name of flex Das Center that's going<03:43:31.399> to<03:43:31.560> center<03:43:31.920> it<03:43:32.800> a<03:43:33.040> gap<03:43:33.319> of<03:43:33.479> Two<03:43:34.199> and<03:43:34.399> a 03:43:34.630 --> 03:43:34.640 align:start position:0% going to center it a gap of Two and a 03:43:34.640 --> 03:43:37.590 align:start position:0% going to center it a gap of Two and a text<03:43:35.040> of<03:43:35.359> light<03:43:35.920> three<03:43:36.439> because<03:43:36.680> it's<03:43:36.920> not<03:43:37.239> so 03:43:37.590 --> 03:43:37.600 align:start position:0% text of light three because it's not so 03:43:37.600 --> 03:43:40.990 align:start position:0% text of light three because it's not so important<03:43:38.439> as<03:43:38.600> the<03:43:38.760> Creator<03:43:39.159> name<03:43:40.319> the<03:43:40.479> P<03:43:40.720> tag 03:43:40.990 --> 03:43:41.000 align:start position:0% important as the Creator name the P tag 03:43:41.000 --> 03:43:44.670 align:start position:0% important as the Creator name the P tag below<03:43:41.479> can<03:43:41.680> have<03:43:41.840> a<03:43:42.040> class<03:43:42.399> name<03:43:42.960> of<03:43:43.680> subtle 03:43:44.670 --> 03:43:44.680 align:start position:0% below can have a class name of subtle 03:43:44.680 --> 03:43:47.990 align:start position:0% below can have a class name of subtle semi<03:43:45.080> bold<03:43:45.880> so<03:43:46.040> it's<03:43:46.159> a<03:43:46.279> bit<03:43:46.479> less<03:43:47.000> important 03:43:47.990 --> 03:43:48.000 align:start position:0% semi bold so it's a bit less important 03:43:48.000 --> 03:43:52.110 align:start position:0% semi bold so it's a bit less important and<03:43:48.319> a<03:43:48.600> large<03:43:48.960> devices<03:43:49.680> small 03:43:52.110 --> 03:43:52.120 align:start position:0% and a large devices small 03:43:52.120 --> 03:43:55.070 align:start position:0% and a large devices small regular<03:43:53.120> finally<03:43:53.760> the<03:43:53.960> last<03:43:54.239> btag<03:43:54.760> is<03:43:54.920> going 03:43:55.070 --> 03:43:55.080 align:start position:0% regular finally the last btag is going 03:43:55.080 --> 03:43:58.830 align:start position:0% regular finally the last btag is going to<03:43:55.239> have<03:43:55.399> a<03:43:55.560> class<03:43:56.000> name<03:43:56.680> of<03:43:57.080> subtle<03:43:58.040> D<03:43:58.319> semi 03:43:58.830 --> 03:43:58.840 align:start position:0% to have a class name of subtle D semi 03:43:58.840 --> 03:44:02.950 align:start position:0% to have a class name of subtle D semi bold<03:43:59.840> and<03:44:00.000> a<03:44:00.159> large<03:44:00.479> devices<03:44:01.279> small<03:44:02.040> regular 03:44:02.950 --> 03:44:02.960 align:start position:0% bold and a large devices small regular 03:44:02.960 --> 03:44:05.630 align:start position:0% bold and a large devices small regular so<03:44:03.239> same<03:44:03.760> thing<03:44:04.760> now<03:44:04.920> the<03:44:05.080> last<03:44:05.239> thing<03:44:05.399> we<03:44:05.520> have 03:44:05.630 --> 03:44:05.640 align:start position:0% so same thing now the last thing we have 03:44:05.640 --> 03:44:08.590 align:start position:0% so same thing now the last thing we have to<03:44:05.760> figure<03:44:06.040> out<03:44:06.600> is<03:44:06.960> how<03:44:07.120> to<03:44:07.399> actually<03:44:07.840> format 03:44:08.590 --> 03:44:08.600 align:start position:0% to figure out is how to actually format 03:44:08.600 --> 03:44:10.630 align:start position:0% to figure out is how to actually format this<03:44:08.800> dat<03:44:09.199> string<03:44:09.880> into<03:44:10.159> something<03:44:10.479> that 03:44:10.630 --> 03:44:10.640 align:start position:0% this dat string into something that 03:44:10.640 --> 03:44:13.469 align:start position:0% this dat string into something that makes<03:44:10.920> sense<03:44:11.600> like<03:44:11.760> on<03:44:12.080> here<03:44:12.479> we<03:44:12.600> say<03:44:12.880> two<03:44:13.279> days 03:44:13.469 --> 03:44:13.479 align:start position:0% makes sense like on here we say two days 03:44:13.479 --> 03:44:16.830 align:start position:0% makes sense like on here we say two days ago<03:44:14.439> and<03:44:14.760> this<03:44:15.000> my<03:44:15.159> friends<03:44:15.760> is<03:44:15.960> the<03:44:16.199> job<03:44:16.520> for 03:44:16.830 --> 03:44:16.840 align:start position:0% ago and this my friends is the job for 03:44:16.840 --> 03:44:19.670 align:start position:0% ago and this my friends is the job for Chad<03:44:17.279> GPT<03:44:18.279> no<03:44:18.520> longer<03:44:18.840> do<03:44:18.960> you<03:44:19.080> have<03:44:19.199> to<03:44:19.359> create 03:44:19.670 --> 03:44:19.680 align:start position:0% Chad GPT no longer do you have to create 03:44:19.680 --> 03:44:21.429 align:start position:0% Chad GPT no longer do you have to create these<03:44:19.880> functions<03:44:20.279> on<03:44:20.439> your<03:44:20.600> own<03:44:21.159> you<03:44:21.279> can 03:44:21.429 --> 03:44:21.439 align:start position:0% these functions on your own you can 03:44:21.439 --> 03:44:23.830 align:start position:0% these functions on your own you can Google<03:44:21.760> it<03:44:22.040> or<03:44:22.159> you<03:44:22.239> can<03:44:22.439> simply<03:44:22.840> ask<03:44:23.120> Chad<03:44:23.399> GPT 03:44:23.830 --> 03:44:23.840 align:start position:0% Google it or you can simply ask Chad GPT 03:44:23.840 --> 03:44:26.910 align:start position:0% Google it or you can simply ask Chad GPT to<03:44:23.960> do<03:44:24.120> it<03:44:24.239> for<03:44:24.800> you<03:44:25.800> so<03:44:26.080> if<03:44:26.199> you<03:44:26.359> go<03:44:26.479> to<03:44:26.640> chat 03:44:26.910 --> 03:44:26.920 align:start position:0% to do it for you so if you go to chat 03:44:26.920 --> 03:44:30.269 align:start position:0% to do it for you so if you go to chat GPT<03:44:27.800> say<03:44:28.120> something<03:44:28.560> like<03:44:29.199> I<03:44:29.439> have<03:44:29.680> this<03:44:29.880> date 03:44:30.269 --> 03:44:30.279 align:start position:0% GPT say something like I have this date 03:44:30.279 --> 03:44:33.309 align:start position:0% GPT say something like I have this date string<03:44:31.279> literally<03:44:31.840> like<03:44:32.040> that<03:44:32.520> I<03:44:32.720> have<03:44:33.080> this 03:44:33.309 --> 03:44:33.319 align:start position:0% string literally like that I have this 03:44:33.319 --> 03:44:35.030 align:start position:0% string literally like that I have this date 03:44:35.030 --> 03:44:35.040 align:start position:0% date 03:44:35.040 --> 03:44:37.189 align:start position:0% date string<03:44:36.040> I'm 03:44:37.189 --> 03:44:37.199 align:start position:0% string I'm 03:44:37.199 --> 03:44:40.790 align:start position:0% string I'm building<03:44:38.199> a<03:44:38.760> social 03:44:40.790 --> 03:44:40.800 align:start position:0% building a social 03:44:40.800 --> 03:44:42.630 align:start position:0% building a social media<03:44:41.319> app<03:44:41.720> in 03:44:42.630 --> 03:44:42.640 align:start position:0% media app in 03:44:42.640 --> 03:44:46.830 align:start position:0% media app in JavaScript<03:44:43.640> and<03:44:44.040> I<03:44:44.239> want<03:44:45.239> to<03:44:45.600> convert<03:44:46.520> that 03:44:46.830 --> 03:44:46.840 align:start position:0% JavaScript and I want to convert that 03:44:46.840 --> 03:44:50.229 align:start position:0% JavaScript and I want to convert that date<03:44:47.359> string<03:44:48.359> into<03:44:48.920> a<03:44:49.199> more 03:44:50.229 --> 03:44:50.239 align:start position:0% date string into a more 03:44:50.239 --> 03:44:55.389 align:start position:0% date string into a more meaningful<03:44:51.359> format<03:44:52.479> like<03:44:53.479> two<03:44:54.080> days<03:44:54.359> ago<03:44:55.120> or 03:44:55.389 --> 03:44:55.399 align:start position:0% meaningful format like two days ago or 03:44:55.399 --> 03:44:57.469 align:start position:0% meaningful format like two days ago or two<03:44:55.920> hours 03:44:57.469 --> 03:44:57.479 align:start position:0% two hours 03:44:57.479 --> 03:45:00.070 align:start position:0% two hours ago<03:44:58.479> create<03:44:59.000> a 03:45:00.070 --> 03:45:00.080 align:start position:0% ago create a 03:45:00.080 --> 03:45:03.950 align:start position:0% ago create a JavaScript<03:45:01.080> function<03:45:02.000> that<03:45:02.319> does<03:45:02.680> that<03:45:03.600> okay 03:45:03.950 --> 03:45:03.960 align:start position:0% JavaScript function that does that okay 03:45:03.960 --> 03:45:06.030 align:start position:0% JavaScript function that does that okay I<03:45:04.040> could<03:45:04.159> have<03:45:04.279> been<03:45:04.399> a<03:45:04.520> bit<03:45:04.680> more<03:45:04.920> precise<03:45:05.640> but 03:45:06.030 --> 03:45:06.040 align:start position:0% I could have been a bit more precise but 03:45:06.040 --> 03:45:07.870 align:start position:0% I could have been a bit more precise but this<03:45:06.159> is<03:45:06.279> how<03:45:06.399> we<03:45:06.520> can<03:45:06.640> do<03:45:06.760> it<03:45:06.960> as<03:45:07.120> well 03:45:07.870 --> 03:45:07.880 align:start position:0% this is how we can do it as well 03:45:07.880 --> 03:45:09.070 align:start position:0% this is how we can do it as well hopefully<03:45:08.319> it's<03:45:08.479> going<03:45:08.640> to<03:45:08.800> give<03:45:08.920> us 03:45:09.070 --> 03:45:09.080 align:start position:0% hopefully it's going to give us 03:45:09.080 --> 03:45:11.710 align:start position:0% hopefully it's going to give us something<03:45:09.319> we<03:45:09.399> can<03:45:09.760> work<03:45:10.040> with<03:45:11.040> it<03:45:11.199> created<03:45:11.560> a 03:45:11.710 --> 03:45:11.720 align:start position:0% something we can work with it created a 03:45:11.720 --> 03:45:13.910 align:start position:0% something we can work with it created a function<03:45:12.080> called<03:45:12.319> format<03:45:12.840> date<03:45:13.560> and<03:45:13.800> it 03:45:13.910 --> 03:45:13.920 align:start position:0% function called format date and it 03:45:13.920 --> 03:45:16.910 align:start position:0% function called format date and it showed<03:45:14.279> us<03:45:14.720> how<03:45:14.920> we<03:45:15.040> can<03:45:15.239> use<03:45:15.399> it<03:45:16.279> so<03:45:16.720> let's 03:45:16.910 --> 03:45:16.920 align:start position:0% showed us how we can use it so let's 03:45:16.920 --> 03:45:21.469 align:start position:0% showed us how we can use it so let's simply<03:45:17.399> copy<03:45:18.080> this<03:45:18.560> function<03:45:19.560> and<03:45:19.720> let's<03:45:20.479> go 03:45:21.469 --> 03:45:21.479 align:start position:0% simply copy this function and let's go 03:45:21.479 --> 03:45:25.030 align:start position:0% simply copy this function and let's go right<03:45:21.720> here<03:45:22.080> to<03:45:22.319> our<03:45:22.760> source<03:45:23.760> lib<03:45:24.720> and<03:45:24.840> then 03:45:25.030 --> 03:45:25.040 align:start position:0% right here to our source lib and then 03:45:25.040 --> 03:45:28.510 align:start position:0% right here to our source lib and then utils<03:45:25.920> dots<03:45:26.920> within<03:45:27.319> here<03:45:27.800> you<03:45:27.920> can<03:45:28.159> paste 03:45:28.510 --> 03:45:28.520 align:start position:0% utils dots within here you can paste 03:45:28.520 --> 03:45:32.429 align:start position:0% utils dots within here you can paste this<03:45:29.040> function<03:45:30.000> and<03:45:30.120> we<03:45:30.239> can<03:45:30.439> also<03:45:30.680> say<03:45:31.439> export 03:45:32.429 --> 03:45:32.439 align:start position:0% this function and we can also say export 03:45:32.439 --> 03:45:35.870 align:start position:0% this function and we can also say export function<03:45:32.840> format<03:45:33.880> date<03:45:34.880> here<03:45:35.159> our<03:45:35.399> typescript 03:45:35.870 --> 03:45:35.880 align:start position:0% function format date here our typescript 03:45:35.880 --> 03:45:37.750 align:start position:0% function format date here our typescript is<03:45:35.960> complaining<03:45:36.359> a<03:45:36.520> bit<03:45:36.920> because<03:45:37.120> I<03:45:37.239> forgot<03:45:37.600> to 03:45:37.750 --> 03:45:37.760 align:start position:0% is complaining a bit because I forgot to 03:45:37.760 --> 03:45:40.110 align:start position:0% is complaining a bit because I forgot to tell<03:45:38.279> chat<03:45:38.560> GPT<03:45:39.000> to<03:45:39.080> make<03:45:39.199> it<03:45:39.279> in<03:45:39.399> typ<03:45:39.800> script 03:45:40.110 --> 03:45:40.120 align:start position:0% tell chat GPT to make it in typ script 03:45:40.120 --> 03:45:43.070 align:start position:0% tell chat GPT to make it in typ script so<03:45:40.239> I<03:45:40.319> can<03:45:40.479> simply<03:45:40.760> say<03:45:41.000> make<03:45:41.239> it<03:45:42.080> typescript 03:45:43.070 --> 03:45:43.080 align:start position:0% so I can simply say make it typescript 03:45:43.080 --> 03:45:45.870 align:start position:0% so I can simply say make it typescript that<03:45:43.199> should<03:45:43.359> do<03:45:43.520> the<03:45:43.640> trick<03:45:44.359> right<03:45:45.359> um<03:45:45.680> let's 03:45:45.870 --> 03:45:45.880 align:start position:0% that should do the trick right um let's 03:45:45.880 --> 03:45:48.670 align:start position:0% that should do the trick right um let's see<03:45:46.479> there<03:45:46.600> we<03:45:46.760> go<03:45:46.960> certainly<03:45:47.800> that's<03:45:48.080> great 03:45:48.670 --> 03:45:48.680 align:start position:0% see there we go certainly that's great 03:45:48.680 --> 03:45:51.070 align:start position:0% see there we go certainly that's great so<03:45:48.840> we<03:45:48.920> can<03:45:49.120> simply<03:45:49.479> copy<03:45:49.760> it<03:45:50.000> again<03:45:50.680> and<03:45:50.960> it 03:45:51.070 --> 03:45:51.080 align:start position:0% so we can simply copy it again and it 03:45:51.080 --> 03:45:54.590 align:start position:0% so we can simply copy it again and it should<03:45:51.399> have<03:45:51.840> no<03:45:52.359> problems<03:45:53.159> at<03:45:53.359> all<03:45:54.199> we<03:45:54.359> just 03:45:54.590 --> 03:45:54.600 align:start position:0% should have no problems at all we just 03:45:54.600 --> 03:45:57.630 align:start position:0% should have no problems at all we just have<03:45:54.720> to<03:45:55.359> export<03:45:55.800> it<03:45:56.600> there<03:45:56.720> we<03:45:56.880> go<03:45:57.239> export 03:45:57.630 --> 03:45:57.640 align:start position:0% have to export it there we go export 03:45:57.640 --> 03:46:01.429 align:start position:0% have to export it there we go export format<03:45:58.399> date<03:45:59.399> now<03:45:59.840> we<03:45:59.960> can<03:46:00.279> import<03:46:00.800> this<03:46:01.239> right 03:46:01.429 --> 03:46:01.439 align:start position:0% format date now we can import this right 03:46:01.439 --> 03:46:03.990 align:start position:0% format date now we can import this right here<03:46:01.760> and<03:46:02.000> wrap<03:46:02.439> the<03:46:02.600> post<03:46:02.920> created<03:46:03.319> at<03:46:03.760> so<03:46:03.920> we 03:46:03.990 --> 03:46:04.000 align:start position:0% here and wrap the post created at so we 03:46:04.000 --> 03:46:06.429 align:start position:0% here and wrap the post created at so we can<03:46:04.159> say<03:46:04.479> format<03:46:04.960> date 03:46:06.429 --> 03:46:06.439 align:start position:0% can say format date 03:46:06.439 --> 03:46:09.110 align:start position:0% can say format date wrapid<03:46:07.439> and<03:46:07.560> then<03:46:07.720> we<03:46:07.840> can<03:46:08.040> simply<03:46:08.600> import<03:46:08.960> it 03:46:09.110 --> 03:46:09.120 align:start position:0% wrapid and then we can simply import it 03:46:09.120 --> 03:46:10.149 align:start position:0% wrapid and then we can simply import it from<03:46:09.319> l 03:46:10.149 --> 03:46:10.159 align:start position:0% from l 03:46:10.159 --> 03:46:12.910 align:start position:0% from l utils<03:46:11.159> if<03:46:11.279> we<03:46:11.439> do<03:46:11.640> that<03:46:11.840> and<03:46:12.000> go<03:46:12.279> back<03:46:12.640> you<03:46:12.760> can 03:46:12.910 --> 03:46:12.920 align:start position:0% utils if we do that and go back you can 03:46:12.920 --> 03:46:15.229 align:start position:0% utils if we do that and go back you can see<03:46:13.239> one<03:46:13.560> day<03:46:13.720> ago<03:46:14.199> which<03:46:14.319> is<03:46:14.520> exactly<03:46:14.920> when<03:46:15.040> I 03:46:15.229 --> 03:46:15.239 align:start position:0% see one day ago which is exactly when I 03:46:15.239 --> 03:46:18.269 align:start position:0% see one day ago which is exactly when I posted<03:46:15.920> it<03:46:16.920> sometimes<03:46:17.319> it's<03:46:17.640> possible<03:46:18.120> that 03:46:18.269 --> 03:46:18.279 align:start position:0% posted it sometimes it's possible that 03:46:18.279 --> 03:46:20.189 align:start position:0% posted it sometimes it's possible that Chad<03:46:18.560> GPT<03:46:19.000> is<03:46:19.120> going<03:46:19.279> to<03:46:19.479> imagine<03:46:19.880> something 03:46:20.189 --> 03:46:20.199 align:start position:0% Chad GPT is going to imagine something 03:46:20.199 --> 03:46:22.550 align:start position:0% Chad GPT is going to imagine something and<03:46:20.359> give<03:46:20.479> you<03:46:20.680> wrong<03:46:21.000> code<03:46:21.800> so<03:46:22.040> for<03:46:22.319> that 03:46:22.550 --> 03:46:22.560 align:start position:0% and give you wrong code so for that 03:46:22.560 --> 03:46:24.590 align:start position:0% and give you wrong code so for that reason<03:46:23.359> and<03:46:23.560> for<03:46:23.720> some<03:46:23.920> other<03:46:24.120> functions<03:46:24.479> that 03:46:24.590 --> 03:46:24.600 align:start position:0% reason and for some other functions that 03:46:24.600 --> 03:46:27.070 align:start position:0% reason and for some other functions that we're<03:46:24.760> going<03:46:24.840> to<03:46:24.960> use<03:46:25.199> later<03:46:25.479> on<03:46:26.359> the<03:46:26.520> full 03:46:27.070 --> 03:46:27.080 align:start position:0% we're going to use later on the full 03:46:27.080 --> 03:46:29.510 align:start position:0% we're going to use later on the full utils<03:46:27.560> thats<03:46:28.159> file<03:46:28.520> is<03:46:28.680> going<03:46:28.840> to<03:46:29.000> be<03:46:29.199> in<03:46:29.359> the 03:46:29.510 --> 03:46:29.520 align:start position:0% utils thats file is going to be in the 03:46:29.520 --> 03:46:31.750 align:start position:0% utils thats file is going to be in the GitHub<03:46:29.880> gist<03:46:30.159> down<03:46:30.359> below<03:46:31.080> it<03:46:31.239> contains<03:46:31.640> the 03:46:31.750 --> 03:46:31.760 align:start position:0% GitHub gist down below it contains the 03:46:31.760 --> 03:46:34.149 align:start position:0% GitHub gist down below it contains the function<03:46:32.159> we<03:46:32.319> just<03:46:32.640> created<03:46:33.640> as<03:46:33.800> well<03:46:33.920> as<03:46:34.040> the 03:46:34.149 --> 03:46:34.159 align:start position:0% function we just created as well as the 03:46:34.159 --> 03:46:36.070 align:start position:0% function we just created as well as the check<03:46:34.439> is<03:46:34.720> liked<03:46:35.199> which<03:46:35.279> is<03:46:35.399> going<03:46:35.560> to<03:46:35.720> help<03:46:35.920> us 03:46:36.070 --> 03:46:36.080 align:start position:0% check is liked which is going to help us 03:46:36.080 --> 03:46:39.229 align:start position:0% check is liked which is going to help us later<03:46:36.359> on<03:46:37.239> and<03:46:37.439> then<03:46:37.760> another<03:46:38.680> function 03:46:39.229 --> 03:46:39.239 align:start position:0% later on and then another function 03:46:39.239 --> 03:46:42.269 align:start position:0% later on and then another function called<03:46:39.720> format<03:46:40.239> date<03:46:40.760> string<03:46:41.760> but<03:46:42.080> that's 03:46:42.269 --> 03:46:42.279 align:start position:0% called format date string but that's 03:46:42.279 --> 03:46:45.910 align:start position:0% called format date string but that's more<03:46:42.439> or<03:46:42.600> less<03:46:42.880> it<03:46:43.640> so<03:46:43.920> now<03:46:44.399> we<03:46:44.520> can<03:46:44.720> go<03:46:45.080> back<03:46:45.520> to 03:46:45.910 --> 03:46:45.920 align:start position:0% more or less it so now we can go back to 03:46:45.920 --> 03:46:48.510 align:start position:0% more or less it so now we can go back to our<03:46:46.279> function<03:46:46.920> it<03:46:47.080> still<03:46:47.319> works<03:46:47.920> exactly<03:46:48.359> as 03:46:48.510 --> 03:46:48.520 align:start position:0% our function it still works exactly as 03:46:48.520 --> 03:46:51.030 align:start position:0% our function it still works exactly as it<03:46:48.640> should<03:46:49.040> one<03:46:49.319> day<03:46:49.479> ago<03:46:50.319> and<03:46:50.520> now<03:46:50.800> let's 03:46:51.030 --> 03:46:51.040 align:start position:0% it should one day ago and now let's 03:46:51.040 --> 03:46:53.590 align:start position:0% it should one day ago and now let's focus<03:46:51.359> on<03:46:51.560> the<03:46:51.760> most<03:46:52.080> important<03:46:52.600> part<03:46:53.399> which 03:46:53.590 --> 03:46:53.600 align:start position:0% focus on the most important part which 03:46:53.600 --> 03:46:55.710 align:start position:0% focus on the most important part which is<03:46:53.880> showing<03:46:54.279> some<03:46:54.479> more<03:46:54.720> details<03:46:55.279> like<03:46:55.560> the 03:46:55.710 --> 03:46:55.720 align:start position:0% is showing some more details like the 03:46:55.720 --> 03:46:58.790 align:start position:0% is showing some more details like the caption<03:46:56.080> and<03:46:56.239> the<03:46:56.720> tags<03:46:57.720> and<03:46:57.880> then<03:46:58.159> finally 03:46:58.790 --> 03:46:58.800 align:start position:0% caption and the tags and then finally 03:46:58.800 --> 03:47:02.550 align:start position:0% caption and the tags and then finally the<03:46:59.080> image<03:47:00.080> so<03:47:00.279> we<03:47:00.359> can<03:47:00.520> go<03:47:00.800> three<03:47:01.080> devs<03:47:01.560> down<03:47:02.080> 1 03:47:02.550 --> 03:47:02.560 align:start position:0% the image so we can go three devs down 1 03:47:02.560 --> 03:47:06.910 align:start position:0% the image so we can go three devs down 1 2<03:47:03.000> 3<03:47:03.880> and<03:47:04.040> then<03:47:04.319> here<03:47:04.720> we<03:47:04.840> can<03:47:05.040> create<03:47:05.439> a<03:47:05.680> new 03:47:06.910 --> 03:47:06.920 align:start position:0% 2 3 and then here we can create a new 03:47:06.920 --> 03:47:10.469 align:start position:0% 2 3 and then here we can create a new link<03:47:07.920> this<03:47:08.159> link<03:47:08.560> will<03:47:08.800> only<03:47:09.080> be<03:47:09.199> shown<03:47:09.960> if<03:47:10.239> we 03:47:10.469 --> 03:47:10.479 align:start position:0% link this link will only be shown if we 03:47:10.479 --> 03:47:12.870 align:start position:0% link this link will only be shown if we are<03:47:10.720> the<03:47:10.840> ones<03:47:11.120> that<03:47:11.319> created<03:47:11.680> the<03:47:11.880> post 03:47:12.870 --> 03:47:12.880 align:start position:0% are the ones that created the post 03:47:12.880 --> 03:47:15.550 align:start position:0% are the ones that created the post because<03:47:13.239> then<03:47:13.560> we'll<03:47:13.800> be<03:47:13.960> able<03:47:14.199> to<03:47:14.439> update<03:47:14.840> it 03:47:15.550 --> 03:47:15.560 align:start position:0% because then we'll be able to update it 03:47:15.560 --> 03:47:18.189 align:start position:0% because then we'll be able to update it so<03:47:15.880> here<03:47:16.319> we<03:47:16.439> can<03:47:16.600> say<03:47:16.880> this<03:47:17.000> is<03:47:17.120> going<03:47:17.319> to 03:47:18.189 --> 03:47:18.199 align:start position:0% so here we can say this is going to 03:47:18.199 --> 03:47:20.389 align:start position:0% so here we can say this is going to point2 03:47:20.389 --> 03:47:20.399 align:start position:0% point2 03:47:20.399 --> 03:47:22.830 align:start position:0% point2 slash<03:47:21.399> update 03:47:22.830 --> 03:47:22.840 align:start position:0% slash update 03:47:22.840 --> 03:47:24.830 align:start position:0% slash update dpost 03:47:24.830 --> 03:47:24.840 align:start position:0% dpost 03:47:24.840 --> 03:47:28.309 align:start position:0% dpost slost<03:47:25.840> dollar<03:47:26.239> sign<03:47:26.760> ID<03:47:27.760> so<03:47:27.880> it's<03:47:28.040> going<03:47:28.199> to 03:47:28.309 --> 03:47:28.319 align:start position:0% slost dollar sign ID so it's going to 03:47:28.319 --> 03:47:31.189 align:start position:0% slost dollar sign ID so it's going to point<03:47:28.520> us<03:47:28.680> to<03:47:28.840> the<03:47:29.000> update<03:47:29.680> page<03:47:30.680> and<03:47:30.880> there<03:47:31.080> we 03:47:31.189 --> 03:47:31.199 align:start position:0% point us to the update page and there we 03:47:31.199 --> 03:47:33.189 align:start position:0% point us to the update page and there we can<03:47:31.319> render<03:47:31.640> an<03:47:31.840> image<03:47:32.600> that's<03:47:32.760> going<03:47:32.920> to<03:47:33.080> have 03:47:33.189 --> 03:47:33.199 align:start position:0% can render an image that's going to have 03:47:33.199 --> 03:47:38.550 align:start position:0% can render an image that's going to have a<03:47:33.319> source<03:47:34.199> equal<03:47:34.520> to<03:47:35.159> SL<03:47:35.720> assets<03:47:36.720> SL<03:47:37.120> ions<03:47:38.120> SL 03:47:38.550 --> 03:47:38.560 align:start position:0% a source equal to SL assets SL ions SL 03:47:38.560 --> 03:47:40.189 align:start position:0% a source equal to SL assets SL ions SL edit. 03:47:40.189 --> 03:47:40.199 align:start position:0% edit. 03:47:40.199 --> 03:47:42.349 align:start position:0% edit. SVG<03:47:41.199> of<03:47:41.359> course<03:47:41.520> we<03:47:41.640> want<03:47:41.760> to<03:47:41.840> make<03:47:41.960> it<03:47:42.080> a<03:47:42.159> bit 03:47:42.349 --> 03:47:42.359 align:start position:0% SVG of course we want to make it a bit 03:47:42.359 --> 03:47:44.670 align:start position:0% SVG of course we want to make it a bit smaller<03:47:43.000> so<03:47:43.199> let's<03:47:43.399> give<03:47:43.479> it<03:47:43.600> an<03:47:43.760> ALT<03:47:44.120> tag<03:47:44.399> of 03:47:44.670 --> 03:47:44.680 align:start position:0% smaller so let's give it an ALT tag of 03:47:44.680 --> 03:47:48.229 align:start position:0% smaller so let's give it an ALT tag of edit<03:47:45.600> and<03:47:45.840> a<03:47:46.080> width<03:47:46.560> of<03:47:46.800> 20<03:47:47.600> as<03:47:47.720> well<03:47:47.880> as<03:47:48.000> a 03:47:48.229 --> 03:47:48.239 align:start position:0% edit and a width of 20 as well as a 03:47:48.239 --> 03:47:49.830 align:start position:0% edit and a width of 20 as well as a height<03:47:48.640> of 03:47:49.830 --> 03:47:49.840 align:start position:0% height of 03:47:49.840 --> 03:47:52.870 align:start position:0% height of 20<03:47:50.840> there<03:47:51.000> we<03:47:51.159> go<03:47:51.479> that's<03:47:51.720> better<03:47:52.359> now<03:47:52.600> how<03:47:52.760> can 03:47:52.870 --> 03:47:52.880 align:start position:0% 20 there we go that's better now how can 03:47:52.880 --> 03:47:55.149 align:start position:0% 20 there we go that's better now how can we<03:47:53.080> hide<03:47:53.359> this<03:47:53.600> if<03:47:53.680> we're<03:47:53.920> not<03:47:54.159> the<03:47:54.319> Creator 03:47:55.149 --> 03:47:55.159 align:start position:0% we hide this if we're not the Creator 03:47:55.159 --> 03:47:57.269 align:start position:0% we hide this if we're not the Creator well<03:47:55.479> first<03:47:55.920> we<03:47:56.040> have<03:47:56.159> to<03:47:56.319> know<03:47:56.800> what<03:47:56.920> is<03:47:57.080> the 03:47:57.269 --> 03:47:57.279 align:start position:0% well first we have to know what is the 03:47:57.279 --> 03:48:00.149 align:start position:0% well first we have to know what is the ID<03:47:57.880> of<03:47:58.080> the<03:47:58.279> Creator<03:47:59.000> and<03:47:59.159> then<03:47:59.359> the<03:47:59.520> ID<03:47:59.880> of<03:48:00.040> the 03:48:00.149 --> 03:48:00.159 align:start position:0% ID of the Creator and then the ID of the 03:48:00.159 --> 03:48:02.590 align:start position:0% ID of the Creator and then the ID of the currently<03:48:00.560> logged<03:48:00.840> in<03:48:01.040> user<03:48:01.920> how<03:48:02.080> can<03:48:02.239> we<03:48:02.359> know 03:48:02.590 --> 03:48:02.600 align:start position:0% currently logged in user how can we know 03:48:02.600 --> 03:48:04.910 align:start position:0% currently logged in user how can we know that<03:48:03.399> well<03:48:03.800> we<03:48:03.920> have<03:48:04.080> done<03:48:04.199> it<03:48:04.359> a<03:48:04.479> couple<03:48:04.680> of 03:48:04.910 --> 03:48:04.920 align:start position:0% that well we have done it a couple of 03:48:04.920 --> 03:48:07.790 align:start position:0% that well we have done it a couple of times<03:48:05.640> we<03:48:05.760> can<03:48:05.920> simply<03:48:06.199> use<03:48:06.399> the<03:48:06.600> context<03:48:07.479> so 03:48:07.790 --> 03:48:07.800 align:start position:0% times we can simply use the context so 03:48:07.800 --> 03:48:10.910 align:start position:0% times we can simply use the context so here<03:48:08.199> we<03:48:08.319> can<03:48:08.520> say<03:48:09.080> con 03:48:10.910 --> 03:48:10.920 align:start position:0% here we can say con 03:48:10.920 --> 03:48:17.309 align:start position:0% here we can say con user<03:48:11.920> is<03:48:12.279> equal<03:48:12.600> to<03:48:13.600> use<03:48:14.960> user<03:48:16.080> context<03:48:17.080> and<03:48:17.199> we 03:48:17.309 --> 03:48:17.319 align:start position:0% user is equal to use user context and we 03:48:17.319 --> 03:48:20.710 align:start position:0% user is equal to use user context and we can<03:48:17.520> import<03:48:17.840> it<03:48:18.239> right<03:48:18.880> here<03:48:19.880> we<03:48:20.000> can<03:48:20.199> also<03:48:20.439> say 03:48:20.710 --> 03:48:20.720 align:start position:0% can import it right here we can also say 03:48:20.720 --> 03:48:23.550 align:start position:0% can import it right here we can also say if<03:48:20.880> there's<03:48:21.159> no<03:48:21.640> post.<03:48:22.319> Creator<03:48:23.199> then<03:48:23.359> we<03:48:23.439> want 03:48:23.550 --> 03:48:23.560 align:start position:0% if there's no post. Creator then we want 03:48:23.560 --> 03:48:25.830 align:start position:0% if there's no post. Creator then we want to<03:48:23.880> return<03:48:24.640> because<03:48:24.920> something<03:48:25.199> went<03:48:25.479> wrong 03:48:25.830 --> 03:48:25.840 align:start position:0% to return because something went wrong 03:48:25.840 --> 03:48:27.790 align:start position:0% to return because something went wrong here<03:48:26.399> but<03:48:26.560> in<03:48:26.720> this<03:48:26.920> case<03:48:27.159> we<03:48:27.239> should<03:48:27.479> have<03:48:27.640> a 03:48:27.790 --> 03:48:27.800 align:start position:0% here but in this case we should have a 03:48:27.800 --> 03:48:30.910 align:start position:0% here but in this case we should have a user<03:48:28.399> so<03:48:28.680> right<03:48:28.960> below<03:48:29.960> we<03:48:30.080> can<03:48:30.239> add<03:48:30.399> a<03:48:30.640> class 03:48:30.910 --> 03:48:30.920 align:start position:0% user so right below we can add a class 03:48:30.920 --> 03:48:32.309 align:start position:0% user so right below we can add a class name<03:48:31.239> to<03:48:31.479> this 03:48:32.309 --> 03:48:32.319 align:start position:0% name to this 03:48:32.319 --> 03:48:35.550 align:start position:0% name to this link<03:48:33.319> and<03:48:33.560> this<03:48:33.800> class<03:48:34.080> name<03:48:34.760> is<03:48:34.920> going<03:48:35.040> to<03:48:35.159> be 03:48:35.550 --> 03:48:35.560 align:start position:0% link and this class name is going to be 03:48:35.560 --> 03:48:39.349 align:start position:0% link and this class name is going to be dynamic<03:48:36.560> and<03:48:36.680> it's<03:48:36.840> going<03:48:37.000> to<03:48:37.199> check<03:48:38.000> if<03:48:39.000> user 03:48:39.349 --> 03:48:39.359 align:start position:0% dynamic and it's going to check if user 03:48:39.359 --> 03:48:43.990 align:start position:0% dynamic and it's going to check if user us<03:48:39.520> er.<03:48:40.319> ID<03:48:41.080> is<03:48:41.359> not<03:48:41.760> equal<03:48:42.080> to<03:48:42.720> post. 03:48:43.990 --> 03:48:44.000 align:start position:0% us er. ID is not equal to post. 03:48:44.000 --> 03:48:47.149 align:start position:0% us er. ID is not equal to post. creator.<03:48:45.000> dollar<03:48:45.399> sign<03:48:45.840> ID<03:48:46.560> and<03:48:46.720> if<03:48:46.880> that<03:48:47.000> is 03:48:47.149 --> 03:48:47.159 align:start position:0% creator. dollar sign ID and if that is 03:48:47.159 --> 03:48:51.189 align:start position:0% creator. dollar sign ID and if that is true<03:48:47.960> it's<03:48:48.120> going<03:48:48.279> to<03:48:48.680> render<03:48:49.920> hidden<03:48:50.920> and<03:48:51.080> as 03:48:51.189 --> 03:48:51.199 align:start position:0% true it's going to render hidden and as 03:48:51.199 --> 03:48:53.149 align:start position:0% true it's going to render hidden and as you<03:48:51.279> can<03:48:51.439> see<03:48:51.800> in<03:48:51.960> this<03:48:52.159> case<03:48:52.439> it 03:48:53.149 --> 03:48:53.159 align:start position:0% you can see in this case it 03:48:53.159 --> 03:48:55.590 align:start position:0% you can see in this case it disappears<03:48:54.159> although<03:48:54.439> I'm<03:48:54.560> not<03:48:54.680> sure<03:48:55.080> why<03:48:55.439> did 03:48:55.590 --> 03:48:55.600 align:start position:0% disappears although I'm not sure why did 03:48:55.600 --> 03:48:58.110 align:start position:0% disappears although I'm not sure why did it<03:48:55.720> disappear<03:48:56.560> because<03:48:56.880> we<03:48:57.120> indeed<03:48:57.560> are<03:48:58.000> the 03:48:58.110 --> 03:48:58.120 align:start position:0% it disappear because we indeed are the 03:48:58.120 --> 03:49:01.590 align:start position:0% it disappear because we indeed are the real<03:48:58.920> Creator<03:48:59.920> oh<03:49:00.199> it<03:49:00.399> disappeared<03:49:01.120> because 03:49:01.590 --> 03:49:01.600 align:start position:0% real Creator oh it disappeared because 03:49:01.600 --> 03:49:04.070 align:start position:0% real Creator oh it disappeared because this<03:49:02.239> and<03:49:02.520> and<03:49:02.880> hidden<03:49:03.399> should<03:49:03.600> have<03:49:03.800> also 03:49:04.070 --> 03:49:04.080 align:start position:0% this and and hidden should have also 03:49:04.080 --> 03:49:07.149 align:start position:0% this and and hidden should have also been<03:49:04.560> within<03:49:04.960> these<03:49:05.520> brackets<03:49:06.520> and<03:49:06.680> then 03:49:07.149 --> 03:49:07.159 align:start position:0% been within these brackets and then 03:49:07.159 --> 03:49:09.830 align:start position:0% been within these brackets and then within<03:49:08.159> double<03:49:08.520> quoted<03:49:08.840> strings 03:49:09.830 --> 03:49:09.840 align:start position:0% within double quoted strings 03:49:09.840 --> 03:49:12.349 align:start position:0% within double quoted strings there<03:49:09.960> we<03:49:10.159> go<03:49:10.359> so<03:49:10.560> now<03:49:10.800> if<03:49:10.960> we<03:49:11.080> are<03:49:11.520> it's<03:49:11.840> there 03:49:12.349 --> 03:49:12.359 align:start position:0% there we go so now if we are it's there 03:49:12.359 --> 03:49:16.110 align:start position:0% there we go so now if we are it's there if<03:49:12.479> we're<03:49:12.720> not<03:49:13.159> it's<03:49:13.359> not<03:49:13.720> there<03:49:14.720> great<03:49:15.720> now 03:49:16.110 --> 03:49:16.120 align:start position:0% if we're not it's not there great now 03:49:16.120 --> 03:49:18.349 align:start position:0% if we're not it's not there great now let's<03:49:16.359> focus<03:49:16.600> in<03:49:16.840> more<03:49:17.359> post<03:49:17.640> details<03:49:18.199> by 03:49:18.349 --> 03:49:18.359 align:start position:0% let's focus in more post details by 03:49:18.359 --> 03:49:21.990 align:start position:0% let's focus in more post details by going<03:49:18.680> below<03:49:19.199> the<03:49:19.399> link<03:49:19.920> and<03:49:20.120> below<03:49:20.479> this<03:49:21.000> div 03:49:21.990 --> 03:49:22.000 align:start position:0% going below the link and below this div 03:49:22.000 --> 03:49:24.710 align:start position:0% going below the link and below this div we<03:49:22.080> can<03:49:22.279> create<03:49:22.640> another<03:49:23.359> link<03:49:24.359> that's<03:49:24.560> going 03:49:24.710 --> 03:49:24.720 align:start position:0% we can create another link that's going 03:49:24.720 --> 03:49:28.030 align:start position:0% we can create another link that's going to<03:49:24.920> point<03:49:25.359> to<03:49:26.239> for<03:49:26.720> slash<03:49:27.520> let's<03:49:27.680> make<03:49:27.800> it 03:49:28.030 --> 03:49:28.040 align:start position:0% to point to for slash let's make it 03:49:28.040 --> 03:49:33.870 align:start position:0% to point to for slash let's make it Dynamic<03:49:29.479> slost<03:49:30.560> slash<03:49:31.560> post.<03:49:32.279> dooll<03:49:32.600> sign<03:49:32.880> ID 03:49:33.870 --> 03:49:33.880 align:start position:0% Dynamic slost slash post. dooll sign ID 03:49:33.880 --> 03:49:36.429 align:start position:0% Dynamic slost slash post. dooll sign ID so<03:49:34.720> if<03:49:34.800> you<03:49:34.960> click<03:49:35.319> this<03:49:35.800> it's<03:49:35.960> going<03:49:36.080> to<03:49:36.239> point 03:49:36.429 --> 03:49:36.439 align:start position:0% so if you click this it's going to point 03:49:36.439 --> 03:49:38.790 align:start position:0% so if you click this it's going to point to<03:49:36.600> edit<03:49:37.239> if<03:49:37.319> you<03:49:37.479> click<03:49:37.760> anything<03:49:38.159> above<03:49:38.680> it's 03:49:38.790 --> 03:49:38.800 align:start position:0% to edit if you click anything above it's 03:49:38.800 --> 03:49:40.349 align:start position:0% to edit if you click anything above it's going<03:49:38.960> to<03:49:39.080> point<03:49:39.319> point<03:49:39.520> you<03:49:39.600> to<03:49:39.720> the<03:49:39.840> real 03:49:40.349 --> 03:49:40.359 align:start position:0% going to point point you to the real 03:49:40.359 --> 03:49:43.229 align:start position:0% going to point point you to the real user<03:49:41.359> or<03:49:41.520> at<03:49:41.640> least<03:49:41.840> if<03:49:41.960> you<03:49:42.080> click<03:49:42.319> the<03:49:42.439> image 03:49:43.229 --> 03:49:43.239 align:start position:0% user or at least if you click the image 03:49:43.239 --> 03:49:45.469 align:start position:0% user or at least if you click the image but<03:49:43.479> now<03:49:44.120> everything<03:49:44.479> that<03:49:44.600> is<03:49:44.800> within<03:49:45.279> this 03:49:45.469 --> 03:49:45.479 align:start position:0% but now everything that is within this 03:49:45.479 --> 03:49:47.750 align:start position:0% but now everything that is within this link<03:49:45.960> is<03:49:46.080> going<03:49:46.239> to<03:49:46.439> point<03:49:46.680> you<03:49:46.800> to<03:49:46.960> the<03:49:47.159> post 03:49:47.750 --> 03:49:47.760 align:start position:0% link is going to point you to the post 03:49:47.760 --> 03:49:51.269 align:start position:0% link is going to point you to the post itself<03:49:48.319> or<03:49:48.479> the<03:49:48.640> post<03:49:48.960> Details<03:49:49.520> page<03:49:50.520> so<03:49:50.880> here 03:49:51.269 --> 03:49:51.279 align:start position:0% itself or the post Details page so here 03:49:51.279 --> 03:49:57.349 align:start position:0% itself or the post Details page so here we<03:49:51.399> can<03:49:51.520> say<03:49:52.000> div<03:49:53.000> is<03:49:53.199> a<03:49:53.479> class<03:49:53.840> name<03:49:54.760> of 03:49:57.349 --> 03:49:57.359 align:start position:0% 03:49:57.359 --> 03:50:01.469 align:start position:0% small-medium<03:49:58.359> on<03:49:58.600> large<03:49:59.120> devices<03:50:00.120> base- 03:50:01.469 --> 03:50:01.479 align:start position:0% small-medium on large devices base- 03:50:01.479 --> 03:50:04.670 align:start position:0% small-medium on large devices base- medium<03:50:02.479> and<03:50:02.760> padding<03:50:03.120> y<03:50:03.560> off 03:50:04.670 --> 03:50:04.680 align:start position:0% medium and padding y off 03:50:04.680 --> 03:50:08.269 align:start position:0% medium and padding y off five<03:50:05.680> there<03:50:06.319> within<03:50:06.560> a<03:50:06.760> P<03:50:07.040> tag<03:50:07.520> we<03:50:07.640> can<03:50:07.800> render 03:50:08.269 --> 03:50:08.279 align:start position:0% five there within a P tag we can render 03:50:08.279 --> 03:50:12.030 align:start position:0% five there within a P tag we can render a<03:50:08.560> post.<03:50:09.680> caption<03:50:10.680> of<03:50:10.880> course<03:50:11.319> this<03:50:11.520> has<03:50:11.680> to<03:50:11.840> be 03:50:12.030 --> 03:50:12.040 align:start position:0% a post. caption of course this has to be 03:50:12.040 --> 03:50:14.429 align:start position:0% a post. caption of course this has to be wrapped<03:50:12.680> in<03:50:13.520> curly 03:50:14.429 --> 03:50:14.439 align:start position:0% wrapped in curly 03:50:14.439 --> 03:50:18.070 align:start position:0% wrapped in curly strings<03:50:15.439> River<03:50:15.920> and<03:50:16.399> nature<03:50:17.399> and<03:50:17.600> Below<03:50:18.000> we 03:50:18.070 --> 03:50:18.080 align:start position:0% strings River and nature and Below we 03:50:18.080 --> 03:50:20.950 align:start position:0% strings River and nature and Below we can<03:50:18.239> have<03:50:18.359> a<03:50:18.479> UL<03:50:19.040> to<03:50:19.199> render<03:50:19.520> the<03:50:19.720> tags<03:50:20.680> so<03:50:20.840> we 03:50:20.950 --> 03:50:20.960 align:start position:0% can have a UL to render the tags so we 03:50:20.960 --> 03:50:26.110 align:start position:0% can have a UL to render the tags so we can<03:50:21.120> give<03:50:21.319> them<03:50:21.560> a<03:50:21.840> class<03:50:22.199> name<03:50:22.880> of<03:50:23.640> flex<03:50:25.120> gap-1 03:50:26.110 --> 03:50:26.120 align:start position:0% can give them a class name of flex gap-1 03:50:26.120 --> 03:50:28.990 align:start position:0% can give them a class name of flex gap-1 and<03:50:26.319> margin<03:50:26.760> top<03:50:27.040> of<03:50:27.399> two<03:50:28.399> there<03:50:28.720> we<03:50:28.840> can 03:50:28.990 --> 03:50:29.000 align:start position:0% and margin top of two there we can 03:50:29.000 --> 03:50:33.510 align:start position:0% and margin top of two there we can render<03:50:29.399> the<03:50:29.840> post.<03:50:31.040> tags.<03:50:32.040> map<03:50:32.800> where<03:50:33.040> each 03:50:33.510 --> 03:50:33.520 align:start position:0% render the post. tags. map where each 03:50:33.520 --> 03:50:37.110 align:start position:0% render the post. tags. map where each tag<03:50:33.920> is<03:50:34.040> of<03:50:34.239> a<03:50:34.439> type<03:50:34.680> string<03:50:35.680> and<03:50:35.840> for<03:50:36.199> each<03:50:36.600> tag 03:50:37.110 --> 03:50:37.120 align:start position:0% tag is of a type string and for each tag 03:50:37.120 --> 03:50:40.030 align:start position:0% tag is of a type string and for each tag we<03:50:37.239> want<03:50:37.399> to<03:50:37.640> instantly<03:50:38.279> return<03:50:38.880> an 03:50:40.030 --> 03:50:40.040 align:start position:0% we want to instantly return an 03:50:40.040 --> 03:50:43.990 align:start position:0% we want to instantly return an Li<03:50:41.040> that's<03:50:41.239> going<03:50:41.399> to<03:50:41.640> have<03:50:41.920> a<03:50:42.159> key<03:50:43.080> equal<03:50:43.399> to 03:50:43.990 --> 03:50:44.000 align:start position:0% Li that's going to have a key equal to 03:50:44.000 --> 03:50:47.429 align:start position:0% Li that's going to have a key equal to it's<03:50:44.159> going<03:50:44.319> to<03:50:44.439> be<03:50:44.800> tag<03:50:45.800> and<03:50:45.960> a<03:50:46.199> class<03:50:46.560> name<03:50:47.000> of 03:50:47.429 --> 03:50:47.439 align:start position:0% it's going to be tag and a class name of 03:50:47.439 --> 03:50:48.950 align:start position:0% it's going to be tag and a class name of text- 03:50:48.950 --> 03:50:48.960 align:start position:0% text- 03:50:48.960 --> 03:50:52.670 align:start position:0% text- light-3<03:50:49.960> and<03:50:50.080> we<03:50:50.159> can<03:50:50.319> simply<03:50:50.600> render<03:50:51.680> hashtag 03:50:52.670 --> 03:50:52.680 align:start position:0% light-3 and we can simply render hashtag 03:50:52.680 --> 03:50:55.950 align:start position:0% light-3 and we can simply render hashtag and<03:50:52.840> then<03:50:53.640> the<03:50:53.880> tag<03:50:54.880> in<03:50:55.080> this<03:50:55.359> case<03:50:55.680> it<03:50:55.760> is 03:50:55.950 --> 03:50:55.960 align:start position:0% and then the tag in this case it is 03:50:55.960 --> 03:50:59.510 align:start position:0% and then the tag in this case it is simply<03:50:56.840> nature<03:50:57.840> and<03:50:58.239> finally<03:50:58.880> we<03:50:59.000> can<03:50:59.199> go 03:50:59.510 --> 03:50:59.520 align:start position:0% simply nature and finally we can go 03:50:59.520 --> 03:51:03.870 align:start position:0% simply nature and finally we can go below<03:51:00.319> this<03:51:00.760> div<03:51:01.760> and<03:51:01.880> render<03:51:02.239> an<03:51:02.640> image<03:51:03.640> this 03:51:03.870 --> 03:51:03.880 align:start position:0% below this div and render an image this 03:51:03.880 --> 03:51:06.269 align:start position:0% below this div and render an image this image<03:51:04.239> is<03:51:04.399> going<03:51:04.560> to<03:51:04.720> have<03:51:04.840> a<03:51:05.040> source<03:51:05.640> equal<03:51:05.960> to 03:51:06.269 --> 03:51:06.279 align:start position:0% image is going to have a source equal to 03:51:06.279 --> 03:51:10.309 align:start position:0% image is going to have a source equal to post.<03:51:07.199> image<03:51:08.159> URL<03:51:09.239> of<03:51:09.399> course<03:51:09.680> image<03:51:10.000> with<03:51:10.159> a 03:51:10.309 --> 03:51:10.319 align:start position:0% post. image URL of course image with a 03:51:10.319 --> 03:51:17.110 align:start position:0% post. image URL of course image with a lowercased<03:51:11.000> eye<03:51:11.960> or<03:51:12.600> we<03:51:12.720> can<03:51:12.920> render<03:51:13.720> for/ 03:51:17.110 --> 03:51:17.120 align:start position:0% 03:51:17.120 --> 03:51:22.349 align:start position:0% assets<03:51:18.120> SL<03:51:18.720> ions<03:51:19.720> SL<03:51:20.279> profile<03:51:21.199> Das 03:51:22.349 --> 03:51:22.359 align:start position:0% assets SL ions SL profile Das 03:51:22.359 --> 03:51:24.710 align:start position:0% assets SL ions SL profile Das placeholder.svg 03:51:24.710 --> 03:51:24.720 align:start position:0% placeholder.svg 03:51:24.720 --> 03:51:28.030 align:start position:0% placeholder.svg and<03:51:25.720> it's<03:51:25.880> going<03:51:26.040> to<03:51:26.199> have<03:51:26.319> a<03:51:26.560> class<03:51:27.040> name 03:51:28.030 --> 03:51:28.040 align:start position:0% and it's going to have a class name 03:51:28.040 --> 03:51:33.429 align:start position:0% and it's going to have a class name equal<03:51:28.359> to<03:51:29.359> post-c<03:51:30.479> cardor<03:51:31.479> IMG<03:51:32.439> and<03:51:32.600> an<03:51:32.760> Al<03:51:33.080> tag 03:51:33.429 --> 03:51:33.439 align:start position:0% equal to post-c cardor IMG and an Al tag 03:51:33.439 --> 03:51:34.750 align:start position:0% equal to post-c cardor IMG and an Al tag of<03:51:33.720> post 03:51:34.750 --> 03:51:34.760 align:start position:0% of post 03:51:34.760 --> 03:51:37.790 align:start position:0% of post image<03:51:35.760> if<03:51:35.880> we<03:51:36.040> save<03:51:36.319> it<03:51:36.920> we<03:51:37.120> cannot<03:51:37.439> seem<03:51:37.640> to 03:51:37.790 --> 03:51:37.800 align:start position:0% image if we save it we cannot seem to 03:51:37.800 --> 03:51:40.830 align:start position:0% image if we save it we cannot seem to see<03:51:38.000> it<03:51:38.640> so<03:51:38.920> it's<03:51:39.159> it's<03:51:39.359> like<03:51:39.800> the<03:51:39.960> image<03:51:40.279> URL 03:51:40.830 --> 03:51:40.840 align:start position:0% see it so it's it's like the image URL 03:51:40.840 --> 03:51:43.990 align:start position:0% see it so it's it's like the image URL is<03:51:41.040> not<03:51:41.439> there<03:51:42.439> let's<03:51:42.640> consol<03:51:43.040> log<03:51:43.239> our<03:51:43.520> post 03:51:43.990 --> 03:51:44.000 align:start position:0% is not there let's consol log our post 03:51:44.000 --> 03:51:46.830 align:start position:0% is not there let's consol log our post to<03:51:44.199> see<03:51:44.640> what<03:51:44.840> does<03:51:44.960> it<03:51:45.199> contain<03:51:46.159> so<03:51:46.439> here<03:51:46.720> we 03:51:46.830 --> 03:51:46.840 align:start position:0% to see what does it contain so here we 03:51:46.840 --> 03:51:51.750 align:start position:0% to see what does it contain so here we can<03:51:47.120> consal<03:51:47.680> log<03:51:48.680> the<03:51:48.920> entire 03:51:51.750 --> 03:51:51.760 align:start position:0% can consal log the entire 03:51:51.760 --> 03:51:54.630 align:start position:0% can consal log the entire post<03:51:52.760> we<03:51:52.880> can<03:51:53.120> then<03:51:53.479> go<03:51:53.680> to<03:51:53.840> our<03:51:54.159> inspect 03:51:54.630 --> 03:51:54.640 align:start position:0% post we can then go to our inspect 03:51:54.640 --> 03:51:57.149 align:start position:0% post we can then go to our inspect element<03:51:55.600> and<03:51:55.800> go<03:51:55.960> to<03:51:56.120> the 03:51:57.149 --> 03:51:57.159 align:start position:0% element and go to the 03:51:57.159 --> 03:52:00.030 align:start position:0% element and go to the console<03:51:58.159> and<03:51:58.520> here<03:51:58.960> if<03:51:59.120> we 03:52:00.030 --> 03:52:00.040 align:start position:0% console and here if we 03:52:00.040 --> 03:52:02.630 align:start position:0% console and here if we reload<03:52:01.040> you<03:52:01.159> can<03:52:01.319> see<03:52:01.640> that<03:52:01.760> we<03:52:01.920> have<03:52:02.080> a<03:52:02.279> key 03:52:02.630 --> 03:52:02.640 align:start position:0% reload you can see that we have a key 03:52:02.640 --> 03:52:05.750 align:start position:0% reload you can see that we have a key error<03:52:03.159> on<03:52:03.399> home<03:52:03.880> 17<03:52:04.680> so<03:52:04.840> let's<03:52:05.040> quickly<03:52:05.399> fix 03:52:05.750 --> 03:52:05.760 align:start position:0% error on home 17 so let's quickly fix 03:52:05.760 --> 03:52:08.110 align:start position:0% error on home 17 so let's quickly fix that<03:52:06.359> here<03:52:06.520> we're<03:52:06.760> mapping<03:52:07.080> over<03:52:07.319> the<03:52:07.520> posts 03:52:08.110 --> 03:52:08.120 align:start position:0% that here we're mapping over the posts 03:52:08.120 --> 03:52:11.590 align:start position:0% that here we're mapping over the posts but<03:52:08.279> we're<03:52:08.439> not<03:52:08.720> passing<03:52:09.159> a<03:52:09.319> key<03:52:10.239> so<03:52:11.120> let's<03:52:11.319> say 03:52:11.590 --> 03:52:11.600 align:start position:0% but we're not passing a key so let's say 03:52:11.600 --> 03:52:15.750 align:start position:0% but we're not passing a key so let's say key<03:52:12.319> is<03:52:12.520> equal<03:52:12.840> to<03:52:13.760> post.<03:52:14.760> let's<03:52:14.960> do 03:52:15.750 --> 03:52:15.760 align:start position:0% key is equal to post. let's do 03:52:15.760 --> 03:52:20.110 align:start position:0% key is equal to post. let's do caption<03:52:16.760> if<03:52:16.880> we<03:52:17.120> reload<03:52:18.040> it<03:52:18.159> is<03:52:18.359> gone<03:52:19.239> and<03:52:19.479> now 03:52:20.110 --> 03:52:20.120 align:start position:0% caption if we reload it is gone and now 03:52:20.120 --> 03:52:23.910 align:start position:0% caption if we reload it is gone and now we<03:52:20.399> have<03:52:21.040> this<03:52:21.319> post<03:52:22.120> but<03:52:22.399> the<03:52:22.600> image<03:52:22.920> URL<03:52:23.640> is 03:52:23.910 --> 03:52:23.920 align:start position:0% we have this post but the image URL is 03:52:23.920 --> 03:52:27.469 align:start position:0% we have this post but the image URL is simply<03:52:24.399> an<03:52:24.600> empty<03:52:25.319> array<03:52:26.319> that's<03:52:26.600> not<03:52:26.920> good 03:52:27.469 --> 03:52:27.479 align:start position:0% simply an empty array that's not good 03:52:27.479 --> 03:52:30.790 align:start position:0% simply an empty array that's not good right<03:52:28.479> same<03:52:28.800> thing<03:52:29.159> here<03:52:29.520> the<03:52:29.720> image<03:52:30.040> ID<03:52:30.439> is 03:52:30.790 --> 03:52:30.800 align:start position:0% right same thing here the image ID is 03:52:30.800 --> 03:52:35.429 align:start position:0% right same thing here the image ID is here<03:52:31.359> but<03:52:31.600> the<03:52:31.840> image<03:52:32.439> URL<03:52:33.359> is<03:52:33.800> empty<03:52:34.800> so<03:52:35.080> now 03:52:35.429 --> 03:52:35.439 align:start position:0% here but the image URL is empty so now 03:52:35.439 --> 03:52:37.229 align:start position:0% here but the image URL is empty so now we<03:52:35.560> have<03:52:35.680> to<03:52:35.840> figure<03:52:36.120> out<03:52:36.520> where<03:52:36.840> are<03:52:37.000> we 03:52:37.229 --> 03:52:37.239 align:start position:0% we have to figure out where are we 03:52:37.239 --> 03:52:39.750 align:start position:0% we have to figure out where are we updating<03:52:37.880> the<03:52:38.080> image<03:52:38.359> URL<03:52:38.800> in<03:52:39.040> in<03:52:39.120> the<03:52:39.279> first 03:52:39.750 --> 03:52:39.760 align:start position:0% updating the image URL in in the first 03:52:39.760 --> 03:52:42.229 align:start position:0% updating the image URL in in the first place<03:52:40.760> apparently<03:52:41.359> it's<03:52:41.520> getting<03:52:41.760> set<03:52:42.000> to<03:52:42.120> an 03:52:42.229 --> 03:52:42.239 align:start position:0% place apparently it's getting set to an 03:52:42.239 --> 03:52:45.510 align:start position:0% place apparently it's getting set to an empty<03:52:42.600> array<03:52:43.600> so<03:52:44.000> let's<03:52:44.279> search<03:52:45.120> and<03:52:45.319> let's 03:52:45.510 --> 03:52:45.520 align:start position:0% empty array so let's search and let's 03:52:45.520 --> 03:52:48.990 align:start position:0% empty array so let's search and let's search<03:52:45.840> for<03:52:46.319> image<03:52:47.199> URL<03:52:48.199> specifically<03:52:48.880> we 03:52:48.990 --> 03:52:49.000 align:start position:0% search for image URL specifically we 03:52:49.000 --> 03:52:51.189 align:start position:0% search for image URL specifically we want<03:52:49.120> to<03:52:49.279> search<03:52:49.720> where<03:52:49.880> we're<03:52:50.239> updating<03:52:50.800> it 03:52:51.189 --> 03:52:51.199 align:start position:0% want to search where we're updating it 03:52:51.199 --> 03:52:54.990 align:start position:0% want to search where we're updating it not<03:52:51.439> using<03:52:51.920> it<03:52:52.920> so<03:52:53.279> here<03:52:53.600> in<03:52:53.760> the<03:52:53.920> URL<03:52:54.680> we're 03:52:54.990 --> 03:52:55.000 align:start position:0% not using it so here in the URL we're 03:52:55.000 --> 03:52:57.750 align:start position:0% not using it so here in the URL we're setting<03:52:55.319> the<03:52:55.479> image<03:52:55.760> URL<03:52:56.120> to<03:52:56.359> Avatar<03:52:56.760> URL<03:52:57.600> but 03:52:57.750 --> 03:52:57.760 align:start position:0% setting the image URL to Avatar URL but 03:52:57.760 --> 03:52:59.429 align:start position:0% setting the image URL to Avatar URL but this<03:52:57.880> is<03:52:58.040> regarding<03:52:58.439> the<03:52:58.600> users<03:52:59.239> we're 03:52:59.429 --> 03:52:59.439 align:start position:0% this is regarding the users we're 03:52:59.439 --> 03:53:02.269 align:start position:0% this is regarding the users we're wondering<03:52:59.880> about<03:53:00.120> the<03:53:00.319> posts<03:53:01.279> so<03:53:01.560> most<03:53:01.880> likely 03:53:02.269 --> 03:53:02.279 align:start position:0% wondering about the posts so most likely 03:53:02.279 --> 03:53:05.189 align:start position:0% wondering about the posts so most likely it's<03:53:02.479> going<03:53:02.640> to<03:53:02.800> be<03:53:03.159> would<03:53:03.359> then<03:53:03.600> create<03:53:04.199> post 03:53:05.189 --> 03:53:05.199 align:start position:0% it's going to be would then create post 03:53:05.199 --> 03:53:07.429 align:start position:0% it's going to be would then create post and<03:53:05.359> there<03:53:05.479> we<03:53:05.680> go<03:53:06.439> here<03:53:06.600> we<03:53:06.760> say<03:53:07.000> the<03:53:07.159> image 03:53:07.429 --> 03:53:07.439 align:start position:0% and there we go here we say the image 03:53:07.439 --> 03:53:09.950 align:start position:0% and there we go here we say the image URL<03:53:08.120> is<03:53:08.279> equal<03:53:08.520> to<03:53:09.080> file 03:53:09.950 --> 03:53:09.960 align:start position:0% URL is equal to file 03:53:09.960 --> 03:53:12.910 align:start position:0% URL is equal to file URL<03:53:10.960> and<03:53:11.120> the<03:53:11.239> file<03:53:11.520> URL<03:53:12.080> should<03:53:12.399> come<03:53:12.720> from 03:53:12.910 --> 03:53:12.920 align:start position:0% URL and the file URL should come from 03:53:12.920 --> 03:53:15.990 align:start position:0% URL and the file URL should come from the<03:53:13.120> get<03:53:13.439> file<03:53:13.960> preview<03:53:14.960> and<03:53:15.239> then<03:53:15.680> it's 03:53:15.990 --> 03:53:16.000 align:start position:0% the get file preview and then it's 03:53:16.000 --> 03:53:18.389 align:start position:0% the get file preview and then it's uploaded<03:53:16.600> file 03:53:18.389 --> 03:53:18.399 align:start position:0% uploaded file 03:53:18.399 --> 03:53:22.149 align:start position:0% uploaded file ID<03:53:19.399> so<03:53:19.880> the<03:53:20.080> first<03:53:20.319> thing<03:53:20.479> we<03:53:20.640> can<03:53:20.800> do<03:53:21.399> is<03:53:21.840> just 03:53:22.149 --> 03:53:22.159 align:start position:0% ID so the first thing we can do is just 03:53:22.159 --> 03:53:24.469 align:start position:0% ID so the first thing we can do is just conso<03:53:22.600> lock<03:53:22.800> the<03:53:22.920> file<03:53:23.199> URL<03:53:23.800> to<03:53:23.960> see<03:53:24.239> what<03:53:24.359> are 03:53:24.469 --> 03:53:24.479 align:start position:0% conso lock the file URL to see what are 03:53:24.479 --> 03:53:27.670 align:start position:0% conso lock the file URL to see what are we<03:53:24.600> getting<03:53:24.840> back<03:53:25.520> so<03:53:25.800> conso<03:53:26.279> log<03:53:27.279> I<03:53:27.399> can<03:53:27.560> put 03:53:27.670 --> 03:53:27.680 align:start position:0% we getting back so conso log I can put 03:53:27.680 --> 03:53:29.389 align:start position:0% we getting back so conso log I can put it<03:53:27.840> inside<03:53:28.080> of<03:53:28.199> an<03:53:28.439> object<03:53:28.920> that<03:53:29.080> way<03:53:29.279> it's 03:53:29.389 --> 03:53:29.399 align:start position:0% it inside of an object that way it's 03:53:29.399 --> 03:53:31.910 align:start position:0% it inside of an object that way it's going<03:53:29.560> to<03:53:29.720> tell<03:53:29.920> us<03:53:30.159> what<03:53:30.279> they<03:53:30.640> conso<03:53:31.040> logging 03:53:31.910 --> 03:53:31.920 align:start position:0% going to tell us what they conso logging 03:53:31.920 --> 03:53:35.710 align:start position:0% going to tell us what they conso logging so<03:53:32.199> just<03:53:32.399> like<03:53:33.080> this<03:53:34.080> and<03:53:34.720> then<03:53:34.960> we<03:53:35.080> can<03:53:35.319> try<03:53:35.520> to 03:53:35.710 --> 03:53:35.720 align:start position:0% so just like this and then we can try to 03:53:35.720 --> 03:53:39.269 align:start position:0% so just like this and then we can try to create<03:53:36.159> one<03:53:36.600> another<03:53:37.080> post<03:53:37.920> so<03:53:38.159> let's<03:53:38.399> go<03:53:38.640> back 03:53:39.269 --> 03:53:39.279 align:start position:0% create one another post so let's go back 03:53:39.279 --> 03:53:41.750 align:start position:0% create one another post so let's go back let's<03:53:39.840> increase<03:53:40.399> the<03:53:40.560> width<03:53:41.000> of<03:53:41.159> the<03:53:41.279> browser 03:53:41.750 --> 03:53:41.760 align:start position:0% let's increase the width of the browser 03:53:41.760 --> 03:53:44.510 align:start position:0% let's increase the width of the browser just<03:53:41.960> a<03:53:42.239> bit<03:53:43.239> and<03:53:43.399> then<03:53:43.600> let's<03:53:43.800> go<03:53:43.920> to<03:53:44.120> create 03:53:44.510 --> 03:53:44.520 align:start position:0% just a bit and then let's go to create 03:53:44.520 --> 03:53:47.429 align:start position:0% just a bit and then let's go to create post<03:53:45.399> let's<03:53:45.600> write<03:53:45.760> a<03:53:45.920> new<03:53:46.159> caption<03:53:47.080> say 03:53:47.429 --> 03:53:47.439 align:start position:0% post let's write a new caption say 03:53:47.439 --> 03:53:50.750 align:start position:0% post let's write a new caption say something<03:53:47.840> like<03:53:48.560> this<03:53:48.800> time<03:53:49.640> it<03:53:49.800> will 03:53:50.750 --> 03:53:50.760 align:start position:0% something like this time it will 03:53:50.760 --> 03:53:53.630 align:start position:0% something like this time it will work<03:53:51.760> I<03:53:51.920> added<03:53:52.199> the<03:53:52.319> JavaScript<03:53:52.800> Mastery<03:53:53.239> logo 03:53:53.630 --> 03:53:53.640 align:start position:0% work I added the JavaScript Mastery logo 03:53:53.640 --> 03:53:55.790 align:start position:0% work I added the JavaScript Mastery logo right<03:53:53.840> here<03:53:54.479> and<03:53:54.680> I<03:53:54.760> can<03:53:55.000> give<03:53:55.199> location 03:53:55.790 --> 03:53:55.800 align:start position:0% right here and I can give location 03:53:55.800 --> 03:53:59.830 align:start position:0% right here and I can give location something<03:53:56.159> like<03:53:56.640> JSM<03:53:57.640> and<03:53:57.880> we<03:53:58.000> can<03:53:58.239> add 03:53:59.830 --> 03:53:59.840 align:start position:0% something like JSM and we can add 03:53:59.840 --> 03:54:04.149 align:start position:0% something like JSM and we can add nextjs<03:54:00.840> as<03:54:01.040> well<03:54:01.279> as<03:54:02.040> react<03:54:03.040> and<03:54:03.199> let's<03:54:03.399> click 03:54:04.149 --> 03:54:04.159 align:start position:0% nextjs as well as react and let's click 03:54:04.159 --> 03:54:06.910 align:start position:0% nextjs as well as react and let's click submit<03:54:05.159> you<03:54:05.279> can<03:54:05.399> see<03:54:05.600> the<03:54:05.760> file<03:54:06.040> URL<03:54:06.640> first 03:54:06.910 --> 03:54:06.920 align:start position:0% submit you can see the file URL first 03:54:06.920 --> 03:54:09.590 align:start position:0% submit you can see the file URL first was<03:54:07.080> a<03:54:07.279> promise<03:54:08.199> and<03:54:08.359> then<03:54:09.000> fortunately<03:54:09.479> the 03:54:09.590 --> 03:54:09.600 align:start position:0% was a promise and then fortunately the 03:54:09.600 --> 03:54:11.550 align:start position:0% was a promise and then fortunately the same<03:54:09.880> thing<03:54:10.279> even<03:54:10.479> for<03:54:10.680> the<03:54:10.800> second<03:54:11.120> image<03:54:11.439> the 03:54:11.550 --> 03:54:11.560 align:start position:0% same thing even for the second image the 03:54:11.560 --> 03:54:14.349 align:start position:0% same thing even for the second image the image<03:54:11.800> URL<03:54:12.319> is<03:54:12.560> empty<03:54:13.439> but<03:54:13.640> it's<03:54:13.840> good<03:54:13.960> to<03:54:14.120> know 03:54:14.349 --> 03:54:14.359 align:start position:0% image URL is empty but it's good to know 03:54:14.359 --> 03:54:16.389 align:start position:0% image URL is empty but it's good to know that<03:54:14.520> we<03:54:14.640> got<03:54:14.800> a<03:54:15.040> promise<03:54:15.640> right<03:54:15.840> here<03:54:16.159> as<03:54:16.279> a 03:54:16.389 --> 03:54:16.399 align:start position:0% that we got a promise right here as a 03:54:16.399 --> 03:54:19.389 align:start position:0% that we got a promise right here as a file<03:54:17.080> URL<03:54:18.080> that's<03:54:18.319> because<03:54:18.720> if<03:54:18.840> you<03:54:18.960> go<03:54:19.120> to<03:54:19.239> the 03:54:19.389 --> 03:54:19.399 align:start position:0% file URL that's because if you go to the 03:54:19.399 --> 03:54:22.030 align:start position:0% file URL that's because if you go to the get<03:54:19.640> file<03:54:19.840> URL<03:54:20.640> we<03:54:20.800> made<03:54:21.120> this<03:54:21.359> function<03:54:21.800> an 03:54:22.030 --> 03:54:22.040 align:start position:0% get file URL we made this function an 03:54:22.040 --> 03:54:24.110 align:start position:0% get file URL we made this function an async<03:54:22.560> function<03:54:23.239> and<03:54:23.479> it<03:54:23.600> shouldn't<03:54:23.960> have 03:54:24.110 --> 03:54:24.120 align:start position:0% async function and it shouldn't have 03:54:24.120 --> 03:54:26.590 align:start position:0% async function and it shouldn't have been<03:54:24.359> one<03:54:24.920> because<03:54:25.279> nowhere<03:54:25.880> is<03:54:26.000> it<03:54:26.159> awaiting 03:54:26.590 --> 03:54:26.600 align:start position:0% been one because nowhere is it awaiting 03:54:26.600 --> 03:54:29.670 align:start position:0% been one because nowhere is it awaiting something<03:54:27.439> so<03:54:27.720> now<03:54:28.120> we<03:54:28.319> have<03:54:28.439> to<03:54:28.720> fix<03:54:29.080> this<03:54:29.520> by 03:54:29.670 --> 03:54:29.680 align:start position:0% something so now we have to fix this by 03:54:29.680 --> 03:54:32.110 align:start position:0% something so now we have to fix this by removing<03:54:30.080> the<03:54:30.239> async<03:54:30.760> from<03:54:30.920> the 03:54:32.110 --> 03:54:32.120 align:start position:0% removing the async from the 03:54:32.120 --> 03:54:34.389 align:start position:0% removing the async from the function<03:54:33.120> and<03:54:33.279> then<03:54:33.520> we'll<03:54:33.720> have<03:54:33.840> to<03:54:34.000> delete 03:54:34.389 --> 03:54:34.399 align:start position:0% function and then we'll have to delete 03:54:34.399 --> 03:54:36.229 align:start position:0% function and then we'll have to delete what<03:54:34.560> we<03:54:34.680> have<03:54:34.840> already<03:54:35.120> in<03:54:35.199> the<03:54:35.359> database<03:54:36.040> as 03:54:36.229 --> 03:54:36.239 align:start position:0% what we have already in the database as 03:54:36.239 --> 03:54:38.229 align:start position:0% what we have already in the database as those<03:54:36.439> posts<03:54:36.720> are<03:54:36.840> going<03:54:37.000> to<03:54:37.120> be<03:54:37.279> broken<03:54:38.040> so 03:54:38.229 --> 03:54:38.239 align:start position:0% those posts are going to be broken so 03:54:38.239 --> 03:54:40.910 align:start position:0% those posts are going to be broken so let's<03:54:38.439> go<03:54:38.640> back<03:54:39.080> to<03:54:39.359> our<03:54:39.760> app 03:54:40.910 --> 03:54:40.920 align:start position:0% let's go back to our app 03:54:40.920 --> 03:54:43.790 align:start position:0% let's go back to our app right<03:54:41.920> go<03:54:42.279> right<03:54:42.520> here<03:54:43.199> we're<03:54:43.359> going<03:54:43.439> to<03:54:43.600> have 03:54:43.790 --> 03:54:43.800 align:start position:0% right go right here we're going to have 03:54:43.800 --> 03:54:45.950 align:start position:0% right go right here we're going to have two<03:54:44.040> different<03:54:44.319> media<03:54:44.760> files<03:54:45.199> right<03:54:45.359> now 03:54:45.950 --> 03:54:45.960 align:start position:0% two different media files right now 03:54:45.960 --> 03:54:48.110 align:start position:0% two different media files right now which<03:54:46.159> I<03:54:46.279> can<03:54:46.479> completely 03:54:48.110 --> 03:54:48.120 align:start position:0% which I can completely 03:54:48.120 --> 03:54:51.429 align:start position:0% which I can completely delete<03:54:49.120> there<03:54:49.319> we<03:54:49.680> go<03:54:50.680> but<03:54:50.840> we<03:54:50.960> know<03:54:51.159> that<03:54:51.319> the 03:54:51.429 --> 03:54:51.439 align:start position:0% delete there we go but we know that the 03:54:51.439 --> 03:54:54.429 align:start position:0% delete there we go but we know that the storage<03:54:51.800> worked<03:54:52.439> so<03:54:52.760> now<03:54:53.239> I<03:54:53.319> can<03:54:53.520> go<03:54:53.760> back<03:54:53.960> to 03:54:54.429 --> 03:54:54.439 align:start position:0% storage worked so now I can go back to 03:54:54.439 --> 03:54:57.790 align:start position:0% storage worked so now I can go back to databases<03:54:55.439> snapgram<03:54:56.399> and<03:54:56.520> then<03:54:56.800> posts<03:54:57.600> and<03:54:57.720> I 03:54:57.790 --> 03:54:57.800 align:start position:0% databases snapgram and then posts and I 03:54:57.800 --> 03:55:01.110 align:start position:0% databases snapgram and then posts and I can<03:54:58.000> also<03:54:58.239> delete<03:54:58.800> all<03:54:58.960> of<03:54:59.120> these<03:54:59.359> posts<03:54:59.840> right 03:55:01.110 --> 03:55:01.120 align:start position:0% can also delete all of these posts right 03:55:01.120 --> 03:55:04.469 align:start position:0% can also delete all of these posts right here<03:55:02.120> there<03:55:02.279> we<03:55:02.479> go<03:55:03.159> so<03:55:03.399> now<03:55:03.640> if<03:55:03.760> we<03:55:03.920> go<03:55:04.199> back 03:55:04.469 --> 03:55:04.479 align:start position:0% here there we go so now if we go back 03:55:04.479 --> 03:55:05.670 align:start position:0% here there we go so now if we go back and 03:55:05.670 --> 03:55:05.680 align:start position:0% and 03:55:05.680 --> 03:55:08.389 align:start position:0% and reload<03:55:06.680> and<03:55:06.960> now<03:55:07.359> back<03:55:07.520> on<03:55:07.640> the<03:55:07.800> homepage<03:55:08.279> we 03:55:08.389 --> 03:55:08.399 align:start position:0% reload and now back on the homepage we 03:55:08.399 --> 03:55:10.870 align:start position:0% reload and now back on the homepage we have<03:55:08.560> no<03:55:09.000> posts<03:55:09.600> we<03:55:09.720> do<03:55:10.000> have<03:55:10.199> one<03:55:10.439> error 03:55:10.870 --> 03:55:10.880 align:start position:0% have no posts we do have one error 03:55:10.880 --> 03:55:13.750 align:start position:0% have no posts we do have one error saying<03:55:11.199> that<03:55:11.319> it<03:55:11.479> cannot<03:55:11.840> find<03:55:12.359> assets<03:55:13.000> images 03:55:13.750 --> 03:55:13.760 align:start position:0% saying that it cannot find assets images 03:55:13.760 --> 03:55:16.990 align:start position:0% saying that it cannot find assets images profile<03:55:14.439> placeholder.svg<03:55:15.520> so<03:55:16.520> let's<03:55:16.680> see 03:55:16.990 --> 03:55:17.000 align:start position:0% profile placeholder.svg so let's see 03:55:17.000 --> 03:55:19.790 align:start position:0% profile placeholder.svg so let's see what<03:55:17.199> that<03:55:17.359> is<03:55:17.520> about<03:55:18.279> let's<03:55:18.520> try<03:55:18.720> to<03:55:19.000> go<03:55:19.399> to 03:55:19.790 --> 03:55:19.800 align:start position:0% what that is about let's try to go to 03:55:19.800 --> 03:55:23.349 align:start position:0% what that is about let's try to go to profile<03:55:20.359> dplace<03:55:21.040> holder.<03:55:22.000> SVG<03:55:23.000> and<03:55:23.120> we<03:55:23.239> can 03:55:23.349 --> 03:55:23.359 align:start position:0% profile dplace holder. SVG and we can 03:55:23.359 --> 03:55:26.309 align:start position:0% profile dplace holder. SVG and we can see<03:55:23.600> that<03:55:23.840> indeed<03:55:24.319> it<03:55:24.439> is<03:55:24.760> there<03:55:25.520> so<03:55:25.920> where<03:55:26.159> are 03:55:26.309 --> 03:55:26.319 align:start position:0% see that indeed it is there so where are 03:55:26.319 --> 03:55:28.870 align:start position:0% see that indeed it is there so where are we<03:55:26.479> trying<03:55:26.760> to<03:55:26.920> call<03:55:27.199> it<03:55:27.439> from<03:55:28.319> let's<03:55:28.560> try<03:55:28.720> to 03:55:28.870 --> 03:55:28.880 align:start position:0% we trying to call it from let's try to 03:55:28.880 --> 03:55:32.149 align:start position:0% we trying to call it from let's try to search<03:55:29.199> for<03:55:30.239> profile<03:55:31.239> Das 03:55:32.149 --> 03:55:32.159 align:start position:0% search for profile Das 03:55:32.159 --> 03:55:35.030 align:start position:0% search for profile Das placeholder.svg<03:55:33.520> it<03:55:34.520> seems<03:55:34.760> like<03:55:34.880> we're 03:55:35.030 --> 03:55:35.040 align:start position:0% placeholder.svg it seems like we're 03:55:35.040 --> 03:55:38.229 align:start position:0% placeholder.svg it seems like we're calling<03:55:35.319> it<03:55:35.439> in<03:55:35.520> a<03:55:35.640> couple<03:55:35.880> of<03:55:36.279> places<03:55:37.279> assets 03:55:38.229 --> 03:55:38.239 align:start position:0% calling it in a couple of places assets 03:55:38.239 --> 03:55:40.870 align:start position:0% calling it in a couple of places assets here<03:55:38.640> is<03:55:38.800> it's<03:55:39.080> icons<03:55:40.000> but<03:55:40.159> we<03:55:40.279> have<03:55:40.359> to<03:55:40.520> verify 03:55:40.870 --> 03:55:40.880 align:start position:0% here is it's icons but we have to verify 03:55:40.880 --> 03:55:43.349 align:start position:0% here is it's icons but we have to verify is<03:55:40.960> it<03:55:41.120> icons<03:55:41.479> or<03:55:41.600> is<03:55:41.720> it<03:55:41.880> images<03:55:42.720> so<03:55:43.000> it<03:55:43.080> seems 03:55:43.349 --> 03:55:43.359 align:start position:0% is it icons or is it images so it seems 03:55:43.359 --> 03:55:46.870 align:start position:0% is it icons or is it images so it seems like<03:55:43.479> it's<03:55:43.720> icons<03:55:44.399> so<03:55:44.680> here<03:55:45.040> it's<03:55:45.359> okay<03:55:45.880> icons 03:55:46.870 --> 03:55:46.880 align:start position:0% like it's icons so here it's okay icons 03:55:46.880 --> 03:55:50.910 align:start position:0% like it's icons so here it's okay icons here<03:55:47.040> it's<03:55:47.319> okay<03:55:48.120> icons<03:55:49.359> icons<03:55:50.359> and<03:55:50.560> finally 03:55:50.910 --> 03:55:50.920 align:start position:0% here it's okay icons icons and finally 03:55:50.920 --> 03:55:52.830 align:start position:0% here it's okay icons icons and finally in<03:55:51.080> top<03:55:51.359> bar<03:55:51.560> its<03:55:51.760> images<03:55:52.359> it<03:55:52.479> should<03:55:52.680> have 03:55:52.830 --> 03:55:52.840 align:start position:0% in top bar its images it should have 03:55:52.840 --> 03:55:56.710 align:start position:0% in top bar its images it should have been<03:55:53.479> icons<03:55:54.479> so<03:55:54.640> if<03:55:54.760> we<03:55:54.920> save<03:55:55.239> this<03:55:55.479> and<03:55:55.720> reload 03:55:56.710 --> 03:55:56.720 align:start position:0% been icons so if we save this and reload 03:55:56.720 --> 03:55:58.990 align:start position:0% been icons so if we save this and reload you<03:55:56.840> can<03:55:56.960> see<03:55:57.159> that<03:55:57.319> we<03:55:57.479> have<03:55:57.760> no<03:55:58.080> errors<03:55:58.720> and 03:55:58.990 --> 03:55:59.000 align:start position:0% you can see that we have no errors and 03:55:59.000 --> 03:56:01.870 align:start position:0% you can see that we have no errors and we<03:55:59.279> have<03:55:59.720> no<03:56:00.040> posts<03:56:00.880> so<03:56:01.159> now<03:56:01.439> that<03:56:01.600> we<03:56:01.720> have 03:56:01.870 --> 03:56:01.880 align:start position:0% we have no posts so now that we have 03:56:01.880 --> 03:56:04.030 align:start position:0% we have no posts so now that we have fixed<03:56:02.199> the<03:56:02.319> issue<03:56:02.600> with<03:56:02.760> the<03:56:02.920> post<03:56:03.199> creation 03:56:04.030 --> 03:56:04.040 align:start position:0% fixed the issue with the post creation 03:56:04.040 --> 03:56:07.670 align:start position:0% fixed the issue with the post creation we<03:56:04.279> removed<03:56:04.880> the<03:56:05.040> async<03:56:06.040> from<03:56:06.399> our<03:56:07.199> upload 03:56:07.670 --> 03:56:07.680 align:start position:0% we removed the async from our upload 03:56:07.680 --> 03:56:10.349 align:start position:0% we removed the async from our upload file<03:56:08.120> or<03:56:08.359> rather<03:56:08.880> get<03:56:09.040> file<03:56:09.319> preview<03:56:10.000> now<03:56:10.199> it's 03:56:10.349 --> 03:56:10.359 align:start position:0% file or rather get file preview now it's 03:56:10.359 --> 03:56:12.269 align:start position:0% file or rather get file preview now it's going<03:56:10.520> to<03:56:10.720> immediately<03:56:11.359> return<03:56:11.720> exactly<03:56:12.159> what 03:56:12.269 --> 03:56:12.279 align:start position:0% going to immediately return exactly what 03:56:12.279 --> 03:56:15.149 align:start position:0% going to immediately return exactly what it<03:56:12.399> should<03:56:13.040> which<03:56:13.159> is<03:56:13.279> the<03:56:13.600> URL<03:56:14.600> so<03:56:14.960> let's 03:56:15.149 --> 03:56:15.159 align:start position:0% it should which is the URL so let's 03:56:15.159 --> 03:56:17.670 align:start position:0% it should which is the URL so let's close<03:56:15.479> all<03:56:15.680> the<03:56:15.800> files<03:56:16.080> that<03:56:16.199> we<03:56:16.319> don't 03:56:17.670 --> 03:56:17.680 align:start position:0% close all the files that we don't 03:56:17.680 --> 03:56:20.229 align:start position:0% close all the files that we don't need<03:56:18.680> and<03:56:19.000> let's<03:56:19.239> simply<03:56:19.560> create<03:56:19.880> another 03:56:20.229 --> 03:56:20.239 align:start position:0% need and let's simply create another 03:56:20.239 --> 03:56:22.229 align:start position:0% need and let's simply create another post<03:56:20.720> and<03:56:20.920> hopefully<03:56:21.359> this<03:56:21.560> time<03:56:21.880> we'll<03:56:22.120> be 03:56:22.229 --> 03:56:22.239 align:start position:0% post and hopefully this time we'll be 03:56:22.239 --> 03:56:25.030 align:start position:0% post and hopefully this time we'll be able<03:56:22.439> to<03:56:22.600> see<03:56:22.840> it<03:56:23.120> on<03:56:23.279> our<03:56:23.479> homepage<03:56:24.439> so<03:56:24.840> I'll 03:56:25.030 --> 03:56:25.040 align:start position:0% able to see it on our homepage so I'll 03:56:25.040 --> 03:56:29.429 align:start position:0% able to see it on our homepage so I'll do<03:56:25.279> something<03:56:25.640> like<03:56:25.920> ultimate<03:56:26.760> nextjs<03:56:28.159> 13.5 03:56:29.429 --> 03:56:29.439 align:start position:0% do something like ultimate nextjs 13.5 03:56:29.439 --> 03:56:32.149 align:start position:0% do something like ultimate nextjs 13.5 course<03:56:30.439> I<03:56:30.600> uploaded<03:56:31.279> this<03:56:31.520> great<03:56:31.880> Dev 03:56:32.149 --> 03:56:32.159 align:start position:0% course I uploaded this great Dev 03:56:32.159 --> 03:56:34.030 align:start position:0% course I uploaded this great Dev overflow<03:56:32.720> image<03:56:33.239> which<03:56:33.359> is<03:56:33.479> the<03:56:33.680> project 03:56:34.030 --> 03:56:34.040 align:start position:0% overflow image which is the project 03:56:34.040 --> 03:56:36.550 align:start position:0% overflow image which is the project we're<03:56:34.239> building<03:56:34.560> in<03:56:34.680> our<03:56:34.840> nextjs<03:56:35.439> course<03:56:36.439> I'm 03:56:36.550 --> 03:56:36.560 align:start position:0% we're building in our nextjs course I'm 03:56:36.560 --> 03:56:39.389 align:start position:0% we're building in our nextjs course I'm going<03:56:36.680> to<03:56:36.840> add<03:56:37.040> the<03:56:37.199> location<03:56:37.800> of<03:56:38.040> JSM<03:56:38.680> Mastery 03:56:39.389 --> 03:56:39.399 align:start position:0% going to add the location of JSM Mastery 03:56:39.399 --> 03:56:40.910 align:start position:0% going to add the location of JSM Mastery Pro 03:56:40.910 --> 03:56:40.920 align:start position:0% Pro 03:56:40.920 --> 03:56:43.950 align:start position:0% Pro platform<03:56:41.920> and<03:56:42.120> we<03:56:42.239> can<03:56:42.439> add<03:56:42.680> something<03:56:43.040> like 03:56:43.950 --> 03:56:43.960 align:start position:0% platform and we can add something like 03:56:43.960 --> 03:56:46.710 align:start position:0% platform and we can add something like nextjs<03:56:44.960> and<03:56:45.359> maybe 03:56:46.710 --> 03:56:46.720 align:start position:0% nextjs and maybe 03:56:46.720 --> 03:56:50.110 align:start position:0% nextjs and maybe course<03:56:47.720> and<03:56:47.920> let's<03:56:48.159> click 03:56:50.110 --> 03:56:50.120 align:start position:0% course and let's click 03:56:50.120 --> 03:56:53.429 align:start position:0% course and let's click submit<03:56:51.120> there<03:56:51.279> we<03:56:51.479> go<03:56:52.080> it<03:56:52.239> got<03:56:52.439> submitted<03:56:53.199> and 03:56:53.429 --> 03:56:53.439 align:start position:0% submit there we go it got submitted and 03:56:53.439 --> 03:56:56.030 align:start position:0% submit there we go it got submitted and we<03:56:53.560> can<03:56:53.680> see<03:56:53.880> it<03:56:54.040> on<03:56:54.199> our<03:56:54.399> homepage<03:56:55.399> that<03:56:55.640> is 03:56:56.030 --> 03:56:56.040 align:start position:0% we can see it on our homepage that is 03:56:56.040 --> 03:56:59.189 align:start position:0% we can see it on our homepage that is great<03:56:56.760> we<03:56:56.960> finally<03:56:57.439> have<03:56:57.880> the<03:56:58.080> real<03:56:58.560> profile 03:56:59.189 --> 03:56:59.199 align:start position:0% great we finally have the real profile 03:56:59.199 --> 03:57:01.389 align:start position:0% great we finally have the real profile right<03:56:59.439> here<03:56:59.960> it<03:57:00.080> says<03:57:00.359> just<03:57:00.720> now<03:57:01.080> which<03:57:01.199> is 03:57:01.389 --> 03:57:01.399 align:start position:0% right here it says just now which is 03:57:01.399 --> 03:57:04.110 align:start position:0% right here it says just now which is amazing<03:57:02.279> we<03:57:02.439> have<03:57:02.640> the<03:57:02.760> full<03:57:03.159> caption<03:57:03.920> the 03:57:04.110 --> 03:57:04.120 align:start position:0% amazing we have the full caption the 03:57:04.120 --> 03:57:07.030 align:start position:0% amazing we have the full caption the tags<03:57:04.800> as<03:57:05.000> well<03:57:05.239> as<03:57:05.399> the<03:57:05.560> photo<03:57:06.479> this<03:57:06.720> is 03:57:07.030 --> 03:57:07.040 align:start position:0% tags as well as the photo this is 03:57:07.040 --> 03:57:08.710 align:start position:0% tags as well as the photo this is phenomenal<03:57:07.760> and<03:57:07.920> the<03:57:08.040> last<03:57:08.199> thing<03:57:08.359> we<03:57:08.439> need 03:57:08.710 --> 03:57:08.720 align:start position:0% phenomenal and the last thing we need 03:57:08.720 --> 03:57:10.710 align:start position:0% phenomenal and the last thing we need need<03:57:09.000> is<03:57:09.159> going<03:57:09.319> to<03:57:09.439> be<03:57:09.600> the<03:57:09.800> actions<03:57:10.399> such<03:57:10.560> as 03:57:10.710 --> 03:57:10.720 align:start position:0% need is going to be the actions such as 03:57:10.720 --> 03:57:13.510 align:start position:0% need is going to be the actions such as the<03:57:10.880> heart<03:57:11.439> and<03:57:11.680> the<03:57:11.840> save<03:57:12.640> so<03:57:13.000> let's<03:57:13.239> go<03:57:13.399> back 03:57:13.510 --> 03:57:13.520 align:start position:0% the heart and the save so let's go back 03:57:13.520 --> 03:57:15.510 align:start position:0% the heart and the save so let's go back to<03:57:13.800> application<03:57:14.600> let's<03:57:14.840> collapse<03:57:15.239> it<03:57:15.359> to 03:57:15.510 --> 03:57:15.520 align:start position:0% to application let's collapse it to 03:57:15.520 --> 03:57:17.830 align:start position:0% to application let's collapse it to check<03:57:15.720> it<03:57:15.840> out<03:57:16.000> on<03:57:16.199> mobile<03:57:16.640> devices<03:57:17.640> it's 03:57:17.830 --> 03:57:17.840 align:start position:0% check it out on mobile devices it's 03:57:17.840 --> 03:57:20.349 align:start position:0% check it out on mobile devices it's looking<03:57:18.239> great<03:57:19.239> maybe<03:57:19.520> this<03:57:19.680> image<03:57:19.920> is<03:57:20.040> not<03:57:20.199> in 03:57:20.349 --> 03:57:20.359 align:start position:0% looking great maybe this image is not in 03:57:20.359 --> 03:57:22.309 align:start position:0% looking great maybe this image is not in the<03:57:20.520> right<03:57:20.760> format<03:57:21.359> but<03:57:21.560> still<03:57:21.920> it<03:57:22.080> gets 03:57:22.309 --> 03:57:22.319 align:start position:0% the right format but still it gets 03:57:22.319 --> 03:57:24.950 align:start position:0% the right format but still it gets cropped<03:57:22.800> properly<03:57:23.720> so<03:57:23.960> now<03:57:24.239> let's<03:57:24.399> go<03:57:24.680> back<03:57:24.840> to 03:57:24.950 --> 03:57:24.960 align:start position:0% cropped properly so now let's go back to 03:57:24.960 --> 03:57:28.269 align:start position:0% cropped properly so now let's go back to the<03:57:25.120> postcard<03:57:25.920> to<03:57:26.199> finalize<03:57:26.920> the<03:57:27.159> last<03:57:27.600> post 03:57:28.269 --> 03:57:28.279 align:start position:0% the postcard to finalize the last post 03:57:28.279 --> 03:57:31.110 align:start position:0% the postcard to finalize the last post actions<03:57:29.279> So<03:57:29.640> Below<03:57:30.080> this<03:57:30.279> link<03:57:30.680> containing 03:57:31.110 --> 03:57:31.120 align:start position:0% actions So Below this link containing 03:57:31.120 --> 03:57:33.469 align:start position:0% actions So Below this link containing the<03:57:31.239> image<03:57:31.800> let's<03:57:32.040> create<03:57:32.319> a<03:57:32.439> new<03:57:32.800> component 03:57:33.469 --> 03:57:33.479 align:start position:0% the image let's create a new component 03:57:33.479 --> 03:57:37.229 align:start position:0% the image let's create a new component called<03:57:33.920> post<03:57:34.800> stats<03:57:35.760> like<03:57:36.000> this<03:57:37.000> we're<03:57:37.120> going 03:57:37.229 --> 03:57:37.239 align:start position:0% called post stats like this we're going 03:57:37.239 --> 03:57:38.870 align:start position:0% called post stats like this we're going to<03:57:37.439> pass<03:57:37.720> two<03:57:37.960> things<03:57:38.359> we're<03:57:38.560> we're<03:57:38.680> going<03:57:38.760> to 03:57:38.870 --> 03:57:38.880 align:start position:0% to pass two things we're we're going to 03:57:38.880 --> 03:57:41.550 align:start position:0% to pass two things we're we're going to pass<03:57:39.120> the<03:57:39.319> post<03:57:39.800> equal<03:57:40.120> to<03:57:40.319> post<03:57:41.120> as<03:57:41.239> well<03:57:41.399> as 03:57:41.550 --> 03:57:41.560 align:start position:0% pass the post equal to post as well as 03:57:41.560 --> 03:57:45.910 align:start position:0% pass the post equal to post as well as the<03:57:41.680> user<03:57:42.040> ID<03:57:42.640> equal<03:57:43.000> to<03:57:43.800> user. 03:57:45.910 --> 03:57:45.920 align:start position:0% the user ID equal to user. 03:57:45.920 --> 03:57:49.070 align:start position:0% the user ID equal to user. ID<03:57:46.920> then<03:57:47.279> we<03:57:47.399> can<03:57:47.560> create<03:57:47.880> a<03:57:48.080> new<03:57:48.319> component<03:57:48.960> in 03:57:49.070 --> 03:57:49.080 align:start position:0% ID then we can create a new component in 03:57:49.080 --> 03:57:52.510 align:start position:0% ID then we can create a new component in the<03:57:49.199> shared<03:57:49.600> components<03:57:50.080> folder<03:57:50.800> called<03:57:51.520> post 03:57:52.510 --> 03:57:52.520 align:start position:0% the shared components folder called post 03:57:52.520 --> 03:57:56.389 align:start position:0% the shared components folder called post stats.<03:57:53.720> TSX<03:57:54.720> and<03:57:54.920> run 03:57:56.389 --> 03:57:56.399 align:start position:0% stats. TSX and run 03:57:56.399 --> 03:57:59.830 align:start position:0% stats. TSX and run RFC<03:57:57.399> immediately<03:57:58.279> back<03:57:58.479> in<03:57:58.600> the<03:57:58.800> postcard<03:57:59.720> we 03:57:59.830 --> 03:57:59.840 align:start position:0% RFC immediately back in the postcard we 03:57:59.840 --> 03:58:03.910 align:start position:0% RFC immediately back in the postcard we can<03:58:00.040> import<03:58:00.520> post<03:58:00.880> stats<03:58:01.760> right<03:58:02.359> here<03:58:03.359> and 03:58:03.910 --> 03:58:03.920 align:start position:0% can import post stats right here and 03:58:03.920 --> 03:58:05.590 align:start position:0% can import post stats right here and then<03:58:04.120> we<03:58:04.239> can<03:58:04.399> focus<03:58:04.680> on<03:58:04.840> the<03:58:04.960> post<03:58:05.239> stats 03:58:05.590 --> 03:58:05.600 align:start position:0% then we can focus on the post stats 03:58:05.600 --> 03:58:09.030 align:start position:0% then we can focus on the post stats component<03:58:06.600> by<03:58:06.960> first<03:58:07.359> declaring<03:58:08.279> which<03:58:08.720> props 03:58:09.030 --> 03:58:09.040 align:start position:0% component by first declaring which props 03:58:09.040 --> 03:58:11.950 align:start position:0% component by first declaring which props do<03:58:09.120> we<03:58:09.239> want<03:58:09.319> to<03:58:09.720> pass<03:58:10.720> we<03:58:10.880> immediately<03:58:11.439> know 03:58:11.950 --> 03:58:11.960 align:start position:0% do we want to pass we immediately know 03:58:11.960 --> 03:58:14.429 align:start position:0% do we want to pass we immediately know that's<03:58:12.239> going<03:58:12.399> to<03:58:12.560> be<03:58:12.840> the<03:58:13.040> post<03:58:13.920> as<03:58:14.080> well<03:58:14.319> as 03:58:14.429 --> 03:58:14.439 align:start position:0% that's going to be the post as well as 03:58:14.439 --> 03:58:16.790 align:start position:0% that's going to be the post as well as the<03:58:14.600> user<03:58:14.920> ID<03:58:15.600> which<03:58:15.720> are<03:58:15.880> going<03:58:16.040> to<03:58:16.159> be<03:58:16.359> of<03:58:16.560> a 03:58:16.790 --> 03:58:16.800 align:start position:0% the user ID which are going to be of a 03:58:16.800 --> 03:58:21.750 align:start position:0% the user ID which are going to be of a type<03:58:17.680> post<03:58:18.560> stats<03:58:20.000> props<03:58:21.000> we<03:58:21.120> can<03:58:21.279> declare 03:58:21.750 --> 03:58:21.760 align:start position:0% type post stats props we can declare 03:58:21.760 --> 03:58:25.750 align:start position:0% type post stats props we can declare those<03:58:22.120> right<03:58:22.359> above<03:58:23.279> by<03:58:23.439> saying<03:58:24.080> type<03:58:25.040> post 03:58:25.750 --> 03:58:25.760 align:start position:0% those right above by saying type post 03:58:25.760 --> 03:58:30.349 align:start position:0% those right above by saying type post stats<03:58:27.000> props<03:58:28.000> is<03:58:28.239> equal<03:58:28.520> to<03:58:29.279> a<03:58:29.520> post<03:58:29.880> is<03:58:30.000> of<03:58:30.159> a 03:58:30.349 --> 03:58:30.359 align:start position:0% stats props is equal to a post is of a 03:58:30.359 --> 03:58:32.630 align:start position:0% stats props is equal to a post is of a type<03:58:30.600> models<03:58:31.399> which<03:58:31.520> is<03:58:31.640> coming<03:58:31.920> from<03:58:32.239> app 03:58:32.630 --> 03:58:32.640 align:start position:0% type models which is coming from app 03:58:32.640 --> 03:58:36.830 align:start position:0% type models which is coming from app right<03:58:33.479> dot<03:58:34.399> document<03:58:35.399> and<03:58:35.560> the<03:58:35.720> user<03:58:36.000> ID<03:58:36.520> is<03:58:36.680> of 03:58:36.830 --> 03:58:36.840 align:start position:0% right dot document and the user ID is of 03:58:36.840 --> 03:58:39.590 align:start position:0% right dot document and the user ID is of a<03:58:37.080> type<03:58:37.520> string<03:58:38.840> now<03:58:39.040> that<03:58:39.159> we<03:58:39.279> know<03:58:39.439> what 03:58:39.590 --> 03:58:39.600 align:start position:0% a type string now that we know what 03:58:39.600 --> 03:58:41.590 align:start position:0% a type string now that we know what we're<03:58:39.760> getting<03:58:40.319> let's<03:58:40.520> focus<03:58:40.760> on<03:58:40.920> the<03:58:41.040> UI<03:58:41.439> and 03:58:41.590 --> 03:58:41.600 align:start position:0% we're getting let's focus on the UI and 03:58:41.600 --> 03:58:45.910 align:start position:0% we're getting let's focus on the UI and the<03:58:41.720> ux<03:58:42.239> of<03:58:42.399> our<03:58:42.640> heart<03:58:43.120> and<03:58:43.439> save<03:58:44.560> stats<03:58:45.560> first 03:58:45.910 --> 03:58:45.920 align:start position:0% the ux of our heart and save stats first 03:58:45.920 --> 03:58:48.550 align:start position:0% the ux of our heart and save stats first we<03:58:46.040> can<03:58:46.199> wrap<03:58:46.680> everything<03:58:47.040> in<03:58:47.199> a<03:58:47.399> div<03:58:48.120> and<03:58:48.359> that 03:58:48.550 --> 03:58:48.560 align:start position:0% we can wrap everything in a div and that 03:58:48.560 --> 03:58:51.750 align:start position:0% we can wrap everything in a div and that div<03:58:48.920> can<03:58:49.120> have<03:58:49.279> a<03:58:49.479> class<03:58:50.239> name<03:58:51.239> that<03:58:51.520> class 03:58:51.750 --> 03:58:51.760 align:start position:0% div can have a class name that class 03:58:51.760 --> 03:58:55.510 align:start position:0% div can have a class name that class name<03:58:52.040> is<03:58:52.199> going<03:58:52.359> to<03:58:52.600> have<03:58:52.800> a<03:58:53.159> flex<03:58:54.159> justify 03:58:55.510 --> 03:58:55.520 align:start position:0% name is going to have a flex justify 03:58:55.520 --> 03:58:59.750 align:start position:0% name is going to have a flex justify between<03:58:56.520> items<03:58:57.000> Das<03:58:57.479> Center<03:58:58.479> and<03:58:58.760> a<03:58:58.960> zindex<03:58:59.600> of 03:58:59.750 --> 03:58:59.760 align:start position:0% between items Das Center and a zindex of 03:58:59.760 --> 03:59:03.070 align:start position:0% between items Das Center and a zindex of 20<03:59:00.239> to<03:59:00.439> appear<03:59:00.760> on<03:59:01.080> top<03:59:02.040> right<03:59:02.319> inside<03:59:02.760> it 03:59:03.070 --> 03:59:03.080 align:start position:0% 20 to appear on top right inside it 03:59:03.080 --> 03:59:04.790 align:start position:0% 20 to appear on top right inside it we're<03:59:03.239> going<03:59:03.319> to<03:59:03.479> give<03:59:03.560> it<03:59:03.680> a<03:59:03.880> div<03:59:04.560> that's 03:59:04.790 --> 03:59:04.800 align:start position:0% we're going to give it a div that's 03:59:04.800 --> 03:59:08.189 align:start position:0% we're going to give it a div that's going<03:59:04.960> to<03:59:05.120> have<03:59:05.239> a<03:59:05.479> class<03:59:05.840> name<03:59:06.600> equal<03:59:06.920> to<03:59:07.199> flex 03:59:08.189 --> 03:59:08.199 align:start position:0% going to have a class name equal to flex 03:59:08.199 --> 03:59:11.429 align:start position:0% going to have a class name equal to flex Gap<03:59:08.680> of<03:59:08.800> two<03:59:09.319> and<03:59:09.479> margin<03:59:09.880> right<03:59:10.239> of 03:59:11.429 --> 03:59:11.439 align:start position:0% Gap of two and margin right of 03:59:11.439 --> 03:59:14.550 align:start position:0% Gap of two and margin right of five<03:59:12.439> finally<03:59:12.880> right<03:59:13.159> within<03:59:13.760> we<03:59:13.880> can<03:59:14.040> show 03:59:14.550 --> 03:59:14.560 align:start position:0% five finally right within we can show 03:59:14.560 --> 03:59:17.630 align:start position:0% five finally right within we can show the<03:59:14.720> heart<03:59:15.080> icon<03:59:15.760> so<03:59:15.960> let's<03:59:16.120> say<03:59:16.439> image<03:59:17.439> that's 03:59:17.630 --> 03:59:17.640 align:start position:0% the heart icon so let's say image that's 03:59:17.640 --> 03:59:21.110 align:start position:0% the heart icon so let's say image that's going<03:59:17.800> to<03:59:18.000> have<03:59:18.239> a<03:59:18.479> source<03:59:19.199> is<03:59:19.439> equal<03:59:19.880> to<03:59:20.880> and 03:59:21.110 --> 03:59:21.120 align:start position:0% going to have a source is equal to and 03:59:21.120 --> 03:59:25.349 align:start position:0% going to have a source is equal to and let's<03:59:21.279> do<03:59:21.520> for<03:59:21.760> now<03:59:22.199> for<03:59:22.600> SL<03:59:23.040> assets<03:59:23.960> SL<03:59:24.359> ions 03:59:25.349 --> 03:59:25.359 align:start position:0% let's do for now for SL assets SL ions 03:59:25.359 --> 03:59:29.670 align:start position:0% let's do for now for SL assets SL ions SL<03:59:25.960> liked.<03:59:27.239> SVG<03:59:28.239> and<03:59:28.399> there<03:59:28.560> we<03:59:28.720> go<03:59:29.399> but<03:59:29.560> of 03:59:29.670 --> 03:59:29.680 align:start position:0% SL liked. SVG and there we go but of 03:59:29.680 --> 03:59:31.309 align:start position:0% SL liked. SVG and there we go but of course<03:59:29.880> it's<03:59:30.000> going<03:59:30.159> to<03:59:30.359> depend<03:59:30.840> whether<03:59:31.120> it 03:59:31.309 --> 03:59:31.319 align:start position:0% course it's going to depend whether it 03:59:31.319 --> 03:59:34.309 align:start position:0% course it's going to depend whether it has<03:59:31.479> already<03:59:31.760> been<03:59:31.960> liked<03:59:32.279> or<03:59:32.680> not<03:59:33.680> so<03:59:34.000> if<03:59:34.120> it 03:59:34.309 --> 03:59:34.319 align:start position:0% has already been liked or not so if it 03:59:34.319 --> 03:59:36.149 align:start position:0% has already been liked or not so if it has<03:59:34.479> been<03:59:34.720> liked<03:59:35.319> then<03:59:35.479> it's<03:59:35.640> going<03:59:35.760> to<03:59:35.880> say 03:59:36.149 --> 03:59:36.159 align:start position:0% has been liked then it's going to say 03:59:36.159 --> 03:59:38.469 align:start position:0% has been liked then it's going to say liked<03:59:36.880> otherwise<03:59:37.279> it's<03:59:37.439> going<03:59:37.600> to<03:59:37.680> say<03:59:37.960> like 03:59:38.469 --> 03:59:38.479 align:start position:0% liked otherwise it's going to say like 03:59:38.479 --> 03:59:40.030 align:start position:0% liked otherwise it's going to say like which<03:59:38.600> is<03:59:38.720> going<03:59:38.880> to<03:59:38.960> show<03:59:39.359> this<03:59:39.760> different 03:59:40.030 --> 03:59:40.040 align:start position:0% which is going to show this different 03:59:40.040 --> 03:59:42.550 align:start position:0% which is going to show this different kind<03:59:40.159> of<03:59:40.279> an<03:59:40.840> icon<03:59:41.840> so<03:59:42.080> we'll<03:59:42.239> have<03:59:42.359> to 03:59:42.550 --> 03:59:42.560 align:start position:0% kind of an icon so we'll have to 03:59:42.560 --> 03:59:45.189 align:start position:0% kind of an icon so we'll have to dynamically<03:59:43.199> change<03:59:43.800> this<03:59:44.040> property<03:59:44.720> for<03:59:44.920> now 03:59:45.189 --> 03:59:45.199 align:start position:0% dynamically change this property for now 03:59:45.199 --> 03:59:48.149 align:start position:0% dynamically change this property for now let's<03:59:45.359> leave<03:59:45.600> it<03:59:45.800> statically<03:59:46.479> as<03:59:46.960> like<03:59:47.960> let's 03:59:48.149 --> 03:59:48.159 align:start position:0% let's leave it statically as like let's 03:59:48.159 --> 03:59:51.269 align:start position:0% let's leave it statically as like let's give<03:59:48.279> it<03:59:48.399> an<03:59:48.520> Al<03:59:48.880> tag<03:59:49.239> of<03:59:49.840> like<03:59:50.840> let's<03:59:51.040> give<03:59:51.159> it 03:59:51.269 --> 03:59:51.279 align:start position:0% give it an Al tag of like let's give it 03:59:51.279 --> 03:59:55.870 align:start position:0% give it an Al tag of like let's give it a<03:59:51.479> width<03:59:52.000> of<03:59:52.239> 20<03:59:53.159> as<03:59:53.279> well<03:59:53.439> as<03:59:53.560> a<03:59:53.800> height<03:59:54.199> of<03:59:54.880> 20 03:59:55.870 --> 03:59:55.880 align:start position:0% a width of 20 as well as a height of 20 03:59:55.880 --> 03:59:58.110 align:start position:0% a width of 20 as well as a height of 20 let's<03:59:56.080> give<03:59:56.199> it<03:59:56.279> an<03:59:56.439> on<03:59:56.800> click<03:59:57.520> which<03:59:57.680> for<03:59:57.840> now 03:59:58.110 --> 03:59:58.120 align:start position:0% let's give it an on click which for now 03:59:58.120 --> 04:00:00.269 align:start position:0% let's give it an on click which for now is<03:59:58.239> going<03:59:58.399> to<03:59:58.520> be<03:59:58.640> set<03:59:58.880> to<03:59:59.159> an<03:59:59.319> empty<03:59:59.640> callback 04:00:00.269 --> 04:00:00.279 align:start position:0% is going to be set to an empty callback 04:00:00.279 --> 04:00:03.030 align:start position:0% is going to be set to an empty callback function<04:00:01.279> and<04:00:01.479> let's<04:00:01.680> give<04:00:01.760> it<04:00:01.880> a<04:00:02.040> class<04:00:02.399> name 04:00:03.030 --> 04:00:03.040 align:start position:0% function and let's give it a class name 04:00:03.040 --> 04:00:04.429 align:start position:0% function and let's give it a class name equal<04:00:03.359> to 04:00:04.429 --> 04:00:04.439 align:start position:0% equal to 04:00:04.439 --> 04:00:08.229 align:start position:0% equal to cursor<04:00:05.439> Das<04:00:06.159> pointer<04:00:07.159> finally<04:00:07.720> right<04:00:07.960> below 04:00:08.229 --> 04:00:08.239 align:start position:0% cursor Das pointer finally right below 04:00:08.239 --> 04:00:10.229 align:start position:0% cursor Das pointer finally right below it<04:00:08.640> we<04:00:08.760> can<04:00:08.880> create<04:00:09.120> a<04:00:09.239> new<04:00:09.439> P<04:00:09.680> tag<04:00:10.080> that's 04:00:10.229 --> 04:00:10.239 align:start position:0% it we can create a new P tag that's 04:00:10.239 --> 04:00:12.269 align:start position:0% it we can create a new P tag that's going<04:00:10.359> to<04:00:10.479> render<04:00:10.840> the<04:00:10.960> number<04:00:11.199> of<04:00:11.439> likes<04:00:12.040> for 04:00:12.269 --> 04:00:12.279 align:start position:0% going to render the number of likes for 04:00:12.279 --> 04:00:15.110 align:start position:0% going to render the number of likes for now<04:00:12.479> we<04:00:12.600> can<04:00:12.720> do<04:00:12.840> it<04:00:13.040> statically<04:00:13.720> as 04:00:15.110 --> 04:00:15.120 align:start position:0% now we can do it statically as 04:00:15.120 --> 04:00:18.630 align:start position:0% now we can do it statically as zero<04:00:16.120> and<04:00:16.359> we<04:00:16.439> can<04:00:16.560> give<04:00:16.680> it<04:00:16.800> a<04:00:16.960> class<04:00:17.640> name 04:00:18.630 --> 04:00:18.640 align:start position:0% zero and we can give it a class name 04:00:18.640 --> 04:00:21.389 align:start position:0% zero and we can give it a class name equal<04:00:18.960> to<04:00:19.640> small- 04:00:21.389 --> 04:00:21.399 align:start position:0% equal to small- 04:00:21.399 --> 04:00:25.389 align:start position:0% equal to small- medium<04:00:22.399> and<04:00:22.560> on<04:00:22.760> large<04:00:23.080> devices<04:00:23.680> base-<04:00:24.399> medium 04:00:25.389 --> 04:00:25.399 align:start position:0% medium and on large devices base- medium 04:00:25.399 --> 04:00:27.910 align:start position:0% medium and on large devices base- medium there<04:00:25.560> we<04:00:25.720> go<04:00:26.520> and<04:00:26.720> we<04:00:26.800> can<04:00:26.960> do<04:00:27.120> the<04:00:27.279> same<04:00:27.600> exact 04:00:27.910 --> 04:00:27.920 align:start position:0% there we go and we can do the same exact 04:00:27.920 --> 04:00:29.790 align:start position:0% there we go and we can do the same exact thing<04:00:28.080> for<04:00:28.279> saved<04:00:28.880> so<04:00:29.080> let's<04:00:29.359> copy<04:00:29.640> this 04:00:29.790 --> 04:00:29.800 align:start position:0% thing for saved so let's copy this 04:00:29.800 --> 04:00:33.389 align:start position:0% thing for saved so let's copy this entire<04:00:30.159> div<04:00:31.080> paste<04:00:31.359> it<04:00:31.880> below<04:00:32.880> this<04:00:33.040> time<04:00:33.239> we 04:00:33.389 --> 04:00:33.399 align:start position:0% entire div paste it below this time we 04:00:33.399 --> 04:00:35.429 align:start position:0% entire div paste it below this time we don't<04:00:33.600> need<04:00:33.800> margin<04:00:34.239> right<04:00:34.760> as<04:00:34.880> it's<04:00:35.120> already 04:00:35.429 --> 04:00:35.439 align:start position:0% don't need margin right as it's already 04:00:35.439 --> 04:00:36.510 align:start position:0% don't need margin right as it's already on<04:00:35.560> the<04:00:35.760> right 04:00:36.510 --> 04:00:36.520 align:start position:0% on the right 04:00:36.520 --> 04:00:38.910 align:start position:0% on the right side<04:00:37.520> and<04:00:37.720> we<04:00:37.800> need<04:00:37.960> to<04:00:38.080> change<04:00:38.319> change<04:00:38.640> this 04:00:38.910 --> 04:00:38.920 align:start position:0% side and we need to change change this 04:00:38.920 --> 04:00:42.469 align:start position:0% side and we need to change change this from<04:00:39.199> like<04:00:39.800> to<04:00:40.560> save<04:00:41.560> and<04:00:41.800> everything<04:00:42.120> else<04:00:42.319> is 04:00:42.469 --> 04:00:42.479 align:start position:0% from like to save and everything else is 04:00:42.479 --> 04:00:45.110 align:start position:0% from like to save and everything else is going<04:00:42.640> to<04:00:42.800> be<04:00:43.279> exactly<04:00:44.120> the<04:00:44.279> same<04:00:44.680> so<04:00:44.880> now<04:00:45.000> we 04:00:45.110 --> 04:00:45.120 align:start position:0% going to be exactly the same so now we 04:00:45.120 --> 04:00:48.030 align:start position:0% going to be exactly the same so now we have<04:00:45.359> likes<04:00:46.040> and<04:00:46.319> we<04:00:46.479> have<04:00:46.840> saves<04:00:47.720> in<04:00:47.880> this 04:00:48.030 --> 04:00:48.040 align:start position:0% have likes and we have saves in this 04:00:48.040 --> 04:00:49.710 align:start position:0% have likes and we have saves in this case<04:00:48.239> we<04:00:48.359> don't<04:00:48.560> need<04:00:48.720> to<04:00:48.840> show<04:00:49.159> the<04:00:49.319> number<04:00:49.560> of 04:00:49.710 --> 04:00:49.720 align:start position:0% case we don't need to show the number of 04:00:49.720 --> 04:00:52.830 align:start position:0% case we don't need to show the number of saves<04:00:50.319> so<04:00:50.479> we<04:00:50.600> can<04:00:50.760> remove<04:00:51.319> the<04:00:51.479> P<04:00:51.720> tag<04:00:52.680> there 04:00:52.830 --> 04:00:52.840 align:start position:0% saves so we can remove the P tag there 04:00:52.840 --> 04:00:56.670 align:start position:0% saves so we can remove the P tag there we<04:00:53.040> go<04:00:53.800> this<04:00:54.080> is<04:00:54.600> great<04:00:55.600> so<04:00:56.080> now<04:00:56.319> that<04:00:56.479> we've 04:00:56.670 --> 04:00:56.680 align:start position:0% we go this is great so now that we've 04:00:56.680 --> 04:00:58.950 align:start position:0% we go this is great so now that we've implemented<04:00:57.159> the<04:00:57.279> UI<04:00:58.040> what<04:00:58.159> do<04:00:58.279> you<04:00:58.439> say<04:00:58.800> that 04:00:58.950 --> 04:00:58.960 align:start position:0% implemented the UI what do you say that 04:00:58.960 --> 04:01:02.030 align:start position:0% implemented the UI what do you say that we<04:00:59.159> implement<04:00:59.560> the<04:00:59.800> logic<04:01:00.199> for<04:01:00.560> liking<04:01:01.319> saving 04:01:02.030 --> 04:01:02.040 align:start position:0% we implement the logic for liking saving 04:01:02.040 --> 04:01:04.830 align:start position:0% we implement the logic for liking saving and<04:01:02.359> unsaving<04:01:03.239> as<04:01:03.439> well<04:01:04.080> we<04:01:04.159> can<04:01:04.319> do<04:01:04.560> that 04:01:04.830 --> 04:01:04.840 align:start position:0% and unsaving as well we can do that 04:01:04.840 --> 04:01:08.469 align:start position:0% and unsaving as well we can do that quite<04:01:05.120> easily<04:01:05.840> by<04:01:06.000> heading<04:01:06.319> to<04:01:06.560> our<04:01:06.880> API<04:01:07.479> file 04:01:08.469 --> 04:01:08.479 align:start position:0% quite easily by heading to our API file 04:01:08.479 --> 04:01:10.229 align:start position:0% quite easily by heading to our API file by<04:01:08.640> the<04:01:08.760> way<04:01:09.000> I<04:01:09.080> just<04:01:09.279> press<04:01:09.560> control<04:01:10.000> or 04:01:10.229 --> 04:01:10.239 align:start position:0% by the way I just press control or 04:01:10.239 --> 04:01:12.750 align:start position:0% by the way I just press control or command<04:01:10.640> p<04:01:11.199> and<04:01:11.359> I<04:01:11.520> started<04:01:11.960> typing<04:01:12.319> the<04:01:12.439> file 04:01:12.750 --> 04:01:12.760 align:start position:0% command p and I started typing the file 04:01:12.760 --> 04:01:14.950 align:start position:0% command p and I started typing the file name<04:01:13.439> this<04:01:13.560> is<04:01:13.680> going<04:01:13.840> to<04:01:14.040> immediately<04:01:14.640> move 04:01:14.950 --> 04:01:14.960 align:start position:0% name this is going to immediately move 04:01:14.960 --> 04:01:17.309 align:start position:0% name this is going to immediately move you<04:01:15.159> to<04:01:15.319> the<04:01:15.479> correct<04:01:15.920> file<04:01:16.680> here<04:01:17.080> we<04:01:17.159> can 04:01:17.309 --> 04:01:17.319 align:start position:0% you to the correct file here we can 04:01:17.319 --> 04:01:20.670 align:start position:0% you to the correct file here we can create<04:01:17.640> a<04:01:17.800> new<04:01:18.040> function<04:01:19.000> export<04:01:19.640> async 04:01:20.670 --> 04:01:20.680 align:start position:0% create a new function export async 04:01:20.680 --> 04:01:24.710 align:start position:0% create a new function export async function<04:01:21.680> like<04:01:22.359> post<04:01:23.359> we<04:01:23.520> have<04:01:23.680> to<04:01:23.840> get<04:01:24.040> a<04:01:24.319> post 04:01:24.710 --> 04:01:24.720 align:start position:0% function like post we have to get a post 04:01:24.720 --> 04:01:27.590 align:start position:0% function like post we have to get a post ID<04:01:25.600> which<04:01:25.720> is<04:01:25.840> of<04:01:26.000> a<04:01:26.159> type 04:01:27.590 --> 04:01:27.600 align:start position:0% ID which is of a type 04:01:27.600 --> 04:01:31.149 align:start position:0% ID which is of a type string<04:01:28.600> as<04:01:28.800> well<04:01:29.080> as<04:01:29.239> a<04:01:29.439> likes<04:01:29.960> array<04:01:30.960> that's 04:01:31.149 --> 04:01:31.159 align:start position:0% string as well as a likes array that's 04:01:31.159 --> 04:01:34.429 align:start position:0% string as well as a likes array that's going<04:01:31.319> to<04:01:31.520> be<04:01:31.920> of<04:01:32.080> a<04:01:32.359> type<04:01:32.800> string<04:01:33.359> array<04:01:34.319> we 04:01:34.429 --> 04:01:34.439 align:start position:0% going to be of a type string array we 04:01:34.439 --> 04:01:36.990 align:start position:0% going to be of a type string array we need<04:01:34.680> this<04:01:34.840> to<04:01:35.000> know<04:01:35.319> the<04:01:35.560> IDS<04:01:36.199> of<04:01:36.359> the<04:01:36.560> people 04:01:36.990 --> 04:01:37.000 align:start position:0% need this to know the IDS of the people 04:01:37.000 --> 04:01:38.910 align:start position:0% need this to know the IDS of the people that<04:01:37.159> have<04:01:37.319> liked<04:01:37.600> the<04:01:37.760> post 04:01:38.910 --> 04:01:38.920 align:start position:0% that have liked the post 04:01:38.920 --> 04:01:41.070 align:start position:0% that have liked the post as<04:01:39.120> usual<04:01:39.560> we're<04:01:39.760> going<04:01:39.920> to<04:01:40.120> open<04:01:40.359> up<04:01:40.600> a<04:01:40.760> new 04:01:41.070 --> 04:01:41.080 align:start position:0% as usual we're going to open up a new 04:01:41.080 --> 04:01:43.910 align:start position:0% as usual we're going to open up a new try<04:01:41.439> and<04:01:41.800> catch<04:01:42.159> Block<04:01:43.120> in<04:01:43.279> the<04:01:43.479> catch<04:01:43.760> we're 04:01:43.910 --> 04:01:43.920 align:start position:0% try and catch Block in the catch we're 04:01:43.920 --> 04:01:46.870 align:start position:0% try and catch Block in the catch we're going<04:01:44.000> to<04:01:44.159> Simply<04:01:44.479> consel<04:01:45.000> Lo<04:01:45.199> the<04:01:45.600> error<04:01:46.600> and 04:01:46.870 --> 04:01:46.880 align:start position:0% going to Simply consel Lo the error and 04:01:46.880 --> 04:01:49.870 align:start position:0% going to Simply consel Lo the error and in<04:01:47.080> the<04:01:47.399> try<04:01:48.040> we'll<04:01:48.279> try<04:01:48.439> to<04:01:48.640> like<04:01:48.840> it<04:01:49.560> by 04:01:49.870 --> 04:01:49.880 align:start position:0% in the try we'll try to like it by 04:01:49.880 --> 04:01:52.710 align:start position:0% in the try we'll try to like it by updating<04:01:50.680> the<04:01:50.840> record<04:01:51.439> of<04:01:51.600> the<04:01:51.760> post<04:01:52.439> so<04:01:52.600> we 04:01:52.710 --> 04:01:52.720 align:start position:0% updating the record of the post so we 04:01:52.720 --> 04:01:57.309 align:start position:0% updating the record of the post so we can<04:01:52.840> say<04:01:53.120> const<04:01:53.760> updated<04:01:54.720> post<04:01:55.720> is<04:01:55.920> equal<04:01:56.279> to 04:01:57.309 --> 04:01:57.319 align:start position:0% can say const updated post is equal to 04:01:57.319 --> 04:01:58.870 align:start position:0% can say const updated post is equal to await 04:01:58.870 --> 04:01:58.880 align:start position:0% await 04:01:58.880 --> 04:02:01.349 align:start position:0% await databases.<04:01:59.880> update 04:02:01.349 --> 04:02:01.359 align:start position:0% databases. update 04:02:01.359 --> 04:02:04.510 align:start position:0% databases. update document<04:02:02.359> and<04:02:02.720> as<04:02:02.920> usual<04:02:03.520> we<04:02:03.680> have<04:02:03.800> to<04:02:04.080> pass<04:02:04.359> a 04:02:04.510 --> 04:02:04.520 align:start position:0% document and as usual we have to pass a 04:02:04.520 --> 04:02:06.670 align:start position:0% document and as usual we have to pass a couple<04:02:04.760> of<04:02:04.920> things<04:02:05.159> to<04:02:05.319> it<04:02:06.040> you<04:02:06.159> can<04:02:06.319> see<04:02:06.479> it 04:02:06.670 --> 04:02:06.680 align:start position:0% couple of things to it you can see it 04:02:06.680 --> 04:02:08.510 align:start position:0% couple of things to it you can see it right<04:02:06.840> here<04:02:07.080> as<04:02:07.199> well<04:02:07.640> aight<04:02:08.040> has<04:02:08.199> is<04:02:08.319> really 04:02:08.510 --> 04:02:08.520 align:start position:0% right here as well aight has is really 04:02:08.520 --> 04:02:11.510 align:start position:0% right here as well aight has is really nicely<04:02:08.920> documented<04:02:09.680> their<04:02:10.000> SDK<04:02:11.000> so<04:02:11.159> you<04:02:11.359> have 04:02:11.510 --> 04:02:11.520 align:start position:0% nicely documented their SDK so you have 04:02:11.520 --> 04:02:14.670 align:start position:0% nicely documented their SDK so you have to<04:02:11.800> pass<04:02:12.120> the<04:02:12.319> database<04:02:12.840> ID<04:02:13.479> collection<04:02:13.960> ID 04:02:14.670 --> 04:02:14.680 align:start position:0% to pass the database ID collection ID 04:02:14.680 --> 04:02:16.830 align:start position:0% to pass the database ID collection ID document<04:02:15.159> ID<04:02:15.840> and<04:02:16.000> then<04:02:16.199> the<04:02:16.359> data<04:02:16.600> you<04:02:16.720> want 04:02:16.830 --> 04:02:16.840 align:start position:0% document ID and then the data you want 04:02:16.840 --> 04:02:20.469 align:start position:0% document ID and then the data you want to<04:02:17.080> update<04:02:18.000> so<04:02:18.439> let's<04:02:18.640> do<04:02:18.880> that<04:02:19.800> first<04:02:20.239> let's 04:02:20.469 --> 04:02:20.479 align:start position:0% to update so let's do that first let's 04:02:20.479 --> 04:02:23.030 align:start position:0% to update so let's do that first let's pass<04:02:20.720> the<04:02:20.920> database<04:02:21.399> ID<04:02:22.000> by<04:02:22.120> saying<04:02:22.520> app 04:02:23.030 --> 04:02:23.040 align:start position:0% pass the database ID by saying app 04:02:23.040 --> 04:02:26.149 align:start position:0% pass the database ID by saying app config<04:02:23.680> that<04:02:23.920> database<04:02:24.479> ID<04:02:25.359> then<04:02:25.680> we<04:02:25.840> have<04:02:25.960> to 04:02:26.149 --> 04:02:26.159 align:start position:0% config that database ID then we have to 04:02:26.159 --> 04:02:28.309 align:start position:0% config that database ID then we have to pass<04:02:26.439> the<04:02:26.680> collection<04:02:27.199> ID<04:02:27.640> of<04:02:27.800> the<04:02:27.920> collection 04:02:28.309 --> 04:02:28.319 align:start position:0% pass the collection ID of the collection 04:02:28.319 --> 04:02:30.630 align:start position:0% pass the collection ID of the collection we<04:02:28.399> want<04:02:28.520> to<04:02:28.720> update<04:02:29.439> in<04:02:29.640> this<04:02:29.880> case<04:02:30.199> app 04:02:30.630 --> 04:02:30.640 align:start position:0% we want to update in this case app 04:02:30.640 --> 04:02:32.750 align:start position:0% we want to update in this case app config<04:02:31.279> that<04:02:31.640> postcollection 04:02:32.750 --> 04:02:32.760 align:start position:0% config that postcollection 04:02:32.760 --> 04:02:35.550 align:start position:0% config that postcollection ID<04:02:33.760> then<04:02:34.040> you<04:02:34.120> need<04:02:34.279> to<04:02:34.479> pass<04:02:34.720> the<04:02:34.920> ID<04:02:35.239> of<04:02:35.399> the 04:02:35.550 --> 04:02:35.560 align:start position:0% ID then you need to pass the ID of the 04:02:35.560 --> 04:02:37.750 align:start position:0% ID then you need to pass the ID of the post<04:02:35.920> you<04:02:36.000> want<04:02:36.120> to<04:02:36.359> update<04:02:37.359> and<04:02:37.520> then<04:02:37.640> you 04:02:37.750 --> 04:02:37.760 align:start position:0% post you want to update and then you 04:02:37.760 --> 04:02:40.630 align:start position:0% post you want to update and then you want<04:02:37.880> to<04:02:38.000> pass<04:02:38.199> has<04:02:38.520> the<04:02:39.000> data<04:02:40.000> in<04:02:40.159> this<04:02:40.359> case 04:02:40.630 --> 04:02:40.640 align:start position:0% want to pass has the data in this case 04:02:40.640 --> 04:02:43.309 align:start position:0% want to pass has the data in this case likes<04:02:41.239> of<04:02:41.439> the<04:02:41.600> new<04:02:41.840> likes<04:02:42.159> array<04:02:42.760> so<04:02:42.960> we<04:02:43.120> know 04:02:43.309 --> 04:02:43.319 align:start position:0% likes of the new likes array so we know 04:02:43.319 --> 04:02:46.229 align:start position:0% likes of the new likes array so we know what<04:02:43.439> is<04:02:43.560> the<04:02:43.680> new<04:02:43.920> like<04:02:44.319> count<04:02:45.319> finally<04:02:45.960> if 04:02:46.229 --> 04:02:46.239 align:start position:0% what is the new like count finally if 04:02:46.239 --> 04:02:48.830 align:start position:0% what is the new like count finally if there<04:02:46.399> is<04:02:46.720> no<04:02:47.239> updated<04:02:47.760> post<04:02:48.319> there<04:02:48.479> must<04:02:48.680> be 04:02:48.830 --> 04:02:48.840 align:start position:0% there is no updated post there must be 04:02:48.840 --> 04:02:51.429 align:start position:0% there is no updated post there must be some<04:02:49.040> kind<04:02:49.159> of<04:02:49.239> an<04:02:49.399> error<04:02:49.800> so<04:02:50.000> we<04:02:50.080> can<04:02:50.279> throw<04:02:50.520> it 04:02:51.429 --> 04:02:51.439 align:start position:0% some kind of an error so we can throw it 04:02:51.439 --> 04:02:55.510 align:start position:0% some kind of an error so we can throw it and<04:02:51.800> we<04:02:51.920> can<04:02:52.120> then<04:02:52.880> return<04:02:53.880> the<04:02:54.120> updated 04:02:55.510 --> 04:02:55.520 align:start position:0% and we can then return the updated 04:02:55.520 --> 04:02:57.590 align:start position:0% and we can then return the updated post<04:02:56.520> and<04:02:56.720> this<04:02:56.800> is<04:02:56.920> it<04:02:57.080> for<04:02:57.199> the<04:02:57.359> like 04:02:57.590 --> 04:02:57.600 align:start position:0% post and this is it for the like 04:02:57.600 --> 04:02:59.389 align:start position:0% post and this is it for the like functionality<04:02:58.520> of<04:02:58.680> course<04:02:58.920> we'll<04:02:59.120> have<04:02:59.239> to 04:02:59.389 --> 04:02:59.399 align:start position:0% functionality of course we'll have to 04:02:59.399 --> 04:03:01.269 align:start position:0% functionality of course we'll have to consume<04:02:59.880> this<04:03:00.040> function<04:03:00.439> within<04:03:00.680> our<04:03:00.880> react 04:03:01.269 --> 04:03:01.279 align:start position:0% consume this function within our react 04:03:01.279 --> 04:03:04.110 align:start position:0% consume this function within our react query<04:03:01.720> as<04:03:01.880> well<04:03:02.319> and<04:03:02.479> make<04:03:02.640> it<04:03:02.760> a<04:03:03.000> mutation<04:03:04.000> but 04:03:04.110 --> 04:03:04.120 align:start position:0% query as well and make it a mutation but 04:03:04.120 --> 04:03:06.429 align:start position:0% query as well and make it a mutation but we're<04:03:04.279> going<04:03:04.359> to<04:03:04.520> do<04:03:04.720> that<04:03:04.920> soon<04:03:05.640> for<04:03:05.920> now 04:03:06.429 --> 04:03:06.439 align:start position:0% we're going to do that soon for now 04:03:06.439 --> 04:03:08.189 align:start position:0% we're going to do that soon for now believe<04:03:06.680> it<04:03:06.800> or<04:03:06.960> not<04:03:07.279> the<04:03:07.439> save<04:03:07.760> post 04:03:08.189 --> 04:03:08.199 align:start position:0% believe it or not the save post 04:03:08.199 --> 04:03:10.590 align:start position:0% believe it or not the save post functionality<04:03:08.840> is<04:03:09.120> quite<04:03:09.399> similar<04:03:10.120> so<04:03:10.279> we<04:03:10.399> can 04:03:10.590 --> 04:03:10.600 align:start position:0% functionality is quite similar so we can 04:03:10.600 --> 04:03:13.830 align:start position:0% functionality is quite similar so we can simply<04:03:10.960> duplicate<04:03:11.600> this<04:03:11.800> function<04:03:12.399> below<04:03:13.399> and 04:03:13.830 --> 04:03:13.840 align:start position:0% simply duplicate this function below and 04:03:13.840 --> 04:03:18.070 align:start position:0% simply duplicate this function below and call<04:03:14.080> it<04:03:14.560> save<04:03:15.600> post<04:03:16.600> to<04:03:16.800> save<04:03:17.040> a<04:03:17.199> post<04:03:17.680> we<04:03:17.840> do 04:03:18.070 --> 04:03:18.080 align:start position:0% call it save post to save a post we do 04:03:18.080 --> 04:03:21.229 align:start position:0% call it save post to save a post we do need<04:03:18.439> a<04:03:18.680> post<04:03:19.000> ID<04:03:19.800> but<04:03:19.960> we<04:03:20.120> also<04:03:20.359> need<04:03:20.640> a<04:03:20.840> user 04:03:21.229 --> 04:03:21.239 align:start position:0% need a post ID but we also need a user 04:03:21.239 --> 04:03:24.590 align:start position:0% need a post ID but we also need a user ID<04:03:22.120> of<04:03:22.279> the<04:03:22.439> user<04:03:23.159> that's<04:03:23.399> saving<04:03:23.800> that<04:03:24.000> post 04:03:24.590 --> 04:03:24.600 align:start position:0% ID of the user that's saving that post 04:03:24.600 --> 04:03:26.990 align:start position:0% ID of the user that's saving that post of<04:03:24.720> a<04:03:24.920> type<04:03:25.199> string<04:03:26.120> then<04:03:26.520> instead<04:03:26.800> of 04:03:26.990 --> 04:03:27.000 align:start position:0% of a type string then instead of 04:03:27.000 --> 04:03:29.349 align:start position:0% of a type string then instead of updating<04:03:27.439> the<04:03:27.600> post<04:03:28.040> we're<04:03:28.239> going<04:03:28.399> to<04:03:28.680> create 04:03:29.349 --> 04:03:29.359 align:start position:0% updating the post we're going to create 04:03:29.359 --> 04:03:32.510 align:start position:0% updating the post we're going to create a<04:03:29.520> new<04:03:29.800> document<04:03:30.479> so<04:03:30.640> we<04:03:30.720> can<04:03:30.880> say<04:03:31.239> do<04:03:31.680> create 04:03:32.510 --> 04:03:32.520 align:start position:0% a new document so we can say do create 04:03:32.520 --> 04:03:35.990 align:start position:0% a new document so we can say do create document<04:03:33.520> we<04:03:33.720> pass<04:03:34.040> the<04:03:34.199> database<04:03:34.720> ID<04:03:35.720> but 04:03:35.990 --> 04:03:36.000 align:start position:0% document we pass the database ID but 04:03:36.000 --> 04:03:38.110 align:start position:0% document we pass the database ID but it's<04:03:36.159> not<04:03:36.359> going<04:03:36.520> to<04:03:36.600> be<04:03:36.760> a<04:03:36.920> post<04:03:37.279> collection 04:03:38.110 --> 04:03:38.120 align:start position:0% it's not going to be a post collection 04:03:38.120 --> 04:03:41.229 align:start position:0% it's not going to be a post collection it's<04:03:38.239> going<04:03:38.399> to<04:03:38.520> be<04:03:38.720> a<04:03:39.000> saves<04:03:39.840> collection<04:03:40.319> ID 04:03:41.229 --> 04:03:41.239 align:start position:0% it's going to be a saves collection ID 04:03:41.239 --> 04:03:42.870 align:start position:0% it's going to be a saves collection ID in<04:03:41.439> this<04:03:41.640> case<04:03:41.840> we<04:03:41.960> don't<04:03:42.239> already<04:03:42.520> have<04:03:42.640> an 04:03:42.870 --> 04:03:42.880 align:start position:0% in this case we don't already have an 04:03:42.880 --> 04:03:45.349 align:start position:0% in this case we don't already have an existing<04:03:43.359> record<04:03:43.920> of<04:03:44.120> that<04:03:44.359> save<04:03:44.960> so<04:03:45.120> we<04:03:45.239> can 04:03:45.349 --> 04:03:45.359 align:start position:0% existing record of that save so we can 04:03:45.359 --> 04:03:48.910 align:start position:0% existing record of that save so we can create<04:03:45.640> a<04:03:45.760> new<04:03:45.920> one<04:03:46.359> by<04:03:46.479> running<04:03:46.920> id. 04:03:48.910 --> 04:03:48.920 align:start position:0% create a new one by running id. 04:03:48.920 --> 04:03:51.950 align:start position:0% create a new one by running id. unique<04:03:49.920> and<04:03:50.120> then<04:03:50.399> we<04:03:50.560> simply<04:03:50.840> want<04:03:50.960> to<04:03:51.279> pass 04:03:51.950 --> 04:03:51.960 align:start position:0% unique and then we simply want to pass 04:03:51.960 --> 04:03:55.070 align:start position:0% unique and then we simply want to pass the<04:03:52.239> user<04:03:53.239> as<04:03:53.439> the<04:03:53.560> user<04:03:53.920> ID<04:03:54.560> that's<04:03:54.800> actually 04:03:55.070 --> 04:03:55.080 align:start position:0% the user as the user ID that's actually 04:03:55.080 --> 04:03:57.510 align:start position:0% the user as the user ID that's actually saving<04:03:55.479> the<04:03:55.680> post<04:03:56.479> and<04:03:56.680> we<04:03:56.760> want<04:03:56.880> to<04:03:57.080> pass<04:03:57.319> the 04:03:57.510 --> 04:03:57.520 align:start position:0% saving the post and we want to pass the 04:03:57.520 --> 04:04:00.510 align:start position:0% saving the post and we want to pass the post<04:03:58.399> of<04:03:58.560> the<04:03:58.720> post<04:03:59.040> ID<04:03:59.600> so<04:03:59.800> we<04:03:59.920> know<04:04:00.279> which 04:04:00.510 --> 04:04:00.520 align:start position:0% post of the post ID so we know which 04:04:00.520 --> 04:04:01.870 align:start position:0% post of the post ID so we know which post<04:04:00.880> is<04:04:01.040> getting 04:04:01.870 --> 04:04:01.880 align:start position:0% post is getting 04:04:01.880 --> 04:04:04.550 align:start position:0% post is getting saved<04:04:02.880> and<04:04:03.040> this<04:04:03.159> is<04:04:03.359> it<04:04:03.720> we<04:04:03.840> just<04:04:04.159> return<04:04:04.439> the 04:04:04.550 --> 04:04:04.560 align:start position:0% saved and this is it we just return the 04:04:04.560 --> 04:04:07.110 align:start position:0% saved and this is it we just return the updated<04:04:05.040> post<04:04:06.000> and<04:04:06.239> finally<04:04:06.680> we're<04:04:06.840> going<04:04:06.960> to 04:04:07.110 --> 04:04:07.120 align:start position:0% updated post and finally we're going to 04:04:07.120 --> 04:04:09.149 align:start position:0% updated post and finally we're going to also<04:04:07.319> need<04:04:07.479> to<04:04:07.600> be<04:04:07.680> able<04:04:08.120> delete<04:04:08.640> that<04:04:08.800> saved 04:04:09.149 --> 04:04:09.159 align:start position:0% also need to be able delete that saved 04:04:09.159 --> 04:04:10.830 align:start position:0% also need to be able delete that saved post<04:04:09.479> from<04:04:09.600> the<04:04:09.760> database<04:04:10.479> so<04:04:10.640> let's 04:04:10.830 --> 04:04:10.840 align:start position:0% post from the database so let's 04:04:10.840 --> 04:04:13.750 align:start position:0% post from the database so let's duplicate<04:04:11.399> this<04:04:11.720> one<04:04:12.040> final<04:04:12.520> time<04:04:13.319> and<04:04:13.479> let's 04:04:13.750 --> 04:04:13.760 align:start position:0% duplicate this one final time and let's 04:04:13.760 --> 04:04:16.670 align:start position:0% duplicate this one final time and let's recall<04:04:14.239> it<04:04:14.560> or<04:04:14.800> rename<04:04:15.199> it<04:04:15.600> as 04:04:16.670 --> 04:04:16.680 align:start position:0% recall it or rename it as 04:04:16.680 --> 04:04:21.149 align:start position:0% recall it or rename it as delete<04:04:17.920> saved<04:04:19.040> post<04:04:20.040> the<04:04:20.159> only<04:04:20.399> thing<04:04:20.520> we<04:04:20.680> need 04:04:21.149 --> 04:04:21.159 align:start position:0% delete saved post the only thing we need 04:04:21.159 --> 04:04:23.990 align:start position:0% delete saved post the only thing we need is<04:04:21.399> the<04:04:21.640> saved<04:04:22.159> record<04:04:22.560> ID<04:04:23.279> so<04:04:23.399> we<04:04:23.520> can<04:04:23.640> say 04:04:23.990 --> 04:04:24.000 align:start position:0% is the saved record ID so we can say 04:04:24.000 --> 04:04:27.389 align:start position:0% is the saved record ID so we can say saved<04:04:24.720> record<04:04:25.439> ID<04:04:26.000> of<04:04:26.159> a<04:04:26.359> type 04:04:27.389 --> 04:04:27.399 align:start position:0% saved record ID of a type 04:04:27.399 --> 04:04:30.830 align:start position:0% saved record ID of a type string<04:04:28.399> in<04:04:28.640> this<04:04:28.840> case<04:04:29.120> we<04:04:29.239> want<04:04:29.399> to<04:04:29.840> remove<04:04:30.600> or 04:04:30.830 --> 04:04:30.840 align:start position:0% string in this case we want to remove or 04:04:30.840 --> 04:04:32.870 align:start position:0% string in this case we want to remove or delete<04:04:31.359> a<04:04:31.600> document<04:04:32.239> so<04:04:32.399> we<04:04:32.479> can<04:04:32.600> say 04:04:32.870 --> 04:04:32.880 align:start position:0% delete a document so we can say 04:04:32.880 --> 04:04:35.990 align:start position:0% delete a document so we can say databases.<04:04:33.880> delete<04:04:34.760> document<04:04:35.760> when<04:04:35.880> you 04:04:35.990 --> 04:04:36.000 align:start position:0% databases. delete document when you 04:04:36.000 --> 04:04:38.550 align:start position:0% databases. delete document when you delete<04:04:36.319> a<04:04:36.520> document<04:04:37.040> you<04:04:37.199> get<04:04:37.439> back<04:04:37.640> a<04:04:38.040> status 04:04:38.550 --> 04:04:38.560 align:start position:0% delete a document you get back a status 04:04:38.560 --> 04:04:41.349 align:start position:0% delete a document you get back a status code<04:04:39.560> and<04:04:39.680> to<04:04:39.880> delete<04:04:40.199> it<04:04:40.520> you<04:04:40.680> simply<04:04:40.960> have<04:04:41.120> to 04:04:41.349 --> 04:04:41.359 align:start position:0% code and to delete it you simply have to 04:04:41.359 --> 04:04:45.590 align:start position:0% code and to delete it you simply have to pass<04:04:42.000> the<04:04:42.239> saved<04:04:43.000> record<04:04:43.720> ID<04:04:44.560> as<04:04:44.680> the<04:04:44.840> third 04:04:45.590 --> 04:04:45.600 align:start position:0% pass the saved record ID as the third 04:04:45.600 --> 04:04:48.229 align:start position:0% pass the saved record ID as the third parameter<04:04:46.600> then<04:04:46.960> we<04:04:47.080> can<04:04:47.279> check<04:04:47.720> if<04:04:47.880> there's 04:04:48.229 --> 04:04:48.239 align:start position:0% parameter then we can check if there's 04:04:48.239 --> 04:04:50.990 align:start position:0% parameter then we can check if there's no<04:04:48.760> status<04:04:49.159> code<04:04:49.600> we<04:04:49.720> can<04:04:49.880> throw<04:04:50.080> an<04:04:50.239> error 04:04:50.990 --> 04:04:51.000 align:start position:0% no status code we can throw an error 04:04:51.000 --> 04:04:53.189 align:start position:0% no status code we can throw an error else<04:04:51.560> we<04:04:51.680> can<04:04:52.000> return<04:04:52.520> something<04:04:52.840> like<04:04:52.960> a 04:04:53.189 --> 04:04:53.199 align:start position:0% else we can return something like a 04:04:53.199 --> 04:04:55.429 align:start position:0% else we can return something like a status<04:04:53.920> of 04:04:55.429 --> 04:04:55.439 align:start position:0% status of 04:04:55.439 --> 04:04:58.269 align:start position:0% status of okay<04:04:56.439> and<04:04:56.680> now<04:04:57.120> we<04:04:57.319> have<04:04:57.560> these<04:04:57.920> three 04:04:58.269 --> 04:04:58.279 align:start position:0% okay and now we have these three 04:04:58.279 --> 04:05:00.710 align:start position:0% okay and now we have these three functions<04:04:58.960> or<04:04:59.120> we<04:04:59.239> can<04:04:59.399> call<04:04:59.600> them<04:04:59.800> mutations 04:05:00.710 --> 04:05:00.720 align:start position:0% functions or we can call them mutations 04:05:00.720 --> 04:05:03.309 align:start position:0% functions or we can call them mutations that<04:05:00.840> we<04:05:00.960> can<04:05:01.159> use<04:05:01.640> within<04:05:01.960> our<04:05:02.159> react<04:05:02.560> query 04:05:03.309 --> 04:05:03.319 align:start position:0% that we can use within our react query 04:05:03.319 --> 04:05:05.950 align:start position:0% that we can use within our react query to<04:05:03.520> then<04:05:03.720> use<04:05:04.000> them<04:05:04.319> within<04:05:04.640> our<04:05:04.920> post<04:05:05.319> stats 04:05:05.950 --> 04:05:05.960 align:start position:0% to then use them within our post stats 04:05:05.960 --> 04:05:09.910 align:start position:0% to then use them within our post stats component<04:05:06.960> so<04:05:07.479> let's<04:05:07.720> go<04:05:08.000> go<04:05:08.159> to<04:05:08.439> our<04:05:09.080> queries 04:05:09.910 --> 04:05:09.920 align:start position:0% component so let's go go to our queries 04:05:09.920 --> 04:05:13.349 align:start position:0% component so let's go go to our queries and<04:05:10.439> mutations<04:05:11.439> and<04:05:11.720> go<04:05:12.000> right<04:05:12.199> below<04:05:12.640> our<04:05:12.960> use 04:05:13.349 --> 04:05:13.359 align:start position:0% and mutations and go right below our use 04:05:13.359 --> 04:05:16.389 align:start position:0% and mutations and go right below our use create<04:05:13.760> post<04:05:14.120> and<04:05:14.279> use<04:05:14.600> get<04:05:14.840> recent<04:05:15.399> posts 04:05:16.389 --> 04:05:16.399 align:start position:0% create post and use get recent posts 04:05:16.399 --> 04:05:20.990 align:start position:0% create post and use get recent posts here<04:05:16.800> we<04:05:16.920> can<04:05:17.239> export<04:05:18.040> const<04:05:18.840> use<04:05:19.479> like<04:05:20.000> post 04:05:20.990 --> 04:05:21.000 align:start position:0% here we can export const use like post 04:05:21.000 --> 04:05:23.510 align:start position:0% here we can export const use like post which<04:05:21.120> is<04:05:21.239> going<04:05:21.399> to<04:05:21.520> be<04:05:21.720> equal<04:05:21.960> to<04:05:22.120> an<04:05:22.239> eror 04:05:23.510 --> 04:05:23.520 align:start position:0% which is going to be equal to an eror 04:05:23.520 --> 04:05:26.670 align:start position:0% which is going to be equal to an eror function<04:05:24.520> there<04:05:24.880> we<04:05:25.000> can<04:05:25.199> define<04:05:25.680> a<04:05:25.920> query 04:05:26.670 --> 04:05:26.680 align:start position:0% function there we can define a query 04:05:26.680 --> 04:05:29.670 align:start position:0% function there we can define a query client<04:05:27.680> by<04:05:27.800> saying<04:05:28.159> con<04:05:28.560> query<04:05:28.880> client<04:05:29.479> is 04:05:29.670 --> 04:05:29.680 align:start position:0% client by saying con query client is 04:05:29.680 --> 04:05:33.469 align:start position:0% client by saying con query client is equal<04:05:30.000> to<04:05:30.479> use<04:05:31.080> Query<04:05:31.920> client<04:05:32.920> and<04:05:33.120> then<04:05:33.359> we 04:05:33.469 --> 04:05:33.479 align:start position:0% equal to use Query client and then we 04:05:33.479 --> 04:05:36.910 align:start position:0% equal to use Query client and then we want<04:05:33.640> to<04:05:33.960> return<04:05:34.520> the<04:05:34.720> use<04:05:35.640> mutation<04:05:36.640> we<04:05:36.760> need 04:05:36.910 --> 04:05:36.920 align:start position:0% want to return the use mutation we need 04:05:36.920 --> 04:05:40.149 align:start position:0% want to return the use mutation we need to<04:05:37.159> pass<04:05:37.399> a<04:05:37.520> mutation<04:05:38.239> function<04:05:39.080> like<04:05:39.319> so 04:05:40.149 --> 04:05:40.159 align:start position:0% to pass a mutation function like so 04:05:40.159 --> 04:05:42.429 align:start position:0% to pass a mutation function like so that's<04:05:40.359> going<04:05:40.520> to<04:05:40.680> get<04:05:40.880> as<04:05:40.960> a<04:05:41.159> parameter<04:05:42.040> one 04:05:42.429 --> 04:05:42.439 align:start position:0% that's going to get as a parameter one 04:05:42.439 --> 04:05:45.950 align:start position:0% that's going to get as a parameter one object<04:05:42.920> of<04:05:43.279> post<04:05:43.720> ID<04:05:44.640> as<04:05:44.760> well<04:05:44.880> as<04:05:45.040> the<04:05:45.199> likes 04:05:45.950 --> 04:05:45.960 align:start position:0% object of post ID as well as the likes 04:05:45.960 --> 04:05:49.630 align:start position:0% object of post ID as well as the likes array<04:05:46.960> that's<04:05:47.199> going<04:05:47.359> to<04:05:47.520> be<04:05:47.760> of<04:05:47.920> a<04:05:48.199> type<04:05:49.040> post 04:05:49.630 --> 04:05:49.640 align:start position:0% array that's going to be of a type post 04:05:49.640 --> 04:05:54.229 align:start position:0% array that's going to be of a type post ID<04:05:50.640> is<04:05:50.800> of<04:05:50.960> a<04:05:51.120> type<04:05:51.399> string<04:05:52.399> and<04:05:52.720> likes<04:05:53.239> array 04:05:54.229 --> 04:05:54.239 align:start position:0% ID is of a type string and likes array 04:05:54.239 --> 04:05:57.349 align:start position:0% ID is of a type string and likes array is<04:05:54.520> of<04:05:54.640> a<04:05:54.880> type<04:05:55.359> array<04:05:55.760> of<04:05:56.080> strings<04:05:57.080> and<04:05:57.199> then 04:05:57.349 --> 04:05:57.359 align:start position:0% is of a type array of strings and then 04:05:57.359 --> 04:05:59.510 align:start position:0% is of a type array of strings and then we<04:05:57.439> can<04:05:57.600> have<04:05:57.720> a<04:05:57.880> function<04:05:58.199> that<04:05:58.359> we<04:05:58.439> can<04:05:58.600> call 04:05:59.510 --> 04:05:59.520 align:start position:0% we can have a function that we can call 04:05:59.520 --> 04:06:01.429 align:start position:0% we can have a function that we can call the<04:05:59.640> function<04:05:59.920> we're<04:06:00.080> going<04:06:00.159> to<04:06:00.319> call<04:06:00.920> is<04:06:01.159> the 04:06:01.429 --> 04:06:01.439 align:start position:0% the function we're going to call is the 04:06:01.439 --> 04:06:05.750 align:start position:0% the function we're going to call is the like<04:06:02.040> post<04:06:02.760> coming<04:06:03.080> from<04:06:03.439> aight<04:06:04.319> API<04:06:05.319> and<04:06:05.520> to 04:06:05.750 --> 04:06:05.760 align:start position:0% like post coming from aight API and to 04:06:05.760 --> 04:06:08.389 align:start position:0% like post coming from aight API and to it<04:06:06.040> we<04:06:06.159> can<04:06:06.319> simply<04:06:06.640> pass<04:06:06.920> the<04:06:07.080> post<04:06:07.439> ID 04:06:08.389 --> 04:06:08.399 align:start position:0% it we can simply pass the post ID 04:06:08.399 --> 04:06:11.269 align:start position:0% it we can simply pass the post ID as<04:06:08.560> well<04:06:08.800> as<04:06:08.960> the<04:06:09.159> likes<04:06:09.640> array<04:06:10.640> and<04:06:10.840> now<04:06:11.080> it's 04:06:11.269 --> 04:06:11.279 align:start position:0% as well as the likes array and now it's 04:06:11.279 --> 04:06:13.149 align:start position:0% as well as the likes array and now it's no<04:06:11.439> longer<04:06:11.720> complaining<04:06:12.399> because<04:06:12.600> it<04:06:12.760> gets 04:06:13.149 --> 04:06:13.159 align:start position:0% no longer complaining because it gets 04:06:13.159 --> 04:06:15.910 align:start position:0% no longer complaining because it gets exactly<04:06:13.680> what<04:06:13.800> it<04:06:14.000> needs<04:06:15.000> so<04:06:15.239> now<04:06:15.399> we<04:06:15.520> have<04:06:15.680> our 04:06:15.910 --> 04:06:15.920 align:start position:0% exactly what it needs so now we have our 04:06:15.920 --> 04:06:18.590 align:start position:0% exactly what it needs so now we have our used<04:06:16.640> mutation<04:06:17.640> but<04:06:17.920> the<04:06:18.080> second<04:06:18.319> thing<04:06:18.479> we 04:06:18.590 --> 04:06:18.600 align:start position:0% used mutation but the second thing we 04:06:18.600 --> 04:06:21.030 align:start position:0% used mutation but the second thing we can<04:06:18.800> pass<04:06:19.040> to<04:06:19.159> our<04:06:19.279> use<04:06:19.560> mutation<04:06:20.479> which<04:06:20.680> goes 04:06:21.030 --> 04:06:21.040 align:start position:0% can pass to our use mutation which goes 04:06:21.040 --> 04:06:24.149 align:start position:0% can pass to our use mutation which goes right<04:06:21.279> here<04:06:21.880> after<04:06:22.239> our<04:06:22.680> like<04:06:23.000> post<04:06:23.640> after<04:06:23.920> our 04:06:24.149 --> 04:06:24.159 align:start position:0% right here after our like post after our 04:06:24.159 --> 04:06:27.750 align:start position:0% right here after our like post after our comma<04:06:24.880> is<04:06:25.159> on<04:06:25.520> success<04:06:26.520> so<04:06:26.720> the<04:06:26.920> question<04:06:27.239> is 04:06:27.750 --> 04:06:27.760 align:start position:0% comma is on success so the question is 04:06:27.760 --> 04:06:30.670 align:start position:0% comma is on success so the question is what<04:06:27.960> do<04:06:28.120> we<04:06:28.279> want<04:06:28.439> to<04:06:28.640> do<04:06:29.040> on<04:06:29.479> success<04:06:30.479> where 04:06:30.670 --> 04:06:30.680 align:start position:0% what do we want to do on success where 04:06:30.680 --> 04:06:32.189 align:start position:0% what do we want to do on success where we<04:06:30.840> get<04:06:31.000> some<04:06:31.199> data<04:06:31.520> back<04:06:31.840> once<04:06:32.000> we 04:06:32.189 --> 04:06:32.199 align:start position:0% we get some data back once we 04:06:32.199 --> 04:06:34.630 align:start position:0% we get some data back once we successfully<04:06:32.680> do<04:06:32.840> an<04:06:33.080> action<04:06:34.080> well<04:06:34.359> we<04:06:34.479> want 04:06:34.630 --> 04:06:34.640 align:start position:0% successfully do an action well we want 04:06:34.640 --> 04:06:37.389 align:start position:0% successfully do an action well we want to<04:06:35.000> invalidate<04:06:35.840> some<04:06:36.080> queries<04:06:36.840> so<04:06:36.960> we<04:06:37.080> can<04:06:37.159> say 04:06:37.389 --> 04:06:37.399 align:start position:0% to invalidate some queries so we can say 04:06:37.399 --> 04:06:38.830 align:start position:0% to invalidate some queries so we can say query 04:06:38.830 --> 04:06:38.840 align:start position:0% query 04:06:38.840 --> 04:06:41.070 align:start position:0% query client<04:06:39.840> do 04:06:41.070 --> 04:06:41.080 align:start position:0% client do 04:06:41.080 --> 04:06:44.469 align:start position:0% client do invalidate<04:06:42.319> queries<04:06:43.319> in<04:06:43.520> this<04:06:43.760> case<04:06:44.279> it's 04:06:44.469 --> 04:06:44.479 align:start position:0% invalidate queries in this case it's 04:06:44.479 --> 04:06:49.070 align:start position:0% invalidate queries in this case it's going<04:06:44.640> to<04:06:44.840> be<04:06:45.120> a<04:06:45.319> query<04:06:46.199> key<04:06:47.279> of 04:06:49.070 --> 04:06:49.080 align:start position:0% going to be a query key of 04:06:49.080 --> 04:06:51.309 align:start position:0% going to be a query key of query<04:06:50.080> unor 04:06:51.309 --> 04:06:51.319 align:start position:0% query unor 04:06:51.319 --> 04:06:56.670 align:start position:0% query unor keys.<04:06:52.319> getet<04:06:53.120> poost<04:06:53.880> by<04:06:54.359> ID<04:06:55.359> with<04:06:55.640> a<04:06:55.880> data<04:06:56.399> of 04:06:56.670 --> 04:06:56.680 align:start position:0% keys. getet poost by ID with a data of 04:06:56.680 --> 04:06:59.710 align:start position:0% keys. getet poost by ID with a data of that<04:06:56.960> specific<04:06:57.479> post<04:06:58.199> that<04:06:58.359> we<04:06:58.600> updated<04:06:59.479> like 04:06:59.710 --> 04:06:59.720 align:start position:0% that specific post that we updated like 04:06:59.720 --> 04:07:02.950 align:start position:0% that specific post that we updated like this<04:07:00.680> so<04:07:00.960> what<04:07:01.080> does<04:07:01.319> this<04:07:01.439> mean<04:07:02.439> well<04:07:02.720> as<04:07:02.840> I 04:07:02.950 --> 04:07:02.960 align:start position:0% this so what does this mean well as I 04:07:02.960 --> 04:07:05.910 align:start position:0% this so what does this mean well as I said<04:07:03.239> before<04:07:04.040> every<04:07:04.399> single<04:07:04.880> post<04:07:05.439> that<04:07:05.600> we 04:07:05.910 --> 04:07:05.920 align:start position:0% said before every single post that we 04:07:05.920 --> 04:07:08.309 align:start position:0% said before every single post that we get<04:07:06.239> or<04:07:06.479> fetch<04:07:06.880> using<04:07:07.239> react 04:07:08.309 --> 04:07:08.319 align:start position:0% get or fetch using react 04:07:08.319 --> 04:07:10.910 align:start position:0% get or fetch using react is<04:07:08.479> going<04:07:08.640> to<04:07:08.760> be<04:07:09.000> cached<04:07:09.800> which<04:07:09.920> is<04:07:10.159> amazing 04:07:10.910 --> 04:07:10.920 align:start position:0% is going to be cached which is amazing 04:07:10.920 --> 04:07:13.269 align:start position:0% is going to be cached which is amazing because<04:07:11.159> on<04:07:11.439> subsequent<04:07:12.120> reloads<04:07:12.960> it<04:07:13.080> will 04:07:13.269 --> 04:07:13.279 align:start position:0% because on subsequent reloads it will 04:07:13.279 --> 04:07:15.030 align:start position:0% because on subsequent reloads it will already<04:07:13.640> have<04:07:13.800> them<04:07:14.040> saved<04:07:14.640> and<04:07:14.760> it's<04:07:14.920> going 04:07:15.030 --> 04:07:15.040 align:start position:0% already have them saved and it's going 04:07:15.040 --> 04:07:17.149 align:start position:0% already have them saved and it's going to<04:07:15.199> take<04:07:15.399> so<04:07:15.680> much<04:07:15.960> less<04:07:16.239> time<04:07:16.600> to<04:07:16.760> load<04:07:17.040> them 04:07:17.149 --> 04:07:17.159 align:start position:0% to take so much less time to load them 04:07:17.159 --> 04:07:19.990 align:start position:0% to take so much less time to load them on<04:07:17.319> the<04:07:17.479> screen<04:07:18.479> but<04:07:19.239> if<04:07:19.359> you<04:07:19.600> update 04:07:19.990 --> 04:07:20.000 align:start position:0% on the screen but if you update 04:07:20.000 --> 04:07:22.030 align:start position:0% on the screen but if you update something<04:07:20.279> about<04:07:20.560> that<04:07:20.800> post<04:07:21.319> such<04:07:21.479> as<04:07:21.680> the 04:07:22.030 --> 04:07:22.040 align:start position:0% something about that post such as the 04:07:22.040 --> 04:07:24.870 align:start position:0% something about that post such as the like<04:07:22.359> count<04:07:23.159> and<04:07:23.319> then<04:07:23.439> if<04:07:23.560> you<04:07:23.760> go<04:07:24.040> into<04:07:24.720> the 04:07:24.870 --> 04:07:24.880 align:start position:0% like count and then if you go into the 04:07:24.880 --> 04:07:27.229 align:start position:0% like count and then if you go into the post<04:07:25.239> details<04:07:26.239> it's<04:07:26.399> still<04:07:26.600> going<04:07:26.800> to<04:07:27.000> have 04:07:27.229 --> 04:07:27.239 align:start position:0% post details it's still going to have 04:07:27.239 --> 04:07:30.149 align:start position:0% post details it's still going to have the<04:07:27.439> same<04:07:27.800> old<04:07:28.199> like<04:07:28.560> count<04:07:29.239> the<04:07:29.399> one<04:07:29.600> it<04:07:29.840> had 04:07:30.149 --> 04:07:30.159 align:start position:0% the same old like count the one it had 04:07:30.159 --> 04:07:34.429 align:start position:0% the same old like count the one it had before<04:07:30.840> you<04:07:31.159> actually<04:07:31.520> updated<04:07:32.560> it<04:07:33.560> so<04:07:33.920> to<04:07:34.119> fix 04:07:34.429 --> 04:07:34.439 align:start position:0% before you actually updated it so to fix 04:07:34.439 --> 04:07:37.030 align:start position:0% before you actually updated it so to fix this<04:07:34.720> we<04:07:34.880> have<04:07:34.960> to<04:07:35.239> invalidate<04:07:36.159> the<04:07:36.319> fetch<04:07:36.800> to 04:07:37.030 --> 04:07:37.040 align:start position:0% this we have to invalidate the fetch to 04:07:37.040 --> 04:07:40.030 align:start position:0% this we have to invalidate the fetch to theose<04:07:37.439> detail<04:07:37.680> details<04:07:38.439> and<04:07:38.600> say<04:07:39.000> hey<04:07:39.880> if 04:07:40.030 --> 04:07:40.040 align:start position:0% theose detail details and say hey if 04:07:40.040 --> 04:07:42.550 align:start position:0% theose detail details and say hey if this<04:07:40.239> changes<04:07:40.960> if<04:07:41.080> you<04:07:41.239> like<04:07:41.439> the<04:07:41.640> post<04:07:42.319> the 04:07:42.550 --> 04:07:42.560 align:start position:0% this changes if you like the post the 04:07:42.560 --> 04:07:45.109 align:start position:0% this changes if you like the post the next<04:07:42.840> time<04:07:43.000> you<04:07:43.199> open<04:07:43.479> up<04:07:43.680> the<04:07:43.880> post<04:07:44.560> please 04:07:45.109 --> 04:07:45.119 align:start position:0% next time you open up the post please 04:07:45.119 --> 04:07:47.469 align:start position:0% next time you open up the post please update<04:07:45.720> the<04:07:45.960> like<04:07:46.199> count<04:07:47.000> that<04:07:47.159> way<04:07:47.319> it's 04:07:47.469 --> 04:07:47.479 align:start position:0% update the like count that way it's 04:07:47.479 --> 04:07:49.790 align:start position:0% update the like count that way it's going<04:07:47.640> to<04:07:47.760> be<04:07:48.159> reflected<04:07:49.159> and<04:07:49.359> we<04:07:49.479> have<04:07:49.600> to 04:07:49.790 --> 04:07:49.800 align:start position:0% going to be reflected and we have to 04:07:49.800 --> 04:07:51.870 align:start position:0% going to be reflected and we have to invalidate<04:07:50.439> a<04:07:50.560> couple<04:07:50.800> of<04:07:50.960> other<04:07:51.159> queries<04:07:51.680> as 04:07:51.870 --> 04:07:51.880 align:start position:0% invalidate a couple of other queries as 04:07:51.880 --> 04:07:54.469 align:start position:0% invalidate a couple of other queries as well<04:07:52.319> so<04:07:52.520> let's<04:07:52.800> copy<04:07:53.119> this<04:07:53.359> one<04:07:53.760> two<04:07:54.199> three 04:07:54.469 --> 04:07:54.479 align:start position:0% well so let's copy this one two three 04:07:54.479 --> 04:07:57.910 align:start position:0% well so let's copy this one two three more<04:07:54.920> times<04:07:55.920> the<04:07:56.080> second<04:07:56.399> one<04:07:56.680> is<04:07:56.840> going<04:07:57.040> to<04:07:57.239> be 04:07:57.910 --> 04:07:57.920 align:start position:0% more times the second one is going to be 04:07:57.920 --> 04:08:01.070 align:start position:0% more times the second one is going to be get<04:07:58.520> recent<04:07:59.319> posts<04:08:00.199> so<04:08:00.319> if<04:08:00.439> you<04:08:00.520> just<04:08:00.680> reload 04:08:01.070 --> 04:08:01.080 align:start position:0% get recent posts so if you just reload 04:08:01.080 --> 04:08:02.950 align:start position:0% get recent posts so if you just reload the<04:08:01.199> home<04:08:01.560> you<04:08:01.720> need<04:08:01.880> to<04:08:02.000> be<04:08:02.119> able<04:08:02.319> to<04:08:02.439> see<04:08:02.800> a 04:08:02.950 --> 04:08:02.960 align:start position:0% the home you need to be able to see a 04:08:02.960 --> 04:08:06.750 align:start position:0% the home you need to be able to see a new<04:08:03.199> updated<04:08:03.680> like<04:08:04.000> count<04:08:05.000> then<04:08:05.720> get<04:08:06.080> posts 04:08:06.750 --> 04:08:06.760 align:start position:0% new updated like count then get posts 04:08:06.760 --> 04:08:10.189 align:start position:0% new updated like count then get posts just<04:08:06.960> in<04:08:07.119> general<04:08:08.040> and<04:08:08.199> then<04:08:08.840> get<04:08:09.520> current 04:08:10.189 --> 04:08:10.199 align:start position:0% just in general and then get current 04:08:10.199 --> 04:08:12.349 align:start position:0% just in general and then get current user<04:08:10.920> because<04:08:11.119> if<04:08:11.239> you<04:08:11.359> go<04:08:11.479> to<04:08:11.600> your<04:08:11.840> profile 04:08:12.349 --> 04:08:12.359 align:start position:0% user because if you go to your profile 04:08:12.359 --> 04:08:14.429 align:start position:0% user because if you go to your profile you<04:08:12.479> need<04:08:12.640> to<04:08:12.760> be<04:08:12.880> able<04:08:13.080> to<04:08:13.279> see<04:08:13.880> the<04:08:14.040> updated 04:08:14.429 --> 04:08:14.439 align:start position:0% you need to be able to see the updated 04:08:14.439 --> 04:08:17.149 align:start position:0% you need to be able to see the updated like<04:08:14.880> count<04:08:15.880> and<04:08:16.080> in<04:08:16.239> other<04:08:16.520> cases<04:08:16.840> we<04:08:16.960> don't 04:08:17.149 --> 04:08:17.159 align:start position:0% like count and in other cases we don't 04:08:17.159 --> 04:08:19.550 align:start position:0% like count and in other cases we don't have<04:08:17.279> to<04:08:17.479> pass<04:08:17.720> the<04:08:17.880> ID<04:08:18.239> of<04:08:18.359> a<04:08:18.600> specific<04:08:19.000> post 04:08:19.550 --> 04:08:19.560 align:start position:0% have to pass the ID of a specific post 04:08:19.560 --> 04:08:21.910 align:start position:0% have to pass the ID of a specific post because<04:08:19.760> we're<04:08:19.920> fetching<04:08:20.319> many<04:08:20.640> posts<04:08:21.359> so<04:08:21.800> it 04:08:21.910 --> 04:08:21.920 align:start position:0% because we're fetching many posts so it 04:08:21.920 --> 04:08:24.550 align:start position:0% because we're fetching many posts so it doesn't<04:08:22.279> really<04:08:22.520> matter<04:08:23.359> great<04:08:24.159> so<04:08:24.359> this<04:08:24.439> is 04:08:24.550 --> 04:08:24.560 align:start position:0% doesn't really matter great so this is 04:08:24.560 --> 04:08:28.469 align:start position:0% doesn't really matter great so this is the<04:08:24.720> mutation<04:08:25.159> for<04:08:25.359> the<04:08:25.560> use<04:08:26.119> like<04:08:26.920> count<04:08:27.920> now 04:08:28.469 --> 04:08:28.479 align:start position:0% the mutation for the use like count now 04:08:28.479 --> 04:08:31.910 align:start position:0% the mutation for the use like count now as<04:08:28.800> before<04:08:29.399> with<04:08:29.560> the<04:08:29.720> API<04:08:30.279> actions<04:08:31.239> this<04:08:31.439> time 04:08:31.910 --> 04:08:31.920 align:start position:0% as before with the API actions this time 04:08:31.920 --> 04:08:34.510 align:start position:0% as before with the API actions this time the<04:08:32.080> use<04:08:32.600> Save<04:08:33.000> post<04:08:33.399> is<04:08:33.560> going<04:08:33.720> to<04:08:33.840> be<04:08:34.040> similar 04:08:34.510 --> 04:08:34.520 align:start position:0% the use Save post is going to be similar 04:08:34.520 --> 04:08:37.229 align:start position:0% the use Save post is going to be similar to<04:08:34.680> the<04:08:34.840> use<04:08:35.319> like<04:08:35.680> post<04:08:36.239> so<04:08:36.399> we<04:08:36.479> can<04:08:36.720> simply 04:08:37.229 --> 04:08:37.239 align:start position:0% to the use like post so we can simply 04:08:37.239 --> 04:08:40.550 align:start position:0% to the use like post so we can simply dup<04:08:37.560> duplicate<04:08:38.199> this<04:08:38.760> below<04:08:39.760> we<04:08:39.880> can<04:08:40.119> rename 04:08:40.550 --> 04:08:40.560 align:start position:0% dup duplicate this below we can rename 04:08:40.560 --> 04:08:44.990 align:start position:0% dup duplicate this below we can rename it<04:08:41.040> to<04:08:41.560> use<04:08:42.279> Save<04:08:43.279> post<04:08:44.279> and<04:08:44.479> then<04:08:44.760> we're 04:08:44.990 --> 04:08:45.000 align:start position:0% it to use Save post and then we're 04:08:45.000 --> 04:08:47.429 align:start position:0% it to use Save post and then we're getting<04:08:45.319> the<04:08:45.720> post<04:08:46.080> ID<04:08:46.600> as<04:08:46.720> well<04:08:46.840> as<04:08:46.960> the<04:08:47.119> user 04:08:47.429 --> 04:08:47.439 align:start position:0% getting the post ID as well as the user 04:08:47.439 --> 04:08:49.990 align:start position:0% getting the post ID as well as the user ID<04:08:47.920> not<04:08:48.159> the<04:08:48.279> likes<04:08:48.560> array<04:08:49.080> so<04:08:49.239> we<04:08:49.319> can<04:08:49.479> modify 04:08:49.990 --> 04:08:50.000 align:start position:0% ID not the likes array so we can modify 04:08:50.000 --> 04:08:53.229 align:start position:0% ID not the likes array so we can modify right<04:08:50.199> here<04:08:51.119> the<04:08:51.359> type<04:08:51.680> to<04:08:51.880> user<04:08:52.159> ID<04:08:52.560> of<04:08:52.680> a<04:08:52.880> type 04:08:53.229 --> 04:08:53.239 align:start position:0% right here the type to user ID of a type 04:08:53.239 --> 04:08:55.389 align:start position:0% right here the type to user ID of a type string<04:08:54.080> instead<04:08:54.359> of<04:08:54.479> calling<04:08:54.800> like<04:08:55.119> post 04:08:55.389 --> 04:08:55.399 align:start position:0% string instead of calling like post 04:08:55.399 --> 04:08:57.030 align:start position:0% string instead of calling like post we're<04:08:55.520> going<04:08:55.640> to<04:08:55.760> call<04:08:56.040> Save 04:08:57.030 --> 04:08:57.040 align:start position:0% we're going to call Save 04:08:57.040 --> 04:09:00.309 align:start position:0% we're going to call Save post<04:08:58.040> and<04:08:58.279> we<04:08:58.439> have<04:08:58.520> to<04:08:58.720> import<04:08:59.040> it<04:08:59.199> from<04:08:59.399> aight 04:09:00.309 --> 04:09:00.319 align:start position:0% post and we have to import it from aight 04:09:00.319 --> 04:09:03.950 align:start position:0% post and we have to import it from aight API<04:09:01.319> and<04:09:01.600> we<04:09:01.720> want<04:09:01.800> to<04:09:02.040> pass<04:09:02.319> the<04:09:02.520> user<04:09:02.840> ID<04:09:03.760> as 04:09:03.950 --> 04:09:03.960 align:start position:0% API and we want to pass the user ID as 04:09:03.960 --> 04:09:06.750 align:start position:0% API and we want to pass the user ID as the<04:09:04.119> second<04:09:04.479> parameter<04:09:05.239> or<04:09:05.560> let's<04:09:05.760> be<04:09:05.920> careful 04:09:06.750 --> 04:09:06.760 align:start position:0% the second parameter or let's be careful 04:09:06.760 --> 04:09:09.349 align:start position:0% the second parameter or let's be careful if<04:09:06.880> we<04:09:07.000> have<04:09:07.119> a<04:09:07.239> r<04:09:07.880> it<04:09:07.960> says<04:09:08.239> post<04:09:08.520> ID<04:09:09.040> and<04:09:09.199> then 04:09:09.349 --> 04:09:09.359 align:start position:0% if we have a r it says post ID and then 04:09:09.359 --> 04:09:12.750 align:start position:0% if we have a r it says post ID and then user<04:09:09.840> ID<04:09:10.840> and<04:09:11.040> here<04:09:11.199> it's<04:09:11.399> post<04:09:11.680> ID<04:09:11.960> user<04:09:12.239> ID<04:09:12.640> so 04:09:12.750 --> 04:09:12.760 align:start position:0% user ID and here it's post ID user ID so 04:09:12.760 --> 04:09:14.870 align:start position:0% user ID and here it's post ID user ID so you<04:09:12.880> have<04:09:13.000> to<04:09:13.199> pass<04:09:13.439> them<04:09:13.600> in<04:09:13.720> the<04:09:13.880> same<04:09:14.159> order 04:09:14.870 --> 04:09:14.880 align:start position:0% you have to pass them in the same order 04:09:14.880 --> 04:09:17.429 align:start position:0% you have to pass them in the same order in<04:09:15.040> this<04:09:15.239> case<04:09:15.760> I<04:09:15.880> truly<04:09:16.239> did<04:09:16.520> call<04:09:16.720> it<04:09:16.920> post<04:09:17.199> ID 04:09:17.429 --> 04:09:17.439 align:start position:0% in this case I truly did call it post ID 04:09:17.439 --> 04:09:20.149 align:start position:0% in this case I truly did call it post ID and<04:09:17.560> then<04:09:17.680> the<04:09:17.800> user<04:09:18.080> ID<04:09:18.560> so<04:09:18.760> that's<04:09:19.000> great<04:09:19.880> on 04:09:20.149 --> 04:09:20.159 align:start position:0% and then the user ID so that's great on 04:09:20.159 --> 04:09:22.469 align:start position:0% and then the user ID so that's great on success<04:09:20.800> we<04:09:20.960> don't<04:09:21.159> need<04:09:21.279> to<04:09:21.560> update<04:09:22.239> the 04:09:22.469 --> 04:09:22.479 align:start position:0% success we don't need to update the 04:09:22.479 --> 04:09:25.229 align:start position:0% success we don't need to update the specific<04:09:22.960> post<04:09:23.319> get<04:09:23.560> post<04:09:23.840> by<04:09:23.960> ID<04:09:24.800> but<04:09:25.000> we<04:09:25.119> need 04:09:25.229 --> 04:09:25.239 align:start position:0% specific post get post by ID but we need 04:09:25.239 --> 04:09:27.710 align:start position:0% specific post get post by ID but we need to<04:09:25.439> update<04:09:25.840> all<04:09:26.080> the<04:09:26.199> other<04:09:26.479> three<04:09:27.080> so<04:09:27.439> we<04:09:27.560> can 04:09:27.710 --> 04:09:27.720 align:start position:0% to update all the other three so we can 04:09:27.720 --> 04:09:30.950 align:start position:0% to update all the other three so we can just<04:09:27.880> do<04:09:28.040> it<04:09:28.439> like<04:09:28.720> this<04:09:29.720> and<04:09:30.000> finally<04:09:30.720> the 04:09:30.950 --> 04:09:30.960 align:start position:0% just do it like this and finally the 04:09:30.960 --> 04:09:33.670 align:start position:0% just do it like this and finally the last<04:09:31.199> one<04:09:31.600> use<04:09:31.880> delete<04:09:32.439> saved<04:09:32.880> post<04:09:33.399> is<04:09:33.520> going 04:09:33.670 --> 04:09:33.680 align:start position:0% last one use delete saved post is going 04:09:33.680 --> 04:09:36.349 align:start position:0% last one use delete saved post is going to<04:09:33.840> be<04:09:34.040> the<04:09:34.199> same<04:09:34.680> so<04:09:34.880> we<04:09:34.960> can<04:09:35.159> duplicate<04:09:35.640> it 04:09:36.349 --> 04:09:36.359 align:start position:0% to be the same so we can duplicate it 04:09:36.359 --> 04:09:38.590 align:start position:0% to be the same so we can duplicate it one<04:09:36.560> more<04:09:36.840> time<04:09:37.640> right 04:09:38.590 --> 04:09:38.600 align:start position:0% one more time right 04:09:38.600 --> 04:09:42.269 align:start position:0% one more time right below<04:09:39.600> it's<04:09:39.760> going<04:09:39.920> to<04:09:40.080> be<04:09:40.239> called<04:09:40.760> use 04:09:42.269 --> 04:09:42.279 align:start position:0% below it's going to be called use 04:09:42.279 --> 04:09:45.269 align:start position:0% below it's going to be called use delete<04:09:43.279> saved 04:09:45.269 --> 04:09:45.279 align:start position:0% delete saved 04:09:45.279 --> 04:09:47.990 align:start position:0% delete saved post<04:09:46.279> the<04:09:46.399> only<04:09:46.640> thing<04:09:46.800> we<04:09:46.960> need<04:09:47.560> is<04:09:47.800> one 04:09:47.990 --> 04:09:48.000 align:start position:0% post the only thing we need is one 04:09:48.000 --> 04:09:51.070 align:start position:0% post the only thing we need is one simple<04:09:48.439> parameter<04:09:49.239> right<04:09:49.439> here<04:09:49.840> of<04:09:50.199> Saved 04:09:51.070 --> 04:09:51.080 align:start position:0% simple parameter right here of Saved 04:09:51.080 --> 04:09:55.469 align:start position:0% simple parameter right here of Saved record<04:09:52.399> ID<04:09:53.399> and<04:09:53.760> then<04:09:54.040> we<04:09:54.159> can<04:09:54.399> call<04:09:55.239> a 04:09:55.469 --> 04:09:55.479 align:start position:0% record ID and then we can call a 04:09:55.479 --> 04:09:58.469 align:start position:0% record ID and then we can call a function<04:09:55.960> called<04:09:56.279> delete<04:09:57.239> saved<04:09:57.760> post<04:09:58.359> which 04:09:58.469 --> 04:09:58.479 align:start position:0% function called delete saved post which 04:09:58.479 --> 04:10:01.950 align:start position:0% function called delete saved post which we<04:09:58.600> can<04:09:58.800> import<04:09:59.199> from<04:09:59.800> aite<04:10:00.800> and<04:10:01.040> pass<04:10:01.279> in<04:10:01.800> the 04:10:01.950 --> 04:10:01.960 align:start position:0% we can import from aite and pass in the 04:10:01.960 --> 04:10:03.990 align:start position:0% we can import from aite and pass in the saved<04:10:02.520> record 04:10:03.990 --> 04:10:04.000 align:start position:0% saved record 04:10:04.000 --> 04:10:07.990 align:start position:0% saved record ID<04:10:05.000> this<04:10:05.239> has<04:10:05.359> to<04:10:05.520> be<04:10:05.720> of<04:10:05.880> a<04:10:06.080> type<04:10:06.479> string<04:10:07.840> there 04:10:07.990 --> 04:10:08.000 align:start position:0% ID this has to be of a type string there 04:10:08.000 --> 04:10:10.269 align:start position:0% ID this has to be of a type string there we<04:10:08.239> go<04:10:08.840> and<04:10:08.960> then<04:10:09.080> we're<04:10:09.239> going<04:10:09.319> to<04:10:09.520> invalidate 04:10:10.269 --> 04:10:10.279 align:start position:0% we go and then we're going to invalidate 04:10:10.279 --> 04:10:12.950 align:start position:0% we go and then we're going to invalidate the<04:10:10.439> same<04:10:10.760> queries<04:10:11.680> so<04:10:11.920> now<04:10:12.239> we<04:10:12.399> have<04:10:12.680> three 04:10:12.950 --> 04:10:12.960 align:start position:0% the same queries so now we have three 04:10:12.960 --> 04:10:15.469 align:start position:0% the same queries so now we have three phenomenal<04:10:13.520> functions<04:10:14.239> which<04:10:14.399> we<04:10:14.520> can<04:10:14.720> use<04:10:15.199> to 04:10:15.469 --> 04:10:15.479 align:start position:0% phenomenal functions which we can use to 04:10:15.479 --> 04:10:17.830 align:start position:0% phenomenal functions which we can use to make<04:10:15.640> the<04:10:15.840> logic<04:10:16.119> of<04:10:16.239> our<04:10:16.439> application<04:10:17.040> work 04:10:17.830 --> 04:10:17.840 align:start position:0% make the logic of our application work 04:10:17.840 --> 04:10:20.229 align:start position:0% make the logic of our application work so<04:10:18.040> let's<04:10:18.239> save<04:10:18.520> the<04:10:18.680> file<04:10:19.399> go<04:10:19.720> back<04:10:19.920> to<04:10:20.080> the 04:10:20.229 --> 04:10:20.239 align:start position:0% so let's save the file go back to the 04:10:20.239 --> 04:10:22.710 align:start position:0% so let's save the file go back to the post<04:10:20.560> stats<04:10:21.319> and<04:10:21.479> let's<04:10:21.680> retrieve<04:10:22.399> all<04:10:22.560> of 04:10:22.710 --> 04:10:22.720 align:start position:0% post stats and let's retrieve all of 04:10:22.720 --> 04:10:25.910 align:start position:0% post stats and let's retrieve all of these<04:10:22.920> phenomenal<04:10:23.479> mutations<04:10:24.199> and<04:10:24.920> queries 04:10:25.910 --> 04:10:25.920 align:start position:0% these phenomenal mutations and queries 04:10:25.920 --> 04:10:28.950 align:start position:0% these phenomenal mutations and queries by<04:10:26.119> using<04:10:26.439> the<04:10:26.600> hooks<04:10:27.159> provided<04:10:27.560> to<04:10:27.800> us<04:10:28.520> by 04:10:28.950 --> 04:10:28.960 align:start position:0% by using the hooks provided to us by 04:10:28.960 --> 04:10:32.309 align:start position:0% by using the hooks provided to us by react<04:10:29.560> query<04:10:30.560> that<04:10:30.760> are<04:10:31.119> by<04:10:31.479> consequence 04:10:32.309 --> 04:10:32.319 align:start position:0% react query that are by consequence 04:10:32.319 --> 04:10:36.149 align:start position:0% react query that are by consequence using<04:10:32.920> aite<04:10:33.880> functions<04:10:34.880> so<04:10:35.279> back<04:10:35.479> in<04:10:35.640> the<04:10:35.760> post 04:10:36.149 --> 04:10:36.159 align:start position:0% using aite functions so back in the post 04:10:36.159 --> 04:10:38.469 align:start position:0% using aite functions so back in the post stats<04:10:36.680> we<04:10:36.800> can<04:10:36.880> see<04:10:37.159> con 04:10:38.469 --> 04:10:38.479 align:start position:0% stats we can see con 04:10:38.479 --> 04:10:40.710 align:start position:0% stats we can see con mutate<04:10:39.479> which<04:10:39.600> we're<04:10:39.760> going<04:10:39.840> to<04:10:40.000> rename<04:10:40.399> to 04:10:40.710 --> 04:10:40.720 align:start position:0% mutate which we're going to rename to 04:10:40.720 --> 04:10:44.229 align:start position:0% mutate which we're going to rename to like<04:10:41.279> post<04:10:42.279> is<04:10:42.439> going<04:10:42.520> to<04:10:42.680> be<04:10:42.880> equal<04:10:43.159> to<04:10:43.479> use 04:10:44.229 --> 04:10:44.239 align:start position:0% like post is going to be equal to use 04:10:44.239 --> 04:10:46.590 align:start position:0% like post is going to be equal to use like<04:10:44.840> post<04:10:45.479> which<04:10:45.600> we<04:10:45.720> have<04:10:45.840> to<04:10:46.000> import<04:10:46.399> from 04:10:46.590 --> 04:10:46.600 align:start position:0% like post which we have to import from 04:10:46.600 --> 04:10:48.229 align:start position:0% like post which we have to import from queries<04:10:46.960> and 04:10:48.229 --> 04:10:48.239 align:start position:0% queries and 04:10:48.239 --> 04:10:50.469 align:start position:0% queries and mutations<04:10:49.239> we<04:10:49.359> can<04:10:49.520> duplicate<04:10:50.040> this<04:10:50.279> three 04:10:50.469 --> 04:10:50.479 align:start position:0% mutations we can duplicate this three 04:10:50.479 --> 04:10:53.070 align:start position:0% mutations we can duplicate this three more<04:10:50.840> times<04:10:51.680> the<04:10:51.840> second<04:10:52.199> time<04:10:52.439> the<04:10:52.600> mutate 04:10:53.070 --> 04:10:53.080 align:start position:0% more times the second time the mutate 04:10:53.080 --> 04:10:55.990 align:start position:0% more times the second time the mutate function<04:10:53.680> is<04:10:53.840> going<04:10:54.000> to<04:10:54.159> be<04:10:54.319> called<04:10:54.840> save<04:10:55.319> post 04:10:55.990 --> 04:10:56.000 align:start position:0% function is going to be called save post 04:10:56.000 --> 04:10:57.870 align:start position:0% function is going to be called save post and<04:10:56.119> the<04:10:56.319> third<04:10:56.600> time<04:10:56.880> it's<04:10:57.040> going<04:10:57.199> to<04:10:57.359> be 04:10:57.870 --> 04:10:57.880 align:start position:0% and the third time it's going to be 04:10:57.880 --> 04:11:01.070 align:start position:0% and the third time it's going to be delete<04:10:59.000> saved 04:11:01.070 --> 04:11:01.080 align:start position:0% delete saved 04:11:01.080 --> 04:11:04.429 align:start position:0% delete saved post<04:11:02.080> of<04:11:02.239> course<04:11:02.560> we<04:11:02.680> have<04:11:02.840> to<04:11:02.960> call<04:11:03.279> this<04:11:03.600> use 04:11:04.429 --> 04:11:04.439 align:start position:0% post of course we have to call this use 04:11:04.439 --> 04:11:07.469 align:start position:0% post of course we have to call this use Save<04:11:05.119> post<04:11:05.600> which<04:11:05.720> we<04:11:05.840> also<04:11:06.080> have<04:11:06.199> to<04:11:06.439> import 04:11:07.469 --> 04:11:07.479 align:start position:0% Save post which we also have to import 04:11:07.479 --> 04:11:09.990 align:start position:0% Save post which we also have to import and<04:11:07.840> use 04:11:09.990 --> 04:11:10.000 align:start position:0% and use 04:11:10.000 --> 04:11:14.030 align:start position:0% and use delete<04:11:11.000> saved<04:11:12.159> post<04:11:13.159> which<04:11:13.319> we<04:11:13.439> can<04:11:13.640> also 04:11:14.030 --> 04:11:14.040 align:start position:0% delete saved post which we can also 04:11:14.040 --> 04:11:17.229 align:start position:0% delete saved post which we can also import<04:11:14.640> right<04:11:15.319> here<04:11:16.319> we<04:11:16.479> also<04:11:16.720> need<04:11:16.880> to<04:11:17.000> know 04:11:17.229 --> 04:11:17.239 align:start position:0% import right here we also need to know 04:11:17.239 --> 04:11:19.070 align:start position:0% import right here we also need to know who<04:11:17.399> is<04:11:17.520> the<04:11:17.680> currently<04:11:18.040> logged<04:11:18.319> in<04:11:18.479> user 04:11:19.070 --> 04:11:19.080 align:start position:0% who is the currently logged in user 04:11:19.080 --> 04:11:20.950 align:start position:0% who is the currently logged in user which<04:11:19.239> we<04:11:19.319> can<04:11:19.479> get<04:11:19.680> pretty<04:11:19.920> easily<04:11:20.520> by<04:11:20.640> saying 04:11:20.950 --> 04:11:20.960 align:start position:0% which we can get pretty easily by saying 04:11:20.960 --> 04:11:25.030 align:start position:0% which we can get pretty easily by saying cons<04:11:21.439> data<04:11:22.439> rename<04:11:22.880> it<04:11:23.080> to<04:11:23.399> current<04:11:23.800> user<04:11:24.800> is 04:11:25.030 --> 04:11:25.040 align:start position:0% cons data rename it to current user is 04:11:25.040 --> 04:11:28.070 align:start position:0% cons data rename it to current user is equal<04:11:25.319> to<04:11:25.920> use<04:11:26.439> user<04:11:26.920> context<04:11:27.600> which<04:11:27.760> we<04:11:27.880> can 04:11:28.070 --> 04:11:28.080 align:start position:0% equal to use user context which we can 04:11:28.080 --> 04:11:30.670 align:start position:0% equal to use user context which we can import<04:11:28.479> from<04:11:28.720> o 04:11:30.670 --> 04:11:30.680 align:start position:0% import from o 04:11:30.680 --> 04:11:33.149 align:start position:0% import from o context<04:11:31.680> then<04:11:32.000> we<04:11:32.159> have<04:11:32.279> to<04:11:32.439> figure<04:11:32.720> out<04:11:33.080> what 04:11:33.149 --> 04:11:33.159 align:start position:0% context then we have to figure out what 04:11:33.159 --> 04:11:35.990 align:start position:0% context then we have to figure out what are<04:11:33.319> the<04:11:33.479> current<04:11:33.880> likes<04:11:34.439> on<04:11:34.680> a<04:11:34.920> specific<04:11:35.439> post 04:11:35.990 --> 04:11:36.000 align:start position:0% are the current likes on a specific post 04:11:36.000 --> 04:11:37.429 align:start position:0% are the current likes on a specific post and<04:11:36.119> we<04:11:36.239> can<04:11:36.359> do<04:11:36.520> that<04:11:36.720> right<04:11:36.840> here<04:11:37.000> at<04:11:37.080> the<04:11:37.199> top 04:11:37.429 --> 04:11:37.439 align:start position:0% and we can do that right here at the top 04:11:37.439 --> 04:11:38.910 align:start position:0% and we can do that right here at the top Top<04:11:37.840> by<04:11:37.960> saying 04:11:38.910 --> 04:11:38.920 align:start position:0% Top by saying 04:11:38.920 --> 04:11:43.670 align:start position:0% Top by saying const<04:11:39.920> likes<04:11:40.680> list<04:11:41.479> is<04:11:41.720> equal<04:11:42.040> to<04:11:42.800> post<04:11:43.560> which 04:11:43.670 --> 04:11:43.680 align:start position:0% const likes list is equal to post which 04:11:43.680 --> 04:11:47.910 align:start position:0% const likes list is equal to post which is<04:11:43.840> coming<04:11:44.159> from<04:11:44.479> props<04:11:44.960> right<04:11:45.520> here<04:11:46.920> likes. 04:11:47.910 --> 04:11:47.920 align:start position:0% is coming from props right here likes. 04:11:47.920 --> 04:11:51.309 align:start position:0% is coming from props right here likes. map<04:11:48.840> where<04:11:49.000> we<04:11:49.159> get<04:11:49.399> each<04:11:49.680> individual<04:11:50.319> user 04:11:51.309 --> 04:11:51.319 align:start position:0% map where we get each individual user 04:11:51.319 --> 04:11:53.550 align:start position:0% map where we get each individual user why<04:11:51.600> user<04:11:52.479> because<04:11:52.800> we're<04:11:52.960> saving<04:11:53.359> a 04:11:53.550 --> 04:11:53.560 align:start position:0% why user because we're saving a 04:11:53.560 --> 04:11:55.349 align:start position:0% why user because we're saving a reference<04:11:53.880> to<04:11:54.000> the<04:11:54.159> user<04:11:54.640> whenever<04:11:55.000> somebody 04:11:55.349 --> 04:11:55.359 align:start position:0% reference to the user whenever somebody 04:11:55.359 --> 04:11:57.830 align:start position:0% reference to the user whenever somebody likes<04:11:55.600> it<04:11:56.119> which<04:11:56.239> is<04:11:56.359> going<04:11:56.479> to<04:11:56.600> be<04:11:56.840> type<04:11:57.279> of<04:11:57.520> a 04:11:57.830 --> 04:11:57.840 align:start position:0% likes it which is going to be type of a 04:11:57.840 --> 04:12:01.429 align:start position:0% likes it which is going to be type of a models.<04:11:59.239> document<04:12:00.239> and<04:12:00.479> we<04:12:00.600> want<04:12:00.720> to<04:12:01.000> return 04:12:01.429 --> 04:12:01.439 align:start position:0% models. document and we want to return 04:12:01.439 --> 04:12:05.550 align:start position:0% models. document and we want to return just<04:12:01.680> their<04:12:01.960> ID<04:12:02.479> so<04:12:02.720> user.<04:12:03.640> dollar<04:12:04.000> sign<04:12:04.560> ID 04:12:05.550 --> 04:12:05.560 align:start position:0% just their ID so user. dollar sign ID 04:12:05.560 --> 04:12:07.950 align:start position:0% just their ID so user. dollar sign ID and<04:12:05.720> that<04:12:05.880> gives<04:12:06.080> us<04:12:06.239> the<04:12:06.359> likes<04:12:06.720> list 04:12:07.950 --> 04:12:07.960 align:start position:0% and that gives us the likes list 04:12:07.960 --> 04:12:10.429 align:start position:0% and that gives us the likes list then<04:12:08.239> we<04:12:08.359> want<04:12:08.439> to<04:12:08.640> create<04:12:08.960> two<04:12:09.279> Ed<04:12:09.680> States<04:12:10.279> so 04:12:10.429 --> 04:12:10.439 align:start position:0% then we want to create two Ed States so 04:12:10.439 --> 04:12:13.710 align:start position:0% then we want to create two Ed States so the<04:12:10.640> first<04:12:10.920> used<04:12:11.520> state<04:12:12.520> is<04:12:12.680> going<04:12:12.840> to<04:12:13.040> say 04:12:13.710 --> 04:12:13.720 align:start position:0% the first used state is going to say 04:12:13.720 --> 04:12:18.309 align:start position:0% the first used state is going to say likes<04:12:14.680> as<04:12:14.840> well<04:12:15.000> as<04:12:15.319> set<04:12:16.000> likes<04:12:17.000> right<04:12:17.319> here 04:12:18.309 --> 04:12:18.319 align:start position:0% likes as well as set likes right here 04:12:18.319 --> 04:12:21.830 align:start position:0% likes as well as set likes right here and<04:12:18.560> at<04:12:18.680> the<04:12:18.880> start<04:12:19.359> it's<04:12:19.560> going<04:12:19.720> to<04:12:19.840> be<04:12:20.000> set<04:12:20.840> to 04:12:21.830 --> 04:12:21.840 align:start position:0% and at the start it's going to be set to 04:12:21.840 --> 04:12:24.149 align:start position:0% and at the start it's going to be set to the<04:12:22.000> likes<04:12:22.399> list<04:12:23.000> so<04:12:23.279> immediately<04:12:23.800> we<04:12:23.960> know 04:12:24.149 --> 04:12:24.159 align:start position:0% the likes list so immediately we know 04:12:24.159 --> 04:12:26.590 align:start position:0% the likes list so immediately we know it's<04:12:24.319> going<04:12:24.479> to<04:12:24.640> be<04:12:24.840> an<04:12:25.119> array<04:12:26.119> and<04:12:26.279> we<04:12:26.399> also 04:12:26.590 --> 04:12:26.600 align:start position:0% it's going to be an array and we also 04:12:26.600 --> 04:12:29.070 align:start position:0% it's going to be an array and we also have<04:12:26.720> to<04:12:26.880> import<04:12:27.279> use<04:12:27.600> state<04:12:28.000> from<04:12:28.279> react 04:12:29.070 --> 04:12:29.080 align:start position:0% have to import use state from react 04:12:29.080 --> 04:12:30.750 align:start position:0% have to import use state from react which<04:12:29.199> we<04:12:29.319> can<04:12:29.439> do<04:12:29.560> at<04:12:29.680> the<04:12:29.880> top<04:12:30.279> by<04:12:30.399> saying 04:12:30.750 --> 04:12:30.760 align:start position:0% which we can do at the top by saying 04:12:30.760 --> 04:12:33.910 align:start position:0% which we can do at the top by saying import<04:12:31.399> use<04:12:31.760> State<04:12:32.399> we<04:12:32.520> can<04:12:32.680> also<04:12:32.960> get<04:12:33.199> use 04:12:33.910 --> 04:12:33.920 align:start position:0% import use State we can also get use 04:12:33.920 --> 04:12:38.229 align:start position:0% import use State we can also get use effect<04:12:34.920> coming<04:12:35.399> from<04:12:36.399> react 04:12:38.229 --> 04:12:38.239 align:start position:0% effect coming from react 04:12:38.239 --> 04:12:40.389 align:start position:0% effect coming from react and<04:12:38.479> in<04:12:38.640> the<04:12:38.800> same<04:12:39.080> way<04:12:39.520> we<04:12:39.640> want<04:12:39.760> to<04:12:39.920> know<04:12:40.239> if 04:12:40.389 --> 04:12:40.399 align:start position:0% and in the same way we want to know if 04:12:40.399 --> 04:12:43.149 align:start position:0% and in the same way we want to know if the<04:12:40.560> post<04:12:40.960> has<04:12:41.119> been<04:12:41.399> saved<04:12:42.000> so<04:12:42.159> we<04:12:42.239> can<04:12:42.399> say<04:12:42.680> is 04:12:43.149 --> 04:12:43.159 align:start position:0% the post has been saved so we can say is 04:12:43.159 --> 04:12:47.910 align:start position:0% the post has been saved so we can say is saved<04:12:44.439> set<04:12:45.439> is 04:12:47.910 --> 04:12:47.920 align:start position:0% 04:12:47.920 --> 04:12:50.189 align:start position:0% saved<04:12:48.920> and<04:12:49.119> that's<04:12:49.319> going<04:12:49.479> to<04:12:49.600> be<04:12:49.760> equal<04:12:50.000> to 04:12:50.189 --> 04:12:50.199 align:start position:0% saved and that's going to be equal to 04:12:50.199 --> 04:12:52.830 align:start position:0% saved and that's going to be equal to false<04:12:50.600> at<04:12:50.720> the<04:12:50.960> beginning<04:12:51.960> so<04:12:52.199> now<04:12:52.399> we<04:12:52.520> have<04:12:52.680> a 04:12:52.830 --> 04:12:52.840 align:start position:0% false at the beginning so now we have a 04:12:52.840 --> 04:12:55.149 align:start position:0% false at the beginning so now we have a lot<04:12:52.960> of<04:12:53.199> things<04:12:53.399> we<04:12:53.520> need<04:12:54.000> to<04:12:54.399> enable<04:12:54.920> this 04:12:55.149 --> 04:12:55.159 align:start position:0% lot of things we need to enable this 04:12:55.159 --> 04:12:57.030 align:start position:0% lot of things we need to enable this functionality<04:12:56.159> so<04:12:56.319> let's<04:12:56.520> create<04:12:56.800> two 04:12:57.030 --> 04:12:57.040 align:start position:0% functionality so let's create two 04:12:57.040 --> 04:12:58.790 align:start position:0% functionality so let's create two functions<04:12:57.439> we're<04:12:57.560> going<04:12:57.680> to<04:12:57.800> use<04:12:57.960> to<04:12:58.319> like 04:12:58.790 --> 04:12:58.800 align:start position:0% functions we're going to use to like 04:12:58.800 --> 04:13:02.910 align:start position:0% functions we're going to use to like dislike<04:12:59.520> and<04:12:59.800> save<04:13:00.119> and<04:13:00.279> unsave<04:13:01.080> posts<04:13:02.080> const 04:13:02.910 --> 04:13:02.920 align:start position:0% dislike and save and unsave posts const 04:13:02.920 --> 04:13:06.710 align:start position:0% dislike and save and unsave posts const handle<04:13:03.800> like<04:13:04.439> post<04:13:05.199> is<04:13:05.399> going<04:13:05.560> to<04:13:05.760> be<04:13:06.560> a 04:13:06.710 --> 04:13:06.720 align:start position:0% handle like post is going to be a 04:13:06.720 --> 04:13:08.149 align:start position:0% handle like post is going to be a function 04:13:08.149 --> 04:13:08.159 align:start position:0% function 04:13:08.159 --> 04:13:12.830 align:start position:0% function as<04:13:08.399> well<04:13:08.800> as<04:13:09.399> const<04:13:10.399> handle<04:13:11.279> save<04:13:12.199> post<04:13:12.720> which 04:13:12.830 --> 04:13:12.840 align:start position:0% as well as const handle save post which 04:13:12.840 --> 04:13:15.429 align:start position:0% as well as const handle save post which is<04:13:12.960> going<04:13:13.080> to<04:13:13.199> be<04:13:13.359> another<04:13:13.720> function<04:13:14.239> for<04:13:14.479> now 04:13:15.429 --> 04:13:15.439 align:start position:0% is going to be another function for now 04:13:15.439 --> 04:13:17.229 align:start position:0% is going to be another function for now now<04:13:15.600> we<04:13:15.760> have<04:13:16.000> all<04:13:16.119> of<04:13:16.319> these<04:13:16.560> properties<04:13:17.119> we 04:13:17.229 --> 04:13:17.239 align:start position:0% now we have all of these properties we 04:13:17.239 --> 04:13:20.149 align:start position:0% now we have all of these properties we can<04:13:17.439> work<04:13:17.760> with<04:13:18.159> right<04:13:18.359> here<04:13:18.600> Below<04:13:19.080> in<04:13:19.239> the<04:13:19.399> UI 04:13:20.149 --> 04:13:20.159 align:start position:0% can work with right here Below in the UI 04:13:20.159 --> 04:13:22.750 align:start position:0% can work with right here Below in the UI so<04:13:20.520> let's<04:13:20.760> make<04:13:20.920> use<04:13:21.119> of<04:13:21.319> them<04:13:22.199> first<04:13:22.479> things 04:13:22.750 --> 04:13:22.760 align:start position:0% so let's make use of them first things 04:13:22.760 --> 04:13:24.910 align:start position:0% so let's make use of them first things first<04:13:23.239> we<04:13:23.359> can<04:13:23.520> figure<04:13:23.760> out<04:13:24.040> if<04:13:24.159> a<04:13:24.359> post<04:13:24.760> has 04:13:24.910 --> 04:13:24.920 align:start position:0% first we can figure out if a post has 04:13:24.920 --> 04:13:26.910 align:start position:0% first we can figure out if a post has been<04:13:25.159> liked<04:13:25.760> and<04:13:25.920> based<04:13:26.159> on<04:13:26.359> that<04:13:26.520> we<04:13:26.600> can<04:13:26.720> show 04:13:26.910 --> 04:13:26.920 align:start position:0% been liked and based on that we can show 04:13:26.920 --> 04:13:29.590 align:start position:0% been liked and based on that we can show a<04:13:27.080> different<04:13:27.439> icon<04:13:28.199> so<04:13:28.399> instead<04:13:28.640> of<04:13:28.760> a<04:13:28.960> source 04:13:29.590 --> 04:13:29.600 align:start position:0% a different icon so instead of a source 04:13:29.600 --> 04:13:32.870 align:start position:0% a different icon so instead of a source assets<04:13:30.080> icons<04:13:30.560> like<04:13:31.439> we<04:13:31.560> can<04:13:31.960> open<04:13:32.239> up<04:13:32.439> a<04:13:32.600> new 04:13:32.870 --> 04:13:32.880 align:start position:0% assets icons like we can open up a new 04:13:32.880 --> 04:13:37.510 align:start position:0% assets icons like we can open up a new Dynamic<04:13:34.080> block<04:13:35.080> and<04:13:35.359> there<04:13:35.720> we<04:13:35.840> can<04:13:36.040> say<04:13:36.760> check 04:13:37.510 --> 04:13:37.520 align:start position:0% Dynamic block and there we can say check 04:13:37.520 --> 04:13:41.469 align:start position:0% Dynamic block and there we can say check is<04:13:37.960> liked<04:13:38.640> coming<04:13:38.960> from<04:13:39.199> lib<04:13:39.880> utils<04:13:40.880> to<04:13:41.199> which 04:13:41.469 --> 04:13:41.479 align:start position:0% is liked coming from lib utils to which 04:13:41.479 --> 04:13:43.429 align:start position:0% is liked coming from lib utils to which we're<04:13:41.640> going<04:13:41.720> to<04:13:41.960> pass<04:13:42.199> the<04:13:42.319> likes<04:13:42.920> so<04:13:43.080> we<04:13:43.239> know 04:13:43.429 --> 04:13:43.439 align:start position:0% we're going to pass the likes so we know 04:13:43.439 --> 04:13:45.750 align:start position:0% we're going to pass the likes so we know the<04:13:43.520> full<04:13:44.080> likes<04:13:44.399> array<04:13:45.279> as<04:13:45.359> well<04:13:45.520> as<04:13:45.640> the 04:13:45.750 --> 04:13:45.760 align:start position:0% the full likes array as well as the 04:13:45.760 --> 04:13:48.149 align:start position:0% the full likes array as well as the current<04:13:46.080> user<04:13:46.359> ID<04:13:47.040> and<04:13:47.119> we<04:13:47.239> can<04:13:47.399> check<04:13:47.760> if<04:13:47.960> it's 04:13:48.149 --> 04:13:48.159 align:start position:0% current user ID and we can check if it's 04:13:48.159 --> 04:13:50.910 align:start position:0% current user ID and we can check if it's currently<04:13:48.560> in<04:13:48.800> there<04:13:49.720> if<04:13:49.880> it<04:13:50.040> is<04:13:50.680> then<04:13:50.800> we're 04:13:50.910 --> 04:13:50.920 align:start position:0% currently in there if it is then we're 04:13:50.920 --> 04:13:54.269 align:start position:0% currently in there if it is then we're going<04:13:51.040> to<04:13:51.159> show<04:13:51.720> the<04:13:51.960> liked<04:13:52.600> feature<04:13:53.359> like<04:13:53.560> so 04:13:54.269 --> 04:13:54.279 align:start position:0% going to show the liked feature like so 04:13:54.279 --> 04:13:55.790 align:start position:0% going to show the liked feature like so and<04:13:54.399> of<04:13:54.560> course<04:13:54.760> we<04:13:54.880> have<04:13:55.000> to<04:13:55.159> close<04:13:55.600> this 04:13:55.790 --> 04:13:55.800 align:start position:0% and of course we have to close this 04:13:55.800 --> 04:13:58.189 align:start position:0% and of course we have to close this properly<04:13:56.359> so<04:13:56.600> everything<04:13:56.960> appears<04:13:57.439> nicely 04:13:58.189 --> 04:13:58.199 align:start position:0% properly so everything appears nicely 04:13:58.199 --> 04:14:00.830 align:start position:0% properly so everything appears nicely and<04:13:58.399> open<04:13:58.640> up<04:13:58.880> a<04:13:59.040> new<04:13:59.680> template<04:14:00.080> string<04:14:00.720> there 04:14:00.830 --> 04:14:00.840 align:start position:0% and open up a new template string there 04:14:00.840 --> 04:14:04.590 align:start position:0% and open up a new template string there we<04:14:01.000> go<04:14:01.640> so<04:14:01.920> check<04:14:02.479> is<04:14:02.800> liked<04:14:03.800> if<04:14:03.920> it<04:14:04.080> is<04:14:04.439> we 04:14:04.590 --> 04:14:04.600 align:start position:0% we go so check is liked if it is we 04:14:04.600 --> 04:14:08.149 align:start position:0% we go so check is liked if it is we render<04:14:05.040> the<04:14:05.319> assets<04:14:05.760> icons<04:14:06.239> liked<04:14:07.279> and<04:14:07.600> else 04:14:08.149 --> 04:14:08.159 align:start position:0% render the assets icons liked and else 04:14:08.159 --> 04:14:10.870 align:start position:0% render the assets icons liked and else we<04:14:08.279> want<04:14:08.399> to<04:14:08.560> render<04:14:09.119> something<04:14:09.520> like<04:14:10.080> assets 04:14:10.870 --> 04:14:10.880 align:start position:0% we want to render something like assets 04:14:10.880 --> 04:14:14.269 align:start position:0% we want to render something like assets icons<04:14:11.760> like<04:14:12.760> if<04:14:12.880> we<04:14:13.040> save<04:14:13.279> it<04:14:13.800> you<04:14:13.920> can<04:14:14.040> see 04:14:14.269 --> 04:14:14.279 align:start position:0% icons like if we save it you can see 04:14:14.279 --> 04:14:17.389 align:start position:0% icons like if we save it you can see that<04:14:14.439> now<04:14:14.560> it's<04:14:14.680> a<04:14:14.920> zero<04:14:15.479> and<04:14:15.760> it's<04:14:16.119> not<04:14:16.560> liked 04:14:17.389 --> 04:14:17.399 align:start position:0% that now it's a zero and it's not liked 04:14:17.399 --> 04:14:19.349 align:start position:0% that now it's a zero and it's not liked later<04:14:17.640> on<04:14:17.920> once<04:14:18.080> we<04:14:18.239> click<04:14:18.479> it<04:14:18.800> it<04:14:18.920> should<04:14:19.119> turn 04:14:19.349 --> 04:14:19.359 align:start position:0% later on once we click it it should turn 04:14:19.359 --> 04:14:22.149 align:start position:0% later on once we click it it should turn out<04:14:19.720> red<04:14:20.680> once<04:14:20.880> we<04:14:21.080> click<04:14:21.359> the<04:14:21.560> like<04:14:21.920> we<04:14:22.040> want 04:14:22.149 --> 04:14:22.159 align:start position:0% out red once we click the like we want 04:14:22.159 --> 04:14:25.149 align:start position:0% out red once we click the like we want to<04:14:22.279> get<04:14:22.439> the<04:14:22.560> click<04:14:22.840> event<04:14:23.680> and<04:14:23.840> then<04:14:24.040> call<04:14:24.399> the 04:14:25.149 --> 04:14:25.159 align:start position:0% to get the click event and then call the 04:14:25.159 --> 04:14:28.910 align:start position:0% to get the click event and then call the handle<04:14:26.159> like<04:14:26.960> post<04:14:27.840> to<04:14:28.040> which<04:14:28.199> we<04:14:28.399> pass<04:14:28.640> the 04:14:28.910 --> 04:14:28.920 align:start position:0% handle like post to which we pass the 04:14:28.920 --> 04:14:31.469 align:start position:0% handle like post to which we pass the event<04:14:29.920> if<04:14:30.119> the<04:14:30.239> only<04:14:30.520> thing<04:14:30.680> you<04:14:30.840> have<04:14:31.119> here 04:14:31.469 --> 04:14:31.479 align:start position:0% event if the only thing you have here 04:14:31.479 --> 04:14:33.750 align:start position:0% event if the only thing you have here you<04:14:31.760> pass<04:14:32.119> there<04:14:32.600> you<04:14:32.680> can<04:14:32.880> immediately<04:14:33.520> just 04:14:33.750 --> 04:14:33.760 align:start position:0% you pass there you can immediately just 04:14:33.760 --> 04:14:36.510 align:start position:0% you pass there you can immediately just do<04:14:33.960> a<04:14:34.119> shorthand<04:14:35.000> which<04:14:35.159> means<04:14:35.520> like<04:14:35.760> this 04:14:36.510 --> 04:14:36.520 align:start position:0% do a shorthand which means like this 04:14:36.520 --> 04:14:38.630 align:start position:0% do a shorthand which means like this similar<04:14:36.840> thing<04:14:37.279> here<04:14:37.520> instead<04:14:37.800> of<04:14:38.000> zero<04:14:38.520> we 04:14:38.630 --> 04:14:38.640 align:start position:0% similar thing here instead of zero we 04:14:38.640 --> 04:14:41.790 align:start position:0% similar thing here instead of zero we can<04:14:38.840> display<04:14:39.560> the<04:14:39.840> likes.<04:14:40.840> length<04:14:41.359> so<04:14:41.600> how 04:14:41.790 --> 04:14:41.800 align:start position:0% can display the likes. length so how 04:14:41.800 --> 04:14:43.550 align:start position:0% can display the likes. length so how many<04:14:42.279> likes<04:14:42.800> there 04:14:43.550 --> 04:14:43.560 align:start position:0% many likes there 04:14:43.560 --> 04:14:46.030 align:start position:0% many likes there are<04:14:44.560> and<04:14:44.680> then<04:14:44.800> we<04:14:44.880> can<04:14:45.080> do<04:14:45.199> a<04:14:45.319> similar<04:14:45.680> thing 04:14:46.030 --> 04:14:46.040 align:start position:0% are and then we can do a similar thing 04:14:46.040 --> 04:14:48.750 align:start position:0% are and then we can do a similar thing with<04:14:46.279> saved<04:14:47.040> so<04:14:47.319> we<04:14:47.439> can<04:14:47.600> open<04:14:47.840> up<04:14:48.080> a<04:14:48.279> new 04:14:48.750 --> 04:14:48.760 align:start position:0% with saved so we can open up a new 04:14:48.760 --> 04:14:52.030 align:start position:0% with saved so we can open up a new Dynamic<04:14:49.359> template<04:14:49.760> string<04:14:50.439> block<04:14:51.439> and<04:14:51.760> close 04:14:52.030 --> 04:14:52.040 align:start position:0% Dynamic template string block and close 04:14:52.040 --> 04:14:54.670 align:start position:0% Dynamic template string block and close it<04:14:52.239> of<04:14:52.399> course<04:14:53.199> right<04:14:53.359> at<04:14:53.479> the<04:14:53.720> top<04:14:54.040> we<04:14:54.159> can<04:14:54.319> say 04:14:54.670 --> 04:14:54.680 align:start position:0% it of course right at the top we can say 04:14:54.680 --> 04:14:59.229 align:start position:0% it of course right at the top we can say if<04:14:55.600> is<04:14:56.319> saved<04:14:57.319> if<04:14:57.439> it<04:14:57.640> is<04:14:57.840> saved<04:14:58.479> we<04:14:58.600> can<04:14:58.760> simply 04:14:59.229 --> 04:14:59.239 align:start position:0% if is saved if it is saved we can simply 04:14:59.239 --> 04:15:05.070 align:start position:0% if is saved if it is saved we can simply return<04:15:00.319> assets<04:15:01.720> icons<04:15:02.800> saved. 04:15:05.070 --> 04:15:05.080 align:start position:0% return assets icons saved. 04:15:05.080 --> 04:15:08.870 align:start position:0% return assets icons saved. SVG<04:15:06.080> else<04:15:06.680> we<04:15:06.800> can<04:15:07.239> return<04:15:07.720> something<04:15:08.159> like 04:15:08.870 --> 04:15:08.880 align:start position:0% SVG else we can return something like 04:15:08.880 --> 04:15:13.109 align:start position:0% SVG else we can return something like assets<04:15:09.560> icons<04:15:10.359> save<04:15:11.359> there<04:15:11.479> we<04:15:11.720> go<04:15:12.720> and<04:15:12.840> we<04:15:12.960> can 04:15:13.109 --> 04:15:13.119 align:start position:0% assets icons save there we go and we can 04:15:13.119 --> 04:15:15.349 align:start position:0% assets icons save there we go and we can put<04:15:13.279> it<04:15:13.479> like<04:15:13.680> here<04:15:14.439> there<04:15:14.560> is<04:15:14.680> even<04:15:14.880> a<04:15:15.040> shorter 04:15:15.349 --> 04:15:15.359 align:start position:0% put it like here there is even a shorter 04:15:15.359 --> 04:15:16.630 align:start position:0% put it like here there is even a shorter way<04:15:15.479> of<04:15:15.640> doing<04:15:15.920> this<04:15:16.119> we<04:15:16.239> don't<04:15:16.399> have<04:15:16.520> to 04:15:16.630 --> 04:15:16.640 align:start position:0% way of doing this we don't have to 04:15:16.640 --> 04:15:18.229 align:start position:0% way of doing this we don't have to create<04:15:16.840> a<04:15:17.000> template<04:15:17.359> string<04:15:17.840> because<04:15:18.000> we're 04:15:18.229 --> 04:15:18.239 align:start position:0% create a template string because we're 04:15:18.239 --> 04:15:21.189 align:start position:0% create a template string because we're returning<04:15:18.960> one<04:15:19.239> string<04:15:19.640> in<04:15:19.840> any<04:15:20.119> case<04:15:20.680> same<04:15:20.920> to 04:15:21.189 --> 04:15:21.199 align:start position:0% returning one string in any case same to 04:15:21.199 --> 04:15:24.469 align:start position:0% returning one string in any case same to here<04:15:22.080> so<04:15:22.399> we<04:15:22.520> can<04:15:22.680> remove<04:15:23.680> this 04:15:24.469 --> 04:15:24.479 align:start position:0% here so we can remove this 04:15:24.479 --> 04:15:27.630 align:start position:0% here so we can remove this entirely<04:15:25.479> and<04:15:25.720> just<04:15:25.920> say<04:15:26.359> if<04:15:26.680> is<04:15:26.880> saved<04:15:27.479> make 04:15:27.630 --> 04:15:27.640 align:start position:0% entirely and just say if is saved make 04:15:27.640 --> 04:15:30.469 align:start position:0% entirely and just say if is saved make it<04:15:27.920> this<04:15:28.399> else<04:15:28.880> make<04:15:29.040> it<04:15:29.279> this<04:15:30.040> same<04:15:30.239> thing<04:15:30.399> we 04:15:30.469 --> 04:15:30.479 align:start position:0% it this else make it this same thing we 04:15:30.479 --> 04:15:34.269 align:start position:0% it this else make it this same thing we can<04:15:30.640> do<04:15:30.840> here<04:15:31.279> soest<04:15:31.960> check<04:15:32.319> is<04:15:32.560> liked<04:15:33.520> if<04:15:33.680> so 04:15:34.269 --> 04:15:34.279 align:start position:0% can do here soest check is liked if so 04:15:34.279 --> 04:15:38.870 align:start position:0% can do here soest check is liked if so return<04:15:34.640> this<04:15:35.479> else<04:15:36.399> return<04:15:37.439> this<04:15:38.439> and<04:15:38.600> if<04:15:38.720> we 04:15:38.870 --> 04:15:38.880 align:start position:0% return this else return this and if we 04:15:38.880 --> 04:15:41.510 align:start position:0% return this else return this and if we save<04:15:39.119> it<04:15:39.800> it's<04:15:40.040> good<04:15:40.479> right<04:15:40.640> now<04:15:40.880> it's<04:15:41.119> not 04:15:41.510 --> 04:15:41.520 align:start position:0% save it it's good right now it's not 04:15:41.520 --> 04:15:44.990 align:start position:0% save it it's good right now it's not saved<04:15:42.040> nor<04:15:42.319> liked<04:15:42.920> so<04:15:43.119> it<04:15:43.199> should<04:15:43.399> be<04:15:44.000> empty 04:15:44.990 --> 04:15:45.000 align:start position:0% saved nor liked so it should be empty 04:15:45.000 --> 04:15:49.870 align:start position:0% saved nor liked so it should be empty finally<04:15:45.640> if<04:15:45.880> we<04:15:46.279> do<04:15:46.640> this<04:15:47.040> we<04:15:47.159> can<04:15:47.399> handle<04:15:48.479> save 04:15:49.870 --> 04:15:49.880 align:start position:0% finally if we do this we can handle save 04:15:49.880 --> 04:15:53.189 align:start position:0% finally if we do this we can handle save post<04:15:50.880> great<04:15:51.640> so<04:15:51.880> now<04:15:52.119> you<04:15:52.199> can<04:15:52.359> see<04:15:52.640> a<04:15:52.760> lot<04:15:52.960> of 04:15:53.189 --> 04:15:53.199 align:start position:0% post great so now you can see a lot of 04:15:53.199 --> 04:15:56.269 align:start position:0% post great so now you can see a lot of these<04:15:53.479> are<04:15:53.760> used<04:15:54.479> likes<04:15:55.000> is<04:15:55.199> saved<04:15:56.000> but<04:15:56.159> the 04:15:56.269 --> 04:15:56.279 align:start position:0% these are used likes is saved but the 04:15:56.279 --> 04:15:58.790 align:start position:0% these are used likes is saved but the mutations<04:15:56.920> are<04:15:57.119> not<04:15:57.359> used<04:15:58.040> so<04:15:58.479> what's<04:15:58.720> going 04:15:58.790 --> 04:15:58.800 align:start position:0% mutations are not used so what's going 04:15:58.800 --> 04:16:01.349 align:start position:0% mutations are not used so what's going to<04:15:59.040> happen<04:15:59.399> once<04:15:59.600> we<04:15:59.880> actually<04:16:00.399> click<04:16:01.119> this 04:16:01.349 --> 04:16:01.359 align:start position:0% to happen once we actually click this 04:16:01.359 --> 04:16:04.750 align:start position:0% to happen once we actually click this button<04:16:02.359> let's<04:16:02.600> do<04:16:02.800> that<04:16:03.159> next<04:16:04.159> in<04:16:04.319> the<04:16:04.439> handle 04:16:04.750 --> 04:16:04.760 align:start position:0% button let's do that next in the handle 04:16:04.760 --> 04:16:07.269 align:start position:0% button let's do that next in the handle like<04:16:05.000> post<04:16:05.479> we<04:16:05.640> get<04:16:05.840> one<04:16:06.080> parameter<04:16:06.640> of<04:16:06.760> a<04:16:07.040> Type 04:16:07.269 --> 04:16:07.279 align:start position:0% like post we get one parameter of a Type 04:16:07.279 --> 04:16:10.030 align:start position:0% like post we get one parameter of a Type e<04:16:07.720> as<04:16:07.840> an<04:16:08.000> event<04:16:08.840> and<04:16:08.960> for<04:16:09.159> now<04:16:09.359> we<04:16:09.479> can<04:16:09.600> set<04:16:09.840> it 04:16:10.030 --> 04:16:10.040 align:start position:0% e as an event and for now we can set it 04:16:10.040 --> 04:16:13.189 align:start position:0% e as an event and for now we can set it as<04:16:10.560> react. 04:16:13.189 --> 04:16:13.199 align:start position:0% as react. 04:16:13.199 --> 04:16:15.830 align:start position:0% as react. mouseevent<04:16:14.199> we<04:16:14.359> also<04:16:14.600> have<04:16:14.720> to<04:16:14.960> import<04:16:15.359> react 04:16:15.830 --> 04:16:15.840 align:start position:0% mouseevent we also have to import react 04:16:15.840 --> 04:16:18.990 align:start position:0% mouseevent we also have to import react from<04:16:16.080> react<04:16:16.720> so<04:16:16.880> we<04:16:16.960> can<04:16:17.119> do<04:16:17.239> it 04:16:18.990 --> 04:16:19.000 align:start position:0% from react so we can do it 04:16:19.000 --> 04:16:22.910 align:start position:0% from react so we can do it here<04:16:20.000> immediately<04:16:20.600> within<04:16:21.159> we<04:16:21.279> can<04:16:21.399> say<04:16:21.680> e<04:16:22.080> do 04:16:22.910 --> 04:16:22.920 align:start position:0% here immediately within we can say e do 04:16:22.920 --> 04:16:25.189 align:start position:0% here immediately within we can say e do stop<04:16:23.439> propagation<04:16:24.279> so<04:16:24.439> this<04:16:24.560> is<04:16:24.720> not<04:16:24.920> going<04:16:25.040> to 04:16:25.189 --> 04:16:25.199 align:start position:0% stop propagation so this is not going to 04:16:25.199 --> 04:16:27.149 align:start position:0% stop propagation so this is not going to allow<04:16:25.439> us<04:16:25.600> to<04:16:25.760> click<04:16:26.040> any<04:16:26.279> further<04:16:26.800> it's<04:16:27.000> just 04:16:27.149 --> 04:16:27.159 align:start position:0% allow us to click any further it's just 04:16:27.159 --> 04:16:29.590 align:start position:0% allow us to click any further it's just going<04:16:27.319> to<04:16:27.560> click<04:16:28.159> this<04:16:28.760> that's<04:16:28.960> done<04:16:29.279> in<04:16:29.439> case 04:16:29.590 --> 04:16:29.600 align:start position:0% going to click this that's done in case 04:16:29.600 --> 04:16:31.710 align:start position:0% going to click this that's done in case you<04:16:29.760> make<04:16:30.000> this<04:16:30.199> entire<04:16:30.520> container<04:16:31.040> clickable 04:16:31.710 --> 04:16:31.720 align:start position:0% you make this entire container clickable 04:16:31.720 --> 04:16:33.950 align:start position:0% you make this entire container clickable so<04:16:31.880> it<04:16:32.000> points<04:16:32.239> to<04:16:32.359> a<04:16:32.560> post<04:16:33.359> and<04:16:33.520> then<04:16:33.720> if<04:16:33.840> you 04:16:33.950 --> 04:16:33.960 align:start position:0% so it points to a post and then if you 04:16:33.960 --> 04:16:35.910 align:start position:0% so it points to a post and then if you click<04:16:34.159> it<04:16:34.399> here<04:16:34.720> it's<04:16:34.840> only<04:16:35.040> going<04:16:35.199> to<04:16:35.359> like<04:16:35.600> it 04:16:35.910 --> 04:16:35.920 align:start position:0% click it here it's only going to like it 04:16:35.920 --> 04:16:37.349 align:start position:0% click it here it's only going to like it it's<04:16:36.080> not<04:16:36.279> going<04:16:36.399> to<04:16:36.520> do<04:16:36.680> any<04:16:36.880> any<04:16:37.080> other 04:16:37.349 --> 04:16:37.359 align:start position:0% it's not going to do any any other 04:16:37.359 --> 04:16:39.550 align:start position:0% it's not going to do any any other action<04:16:37.960> like<04:16:38.199> go<04:16:38.399> to<04:16:38.560> the<04:16:38.720> Post 04:16:39.550 --> 04:16:39.560 align:start position:0% action like go to the Post 04:16:39.560 --> 04:16:42.030 align:start position:0% action like go to the Post details<04:16:40.560> then<04:16:40.800> we<04:16:40.960> have<04:16:41.080> to<04:16:41.279> update<04:16:41.640> the<04:16:41.800> likes 04:16:42.030 --> 04:16:42.040 align:start position:0% details then we have to update the likes 04:16:42.040 --> 04:16:45.790 align:start position:0% details then we have to update the likes array<04:16:42.600> by<04:16:42.760> saying<04:16:43.199> new<04:16:43.800> likes<04:16:44.439> is<04:16:44.640> equal<04:16:45.000> to<04:16:45.560> an 04:16:45.790 --> 04:16:45.800 align:start position:0% array by saying new likes is equal to an 04:16:45.800 --> 04:16:48.229 align:start position:0% array by saying new likes is equal to an array<04:16:46.319> where<04:16:46.479> we<04:16:46.640> spread<04:16:47.199> all<04:16:47.439> the<04:16:47.600> previous 04:16:48.229 --> 04:16:48.239 align:start position:0% array where we spread all the previous 04:16:48.239 --> 04:16:52.590 align:start position:0% array where we spread all the previous likes<04:16:49.239> and<04:16:49.479> then<04:16:49.920> we<04:16:50.040> need<04:16:50.199> to<04:16:50.399> check<04:16:51.199> if<04:16:52.159> new 04:16:52.590 --> 04:16:52.600 align:start position:0% likes and then we need to check if new 04:16:52.600 --> 04:16:56.309 align:start position:0% likes and then we need to check if new likes<04:16:53.600> that<04:16:54.000> includes<04:16:55.000> the<04:16:55.199> current<04:16:55.600> user<04:16:55.920> ID 04:16:56.309 --> 04:16:56.319 align:start position:0% likes that includes the current user ID 04:16:56.319 --> 04:16:58.429 align:start position:0% likes that includes the current user ID like<04:16:56.920> meaning<04:16:57.319> if<04:16:57.479> they<04:16:57.640> have<04:16:57.800> already<04:16:58.159> liked 04:16:58.429 --> 04:16:58.439 align:start position:0% like meaning if they have already liked 04:16:58.439 --> 04:17:00.910 align:start position:0% like meaning if they have already liked it<04:16:59.159> and<04:16:59.279> to<04:16:59.439> make<04:16:59.600> this<04:16:59.760> code<04:16:59.960> more<04:17:00.159> meaningful 04:17:00.910 --> 04:17:00.920 align:start position:0% it and to make this code more meaningful 04:17:00.920 --> 04:17:02.870 align:start position:0% it and to make this code more meaningful we<04:17:01.000> can<04:17:01.159> even<04:17:01.399> extract<04:17:01.840> this<04:17:02.080> right<04:17:02.239> here<04:17:02.680> and 04:17:02.870 --> 04:17:02.880 align:start position:0% we can even extract this right here and 04:17:02.880 --> 04:17:07.309 align:start position:0% we can even extract this right here and say<04:17:03.279> const<04:17:04.159> has<04:17:04.640> liked<04:17:05.439> is<04:17:05.680> equal<04:17:05.960> to<04:17:06.279> this 04:17:07.309 --> 04:17:07.319 align:start position:0% say const has liked is equal to this 04:17:07.319 --> 04:17:10.870 align:start position:0% say const has liked is equal to this so<04:17:07.720> if<04:17:08.640> has<04:17:08.960> liked<04:17:09.760> see<04:17:10.000> how<04:17:10.159> much<04:17:10.319> more<04:17:10.520> sense 04:17:10.870 --> 04:17:10.880 align:start position:0% so if has liked see how much more sense 04:17:10.880 --> 04:17:14.510 align:start position:0% so if has liked see how much more sense this<04:17:11.040> if<04:17:11.279> now<04:17:11.479> makes<04:17:12.479> so<04:17:12.760> if<04:17:13.119> has<04:17:13.399> liked<04:17:14.319> in 04:17:14.510 --> 04:17:14.520 align:start position:0% this if now makes so if has liked in 04:17:14.520 --> 04:17:17.070 align:start position:0% this if now makes so if has liked in that<04:17:14.720> case<04:17:15.040> we<04:17:15.119> can<04:17:15.359> update<04:17:15.920> the<04:17:16.080> likes<04:17:16.359> array 04:17:17.070 --> 04:17:17.080 align:start position:0% that case we can update the likes array 04:17:17.080 --> 04:17:20.750 align:start position:0% that case we can update the likes array or<04:17:17.319> rather<04:17:17.560> the<04:17:17.760> new<04:17:18.359> likes<04:17:19.319> to<04:17:19.479> be<04:17:19.680> equal<04:17:19.960> to 04:17:20.750 --> 04:17:20.760 align:start position:0% or rather the new likes to be equal to 04:17:20.760 --> 04:17:23.750 align:start position:0% or rather the new likes to be equal to new<04:17:21.319> likes. 04:17:23.750 --> 04:17:23.760 align:start position:0% new likes. 04:17:23.760 --> 04:17:26.710 align:start position:0% new likes. filter<04:17:24.760> where<04:17:24.880> we're<04:17:25.040> going<04:17:25.119> to<04:17:25.279> get<04:17:25.479> the<04:17:25.720> ID 04:17:26.710 --> 04:17:26.720 align:start position:0% filter where we're going to get the ID 04:17:26.720 --> 04:17:29.429 align:start position:0% filter where we're going to get the ID and<04:17:26.920> we<04:17:27.040> want<04:17:27.159> to<04:17:27.800> check<04:17:28.119> if<04:17:28.279> the<04:17:28.439> ID<04:17:29.000> is<04:17:29.199> not 04:17:29.429 --> 04:17:29.439 align:start position:0% and we want to check if the ID is not 04:17:29.439 --> 04:17:31.229 align:start position:0% and we want to check if the ID is not equal<04:17:29.680> to<04:17:29.840> the<04:17:29.960> user<04:17:30.239> ID<04:17:30.640> so<04:17:30.840> we're<04:17:30.960> going<04:17:31.040> to 04:17:31.229 --> 04:17:31.239 align:start position:0% equal to the user ID so we're going to 04:17:31.239 --> 04:17:34.229 align:start position:0% equal to the user ID so we're going to keep<04:17:31.680> all<04:17:31.920> the<04:17:32.119> likes<04:17:32.920> besides<04:17:33.720> the<04:17:33.880> current 04:17:34.229 --> 04:17:34.239 align:start position:0% keep all the likes besides the current 04:17:34.239 --> 04:17:36.550 align:start position:0% keep all the likes besides the current like<04:17:34.479> because<04:17:34.640> we<04:17:34.760> want<04:17:34.840> to<04:17:35.000> remove<04:17:35.359> it<04:17:36.359> and 04:17:36.550 --> 04:17:36.560 align:start position:0% like because we want to remove it and 04:17:36.560 --> 04:17:39.229 align:start position:0% like because we want to remove it and else<04:17:36.800> else<04:17:37.319> if<04:17:37.439> it<04:17:37.640> not<04:17:38.000> has<04:17:38.239> liked<04:17:38.840> we<04:17:38.960> simply 04:17:39.229 --> 04:17:39.239 align:start position:0% else else if it not has liked we simply 04:17:39.239 --> 04:17:41.910 align:start position:0% else else if it not has liked we simply want<04:17:39.319> to<04:17:39.479> call<04:17:39.880> new<04:17:40.199> likes.<04:17:41.159> push<04:17:41.640> and<04:17:41.720> we<04:17:41.840> want 04:17:41.910 --> 04:17:41.920 align:start position:0% want to call new likes. push and we want 04:17:41.920 --> 04:17:44.910 align:start position:0% want to call new likes. push and we want to<04:17:42.119> append<04:17:42.800> the<04:17:42.960> new<04:17:43.279> user<04:17:43.600> ID<04:17:44.119> because<04:17:44.760> that 04:17:44.910 --> 04:17:44.920 align:start position:0% to append the new user ID because that 04:17:44.920 --> 04:17:48.349 align:start position:0% to append the new user ID because that user<04:17:45.439> liked<04:17:45.800> it<04:17:46.239> too<04:17:47.239> finally<04:17:47.800> once<04:17:48.000> we<04:17:48.119> do 04:17:48.349 --> 04:17:48.359 align:start position:0% user liked it too finally once we do 04:17:48.359 --> 04:17:51.790 align:start position:0% user liked it too finally once we do that<04:17:48.680> we<04:17:48.800> want<04:17:48.920> to<04:17:49.319> set<04:17:50.119> likes<04:17:50.760> to<04:17:50.920> be<04:17:51.119> equal<04:17:51.399> to 04:17:51.790 --> 04:17:51.800 align:start position:0% that we want to set likes to be equal to 04:17:51.800 --> 04:17:54.990 align:start position:0% that we want to set likes to be equal to new<04:17:52.399> likes<04:17:53.399> and<04:17:53.640> we<04:17:53.760> want<04:17:53.880> to<04:17:54.040> call<04:17:54.520> the<04:17:54.680> like 04:17:54.990 --> 04:17:55.000 align:start position:0% new likes and we want to call the like 04:17:55.000 --> 04:17:58.229 align:start position:0% new likes and we want to call the like post<04:17:55.319> mutation<04:17:56.319> so<04:17:56.479> we<04:17:56.560> can<04:17:56.720> say<04:17:56.920> like<04:17:57.279> post<04:17:57.920> to 04:17:58.229 --> 04:17:58.239 align:start position:0% post mutation so we can say like post to 04:17:58.239 --> 04:18:00.750 align:start position:0% post mutation so we can say like post to which<04:17:58.479> we<04:17:58.600> need<04:17:58.720> to<04:17:58.920> pass<04:17:59.159> the<04:17:59.319> post<04:17:59.640> ID<04:18:00.600> which 04:18:00.750 --> 04:18:00.760 align:start position:0% which we need to pass the post ID which 04:18:00.760 --> 04:18:04.710 align:start position:0% which we need to pass the post ID which is<04:18:00.920> of<04:18:01.119> a<04:18:01.840> post.<04:18:02.840> dollar<04:18:03.119> sign<04:18:03.359> ID<04:18:04.239> and<04:18:04.560> the 04:18:04.710 --> 04:18:04.720 align:start position:0% is of a post. dollar sign ID and the 04:18:04.720 --> 04:18:06.830 align:start position:0% is of a post. dollar sign ID and the likes<04:18:05.000> array<04:18:05.479> you<04:18:05.600> can<04:18:05.720> see<04:18:06.040> typescript<04:18:06.520> even 04:18:06.830 --> 04:18:06.840 align:start position:0% likes array you can see typescript even 04:18:06.840 --> 04:18:08.630 align:start position:0% likes array you can see typescript even lets<04:18:07.000> us<04:18:07.159> know<04:18:07.399> what<04:18:07.560> we<04:18:07.680> have<04:18:07.800> to<04:18:08.040> pass<04:18:08.439> right 04:18:08.630 --> 04:18:08.640 align:start position:0% lets us know what we have to pass right 04:18:08.640 --> 04:18:12.590 align:start position:0% lets us know what we have to pass right here<04:18:09.199> it's<04:18:09.399> going<04:18:09.560> to<04:18:09.720> be<04:18:10.279> the<04:18:10.479> new 04:18:12.590 --> 04:18:12.600 align:start position:0% here it's going to be the new 04:18:12.600 --> 04:18:16.269 align:start position:0% here it's going to be the new likes<04:18:13.600> there<04:18:13.800> we<04:18:14.199> go<04:18:15.199> but<04:18:15.439> if<04:18:15.560> we<04:18:15.680> do<04:18:15.840> it<04:18:16.080> it's 04:18:16.269 --> 04:18:16.279 align:start position:0% likes there we go but if we do it it's 04:18:16.279 --> 04:18:18.550 align:start position:0% likes there we go but if we do it it's complaining<04:18:16.960> that<04:18:17.119> the<04:18:17.279> argument<04:18:17.840> type<04:18:18.239> new 04:18:18.550 --> 04:18:18.560 align:start position:0% complaining that the argument type new 04:18:18.560 --> 04:18:20.750 align:start position:0% complaining that the argument type new likes<04:18:18.960> is<04:18:19.119> not<04:18:19.359> assignable<04:18:19.880> to<04:18:20.119> parameter<04:18:20.560> of 04:18:20.750 --> 04:18:20.760 align:start position:0% likes is not assignable to parameter of 04:18:20.760 --> 04:18:23.670 align:start position:0% likes is not assignable to parameter of type<04:18:21.040> likes<04:18:21.399> array<04:18:22.319> so<04:18:22.760> this<04:18:22.880> is<04:18:23.040> really<04:18:23.279> good 04:18:23.670 --> 04:18:23.680 align:start position:0% type likes array so this is really good 04:18:23.680 --> 04:18:25.309 align:start position:0% type likes array so this is really good again<04:18:23.960> thank<04:18:24.119> you<04:18:24.279> typescript<04:18:24.920> we<04:18:25.040> have<04:18:25.159> to 04:18:25.309 --> 04:18:25.319 align:start position:0% again thank you typescript we have to 04:18:25.319 --> 04:18:27.510 align:start position:0% again thank you typescript we have to Define<04:18:25.680> likes<04:18:26.000> array<04:18:26.560> and<04:18:26.720> then<04:18:27.000> pass<04:18:27.279> new 04:18:27.510 --> 04:18:27.520 align:start position:0% Define likes array and then pass new 04:18:27.520 --> 04:18:30.349 align:start position:0% Define likes array and then pass new likes<04:18:28.239> right<04:18:28.520> here<04:18:29.520> and<04:18:29.680> now<04:18:29.960> this<04:18:30.080> is<04:18:30.199> the 04:18:30.349 --> 04:18:30.359 align:start position:0% likes right here and now this is the 04:18:30.359 --> 04:18:31.990 align:start position:0% likes right here and now this is the function<04:18:30.760> that's<04:18:30.920> going<04:18:31.040> to<04:18:31.239> handle<04:18:31.520> the<04:18:31.680> like 04:18:31.990 --> 04:18:32.000 align:start position:0% function that's going to handle the like 04:18:32.000 --> 04:18:34.870 align:start position:0% function that's going to handle the like post<04:18:32.760> and<04:18:32.880> as<04:18:33.000> you<04:18:33.080> can<04:18:33.319> see<04:18:34.319> this<04:18:34.439> is<04:18:34.600> being 04:18:34.870 --> 04:18:34.880 align:start position:0% post and as you can see this is being 04:18:34.880 --> 04:18:37.189 align:start position:0% post and as you can see this is being used<04:18:35.800> and<04:18:35.920> then<04:18:36.080> also<04:18:36.359> this<04:18:36.720> mutation<04:18:37.080> is 04:18:37.189 --> 04:18:37.199 align:start position:0% used and then also this mutation is 04:18:37.199 --> 04:18:39.630 align:start position:0% used and then also this mutation is being<04:18:37.439> used<04:18:37.760> as<04:18:37.920> well<04:18:38.800> now<04:18:39.080> let's<04:18:39.279> do<04:18:39.479> a 04:18:39.630 --> 04:18:39.640 align:start position:0% being used as well now let's do a 04:18:39.640 --> 04:18:42.550 align:start position:0% being used as well now let's do a similar<04:18:40.080> thing<04:18:40.319> for<04:18:40.600> the<04:18:40.760> save<04:18:41.760> as<04:18:41.960> before<04:18:42.439> we 04:18:42.550 --> 04:18:42.560 align:start position:0% similar thing for the save as before we 04:18:42.560 --> 04:18:44.990 align:start position:0% similar thing for the save as before we can<04:18:42.760> duplicate<04:18:43.479> all<04:18:43.760> the<04:18:43.960> logic<04:18:44.560> within<04:18:44.880> our 04:18:44.990 --> 04:18:45.000 align:start position:0% can duplicate all the logic within our 04:18:45.000 --> 04:18:49.229 align:start position:0% can duplicate all the logic within our handle<04:18:45.399> like<04:18:46.080> post<04:18:47.080> collapse<04:18:47.560> it<04:18:48.439> and<04:18:48.800> put<04:18:48.960> it 04:18:49.229 --> 04:18:49.239 align:start position:0% handle like post collapse it and put it 04:18:49.239 --> 04:18:53.189 align:start position:0% handle like post collapse it and put it right<04:18:49.479> here<04:18:49.920> within<04:18:50.279> our<04:18:50.520> handle<04:18:51.119> save<04:18:52.199> post 04:18:53.189 --> 04:18:53.199 align:start position:0% right here within our handle save post 04:18:53.199 --> 04:18:55.510 align:start position:0% right here within our handle save post we<04:18:53.319> also<04:18:53.520> need<04:18:53.680> to<04:18:53.880> get<04:18:54.199> the<04:18:54.439> react<04:18:55.040> mouse 04:18:55.510 --> 04:18:55.520 align:start position:0% we also need to get the react mouse 04:18:55.520 --> 04:18:58.269 align:start position:0% we also need to get the react mouse event<04:18:56.159> right<04:18:56.359> here<04:18:57.319> and<04:18:57.439> then<04:18:57.600> the<04:18:57.760> logic<04:18:58.119> is 04:18:58.269 --> 04:18:58.279 align:start position:0% event right here and then the logic is 04:18:58.279 --> 04:19:01.670 align:start position:0% event right here and then the logic is going<04:18:58.439> to<04:18:58.600> be<04:18:58.960> even<04:18:59.720> simpler<04:19:00.720> we<04:19:00.840> can<04:19:01.000> delete 04:19:01.670 --> 04:19:01.680 align:start position:0% going to be even simpler we can delete 04:19:01.680 --> 04:19:06.109 align:start position:0% going to be even simpler we can delete everything<04:19:02.159> right<04:19:02.399> here<04:19:03.359> and<04:19:03.560> we<04:19:03.680> can<04:19:03.880> say<04:19:05.119> if 04:19:06.109 --> 04:19:06.119 align:start position:0% everything right here and we can say if 04:19:06.119 --> 04:19:09.950 align:start position:0% everything right here and we can say if saved<04:19:07.040> post<04:19:07.600> record<04:19:08.600> so<04:19:09.159> have<04:19:09.359> we<04:19:09.560> already 04:19:09.950 --> 04:19:09.960 align:start position:0% saved post record so have we already 04:19:09.960 --> 04:19:11.550 align:start position:0% saved post record so have we already saved<04:19:10.319> it<04:19:10.840> and<04:19:10.960> how<04:19:11.080> are<04:19:11.159> we're<04:19:11.279> going<04:19:11.439> to 04:19:11.550 --> 04:19:11.560 align:start position:0% saved it and how are we're going to 04:19:11.560 --> 04:19:13.670 align:start position:0% saved it and how are we're going to figure<04:19:11.880> that<04:19:12.040> out<04:19:12.760> well<04:19:12.920> let's<04:19:13.159> define<04:19:13.439> it 04:19:13.670 --> 04:19:13.680 align:start position:0% figure that out well let's define it 04:19:13.680 --> 04:19:18.030 align:start position:0% figure that out well let's define it right<04:19:13.920> here<04:19:14.680> const<04:19:15.359> saved<04:19:16.119> post<04:19:16.840> record<04:19:17.840> it's 04:19:18.030 --> 04:19:18.040 align:start position:0% right here const saved post record it's 04:19:18.040 --> 04:19:21.229 align:start position:0% right here const saved post record it's going<04:19:18.159> to<04:19:18.319> be<04:19:18.479> equal<04:19:18.760> to<04:19:19.239> to<04:19:19.439> the<04:19:19.640> current<04:19:20.239> user 04:19:21.229 --> 04:19:21.239 align:start position:0% going to be equal to to the current user 04:19:21.239 --> 04:19:24.790 align:start position:0% going to be equal to to the current user question<04:19:21.640> mark.<04:19:22.279> saave<04:19:23.040> doind<04:19:24.040> so<04:19:24.159> we<04:19:24.279> want<04:19:24.399> to 04:19:24.790 --> 04:19:24.800 align:start position:0% question mark. saave doind so we want to 04:19:24.800 --> 04:19:29.429 align:start position:0% question mark. saave doind so we want to find<04:19:25.800> if<04:19:26.239> the<04:19:26.439> record<04:19:27.239> exists<04:19:28.239> of<04:19:28.399> a<04:19:28.600> type 04:19:29.429 --> 04:19:29.439 align:start position:0% find if the record exists of a type 04:19:29.439 --> 04:19:33.070 align:start position:0% find if the record exists of a type models.<04:19:30.760> document<04:19:31.760> meaning<04:19:32.239> is<04:19:32.520> that<04:19:32.720> user 04:19:33.070 --> 04:19:33.080 align:start position:0% models. document meaning is that user 04:19:33.080 --> 04:19:35.269 align:start position:0% models. document meaning is that user added<04:19:33.359> to<04:19:33.560> the<04:19:34.399> array<04:19:34.680> of<04:19:34.800> the<04:19:34.880> user<04:19:35.119> that 04:19:35.269 --> 04:19:35.279 align:start position:0% added to the array of the user that 04:19:35.279 --> 04:19:37.790 align:start position:0% added to the array of the user that saved<04:19:35.520> the<04:19:35.680> post<04:19:36.359> and<04:19:36.640> we<04:19:36.720> can<04:19:36.840> check<04:19:37.159> that<04:19:37.560> by 04:19:37.790 --> 04:19:37.800 align:start position:0% saved the post and we can check that by 04:19:37.800 --> 04:19:43.229 align:start position:0% saved the post and we can check that by saying<04:19:38.760> find<04:19:39.680> where<04:19:39.920> the<04:19:40.119> record<04:19:40.640> doore<04:19:41.960> ID<04:19:42.960> is 04:19:43.229 --> 04:19:43.239 align:start position:0% saying find where the record doore ID is 04:19:43.239 --> 04:19:46.910 align:start position:0% saying find where the record doore ID is triple<04:19:43.680> equal<04:19:44.000> to<04:19:44.680> to<04:19:45.000> the<04:19:45.399> post.<04:19:46.359> dollar<04:19:46.680> sign 04:19:46.910 --> 04:19:46.920 align:start position:0% triple equal to to the post. dollar sign 04:19:46.920 --> 04:19:50.109 align:start position:0% triple equal to to the post. dollar sign ID<04:19:47.920> there<04:19:48.080> we<04:19:48.239> go<04:19:49.119> so<04:19:49.359> now<04:19:49.560> we're<04:19:49.720> trying<04:19:49.960> to 04:19:50.109 --> 04:19:50.119 align:start position:0% ID there we go so now we're trying to 04:19:50.119 --> 04:19:53.830 align:start position:0% ID there we go so now we're trying to figure<04:19:50.359> it<04:19:50.520> out<04:19:51.319> if<04:19:51.680> there<04:19:51.920> is<04:19:52.319> such<04:19:52.520> a<04:19:52.840> thing 04:19:53.830 --> 04:19:53.840 align:start position:0% figure it out if there is such a thing 04:19:53.840 --> 04:19:57.510 align:start position:0% figure it out if there is such a thing in<04:19:54.080> that<04:19:54.319> case<04:19:54.840> we<04:19:54.960> want<04:19:55.119> to<04:19:55.359> set<04:19:55.800> is<04:19:56.159> saved<04:19:56.720> to 04:19:57.510 --> 04:19:57.520 align:start position:0% in that case we want to set is saved to 04:19:57.520 --> 04:20:00.590 align:start position:0% in that case we want to set is saved to false<04:19:58.520> and<04:19:58.720> we<04:19:58.840> want<04:19:58.960> to<04:19:59.159> call<04:19:59.800> the<04:20:00.000> delete 04:20:00.590 --> 04:20:00.600 align:start position:0% false and we want to call the delete 04:20:00.600 --> 04:20:04.469 align:start position:0% false and we want to call the delete saved<04:20:01.000> post<04:20:01.760> to<04:20:02.119> which<04:20:02.560> we<04:20:02.680> want<04:20:02.840> to<04:20:03.159> pass<04:20:04.080> the 04:20:04.469 --> 04:20:04.479 align:start position:0% saved post to which we want to pass the 04:20:04.479 --> 04:20:07.750 align:start position:0% saved post to which we want to pass the saved<04:20:05.479> post<04:20:06.119> record 04:20:07.750 --> 04:20:07.760 align:start position:0% saved post record 04:20:07.760 --> 04:20:11.189 align:start position:0% saved post record do<04:20:08.319> dollar<04:20:08.720> sign<04:20:09.199> ID<04:20:10.040> so<04:20:10.319> if<04:20:10.520> we<04:20:10.680> already<04:20:11.000> have 04:20:11.189 --> 04:20:11.199 align:start position:0% do dollar sign ID so if we already have 04:20:11.199 --> 04:20:13.229 align:start position:0% do dollar sign ID so if we already have saved<04:20:11.520> it<04:20:11.840> and<04:20:11.960> if<04:20:12.040> we<04:20:12.239> click<04:20:12.479> it<04:20:12.680> again<04:20:13.119> we 04:20:13.229 --> 04:20:13.239 align:start position:0% saved it and if we click it again we 04:20:13.239 --> 04:20:15.710 align:start position:0% saved it and if we click it again we want<04:20:13.359> to<04:20:13.560> remove<04:20:13.840> it<04:20:13.960> from<04:20:14.159> Saved<04:20:15.159> and<04:20:15.359> then<04:20:15.600> we 04:20:15.710 --> 04:20:15.720 align:start position:0% want to remove it from Saved and then we 04:20:15.720 --> 04:20:19.309 align:start position:0% want to remove it from Saved and then we want<04:20:15.840> to<04:20:16.040> call<04:20:16.600> the<04:20:16.800> save<04:20:17.600> post<04:20:18.600> to<04:20:18.840> it<04:20:19.080> we<04:20:19.199> need 04:20:19.309 --> 04:20:19.319 align:start position:0% want to call the save post to it we need 04:20:19.319 --> 04:20:23.229 align:start position:0% want to call the save post to it we need to<04:20:19.560> pass<04:20:19.800> the<04:20:20.000> post<04:20:20.399> ID<04:20:21.199> of<04:20:21.359> a<04:20:21.600> type<04:20:22.239> post. 04:20:23.229 --> 04:20:23.239 align:start position:0% to pass the post ID of a type post. 04:20:23.239 --> 04:20:27.109 align:start position:0% to pass the post ID of a type post. dollar<04:20:23.560> sign<04:20:23.800> ID<04:20:24.640> and<04:20:24.800> also<04:20:25.119> the<04:20:25.279> user 04:20:27.109 --> 04:20:27.119 align:start position:0% dollar sign ID and also the user 04:20:27.119 --> 04:20:32.550 align:start position:0% dollar sign ID and also the user ID<04:20:28.119> and<04:20:28.319> we<04:20:28.439> can<04:20:28.640> finally<04:20:29.239> set<04:20:30.239> is<04:20:30.960> saved<04:20:31.960> to 04:20:32.550 --> 04:20:32.560 align:start position:0% ID and we can finally set is saved to 04:20:32.560 --> 04:20:34.990 align:start position:0% ID and we can finally set is saved to true<04:20:33.399> in<04:20:33.600> this<04:20:33.760> case<04:20:34.000> of<04:20:34.159> course<04:20:34.680> it's<04:20:34.840> going 04:20:34.990 --> 04:20:35.000 align:start position:0% true in this case of course it's going 04:20:35.000 --> 04:20:37.070 align:start position:0% true in this case of course it's going to<04:20:35.199> handle<04:20:35.560> both<04:20:35.880> action 04:20:37.070 --> 04:20:37.080 align:start position:0% to handle both action 04:20:37.080 --> 04:20:39.109 align:start position:0% to handle both action and<04:20:37.319> please<04:20:37.640> take<04:20:37.760> a<04:20:37.960> second<04:20:38.439> and<04:20:38.600> notice<04:20:39.000> if 04:20:39.109 --> 04:20:39.119 align:start position:0% and please take a second and notice if 04:20:39.119 --> 04:20:41.030 align:start position:0% and please take a second and notice if I've<04:20:39.279> made<04:20:39.439> a<04:20:39.600> mistake<04:20:40.199> here<04:20:40.399> we<04:20:40.520> have<04:20:40.640> an<04:20:40.800> if 04:20:41.030 --> 04:20:41.040 align:start position:0% I've made a mistake here we have an if 04:20:41.040 --> 04:20:43.870 align:start position:0% I've made a mistake here we have an if statement<04:20:41.840> that<04:20:42.000> delete<04:20:42.439> the<04:20:42.600> save<04:20:43.399> but<04:20:43.560> then 04:20:43.870 --> 04:20:43.880 align:start position:0% statement that delete the save but then 04:20:43.880 --> 04:20:47.070 align:start position:0% statement that delete the save but then every<04:20:44.239> time<04:20:44.720> as<04:20:44.880> well<04:20:45.359> we<04:20:45.520> also<04:20:45.760> called<04:20:46.199> this 04:20:47.070 --> 04:20:47.080 align:start position:0% every time as well we also called this 04:20:47.080 --> 04:20:48.830 align:start position:0% every time as well we also called this that's<04:20:47.279> because<04:20:47.479> we<04:20:47.600> didn't<04:20:48.040> return<04:20:48.600> right 04:20:48.830 --> 04:20:48.840 align:start position:0% that's because we didn't return right 04:20:48.840 --> 04:20:51.830 align:start position:0% that's because we didn't return right here<04:20:49.640> if<04:20:49.720> you<04:20:49.960> add<04:20:50.199> a<04:20:50.560> return<04:20:50.920> statement<04:20:51.640> like 04:20:51.830 --> 04:20:51.840 align:start position:0% here if you add a return statement like 04:20:51.840 --> 04:20:54.550 align:start position:0% here if you add a return statement like so<04:20:52.560> it's<04:20:52.680> going<04:20:52.840> to<04:20:53.080> stop<04:20:53.439> the<04:20:53.600> execution<04:20:54.399> of 04:20:54.550 --> 04:20:54.560 align:start position:0% so it's going to stop the execution of 04:20:54.560 --> 04:20:57.349 align:start position:0% so it's going to stop the execution of all<04:20:54.720> the<04:20:54.840> other<04:20:55.119> blocks<04:20:56.119> or<04:20:56.560> an<04:20:56.760> alternative 04:20:57.349 --> 04:20:57.359 align:start position:0% all the other blocks or an alternative 04:20:57.359 --> 04:21:00.309 align:start position:0% all the other blocks or an alternative is<04:20:57.720> to<04:20:58.000> also<04:20:58.399> add<04:20:58.680> an<04:20:58.840> else<04:20:59.239> here<04:20:59.880> so<04:21:00.080> we<04:21:00.159> can 04:21:00.309 --> 04:21:00.319 align:start position:0% is to also add an else here so we can 04:21:00.319 --> 04:21:04.870 align:start position:0% is to also add an else here so we can say<04:21:01.040> if<04:21:01.279> it<04:21:01.399> is<04:21:01.880> not<04:21:02.439> saved<04:21:03.439> then<04:21:03.760> save<04:21:04.040> it<04:21:04.760> if 04:21:04.870 --> 04:21:04.880 align:start position:0% say if it is not saved then save it if 04:21:04.880 --> 04:21:09.030 align:start position:0% say if it is not saved then save it if it<04:21:05.000> is<04:21:05.199> saved<04:21:05.800> then<04:21:06.000> remove<04:21:06.920> saved<04:21:07.920> here<04:21:08.080> we<04:21:08.279> go 04:21:09.030 --> 04:21:09.040 align:start position:0% it is saved then remove saved here we go 04:21:09.040 --> 04:21:12.469 align:start position:0% it is saved then remove saved here we go and<04:21:09.239> now<04:21:09.640> we<04:21:09.760> can<04:21:10.000> save<04:21:10.560> this<04:21:11.560> this<04:21:11.840> gives<04:21:12.040> us<04:21:12.319> a 04:21:12.469 --> 04:21:12.479 align:start position:0% and now we can save this this gives us a 04:21:12.479 --> 04:21:14.910 align:start position:0% and now we can save this this gives us a lot<04:21:12.640> of<04:21:12.840> data<04:21:13.119> to<04:21:13.319> work<04:21:13.600> with<04:21:14.239> but<04:21:14.600> before<04:21:14.800> we 04:21:14.910 --> 04:21:14.920 align:start position:0% lot of data to work with but before we 04:21:14.920 --> 04:21:16.950 align:start position:0% lot of data to work with but before we go<04:21:15.040> ahead<04:21:15.239> and<04:21:15.359> test<04:21:15.560> it<04:21:15.680> out<04:21:16.159> typescript<04:21:16.800> is 04:21:16.950 --> 04:21:16.960 align:start position:0% go ahead and test it out typescript is 04:21:16.960 --> 04:21:19.830 align:start position:0% go ahead and test it out typescript is trying<04:21:17.239> to<04:21:17.479> save<04:21:17.800> us<04:21:18.239> one<04:21:18.439> more<04:21:18.760> time<04:21:19.720> it's 04:21:19.830 --> 04:21:19.840 align:start position:0% trying to save us one more time it's 04:21:19.840 --> 04:21:22.710 align:start position:0% trying to save us one more time it's saying<04:21:20.199> property<04:21:20.680> data<04:21:21.040> does<04:21:21.279> not<04:21:21.560> exist<04:21:21.960> on<04:21:22.239> I 04:21:22.710 --> 04:21:22.720 align:start position:0% saying property data does not exist on I 04:21:22.720 --> 04:21:25.070 align:start position:0% saying property data does not exist on I context<04:21:23.239> type<04:21:24.239> and<04:21:24.399> that's<04:21:24.600> because<04:21:24.880> I've 04:21:25.070 --> 04:21:25.080 align:start position:0% context type and that's because I've 04:21:25.080 --> 04:21:27.510 align:start position:0% context type and that's because I've made<04:21:25.239> a<04:21:25.439> mistake<04:21:26.439> this<04:21:26.640> should<04:21:26.840> not<04:21:27.040> be<04:21:27.199> coming 04:21:27.510 --> 04:21:27.520 align:start position:0% made a mistake this should not be coming 04:21:27.520 --> 04:21:30.070 align:start position:0% made a mistake this should not be coming from<04:21:27.680> the<04:21:27.840> get<04:21:28.119> user<04:21:28.560> context<04:21:29.560> it<04:21:29.720> should<04:21:29.920> be 04:21:30.070 --> 04:21:30.080 align:start position:0% from the get user context it should be 04:21:30.080 --> 04:21:34.469 align:start position:0% from the get user context it should be coming<04:21:30.359> from<04:21:30.800> use<04:21:31.720> get<04:21:32.560> current<04:21:33.439> user<04:21:34.319> which 04:21:34.469 --> 04:21:34.479 align:start position:0% coming from use get current user which 04:21:34.479 --> 04:21:36.750 align:start position:0% coming from use get current user which is<04:21:34.600> a<04:21:34.840> new<04:21:35.239> function<04:21:35.600> or<04:21:35.720> a<04:21:35.880> new<04:21:36.119> query<04:21:36.399> quy 04:21:36.750 --> 04:21:36.760 align:start position:0% is a new function or a new query quy 04:21:36.760 --> 04:21:39.910 align:start position:0% is a new function or a new query quy that<04:21:36.880> we<04:21:37.000> have<04:21:37.119> to<04:21:37.800> create<04:21:38.800> this<04:21:39.000> query<04:21:39.520> is<04:21:39.720> not 04:21:39.910 --> 04:21:39.920 align:start position:0% that we have to create this query is not 04:21:39.920 --> 04:21:42.429 align:start position:0% that we have to create this query is not only<04:21:40.239> going<04:21:40.399> to<04:21:40.600> give<04:21:40.720> us<04:21:40.920> the<04:21:41.040> user's<04:21:41.479> ID<04:21:42.239> and 04:21:42.429 --> 04:21:42.439 align:start position:0% only going to give us the user's ID and 04:21:42.439 --> 04:21:45.349 align:start position:0% only going to give us the user's ID and the<04:21:42.600> name<04:21:43.159> as<04:21:43.279> we<04:21:43.439> get<04:21:43.640> from<04:21:43.840> the<04:21:44.000> odd<04:21:44.479> context 04:21:45.349 --> 04:21:45.359 align:start position:0% the name as we get from the odd context 04:21:45.359 --> 04:21:46.870 align:start position:0% the name as we get from the odd context it's<04:21:45.560> also<04:21:45.800> going<04:21:46.000> to<04:21:46.199> give<04:21:46.359> us<04:21:46.600> more 04:21:46.870 --> 04:21:46.880 align:start position:0% it's also going to give us more 04:21:46.880 --> 04:21:49.510 align:start position:0% it's also going to give us more information<04:21:47.760> such<04:21:47.960> as<04:21:48.279> which<04:21:48.560> posts<04:21:49.199> does<04:21:49.399> the 04:21:49.510 --> 04:21:49.520 align:start position:0% information such as which posts does the 04:21:49.520 --> 04:21:51.990 align:start position:0% information such as which posts does the user<04:21:49.840> have<04:21:50.040> saved<04:21:50.840> and<04:21:51.040> based<04:21:51.359> off<04:21:51.560> of<04:21:51.760> that 04:21:51.990 --> 04:21:52.000 align:start position:0% user have saved and based off of that 04:21:52.000 --> 04:21:53.590 align:start position:0% user have saved and based off of that we'll<04:21:52.159> be<04:21:52.279> able<04:21:52.520> to<04:21:52.640> figure<04:21:52.920> out<04:21:53.279> whether<04:21:53.479> we 04:21:53.590 --> 04:21:53.600 align:start position:0% we'll be able to figure out whether we 04:21:53.600 --> 04:21:57.309 align:start position:0% we'll be able to figure out whether we need<04:21:53.760> to<04:21:54.000> save<04:21:54.520> or<04:21:55.040> unsave<04:21:56.040> so<04:21:56.640> let's<04:21:56.920> go<04:21:57.080> to 04:21:57.309 --> 04:21:57.319 align:start position:0% need to save or unsave so let's go to 04:21:57.319 --> 04:22:00.349 align:start position:0% need to save or unsave so let's go to our<04:21:57.560> queries<04:21:58.119> and 04:22:00.349 --> 04:22:00.359 align:start position:0% our queries and 04:22:00.359 --> 04:22:05.309 align:start position:0% our queries and mutations<04:22:01.359> we<04:22:01.479> can<04:22:01.920> export<04:22:02.920> const<04:22:03.880> use<04:22:04.680> get 04:22:05.309 --> 04:22:05.319 align:start position:0% mutations we can export const use get 04:22:05.319 --> 04:22:07.510 align:start position:0% mutations we can export const use get current<04:22:05.960> user 04:22:07.510 --> 04:22:07.520 align:start position:0% current user 04:22:07.520 --> 04:22:09.510 align:start position:0% current user which<04:22:07.640> is<04:22:07.800> going<04:22:07.960> to<04:22:08.080> be<04:22:08.199> an<04:22:08.319> arrow<04:22:08.680> function 04:22:09.510 --> 04:22:09.520 align:start position:0% which is going to be an arrow function 04:22:09.520 --> 04:22:12.910 align:start position:0% which is going to be an arrow function and<04:22:09.640> we<04:22:09.760> can<04:22:10.080> return<04:22:10.399> a<04:22:10.640> simple<04:22:11.279> use<04:22:11.920> Query 04:22:12.910 --> 04:22:12.920 align:start position:0% and we can return a simple use Query 04:22:12.920 --> 04:22:18.269 align:start position:0% and we can return a simple use Query where<04:22:13.319> we<04:22:13.560> pass<04:22:13.760> the<04:22:13.920> query<04:22:14.399> key<04:22:15.159> of<04:22:16.359> query 04:22:18.269 --> 04:22:18.279 align:start position:0% where we pass the query key of query 04:22:18.279 --> 04:22:23.149 align:start position:0% where we pass the query key of query keys.<04:22:19.279> get<04:22:20.040> current<04:22:21.199> user<04:22:22.199> and<04:22:22.600> a<04:22:22.760> query 04:22:23.149 --> 04:22:23.159 align:start position:0% keys. get current user and a query 04:22:23.159 --> 04:22:25.590 align:start position:0% keys. get current user and a query function<04:22:23.760> which<04:22:23.880> we're<04:22:24.000> going<04:22:24.080> to<04:22:24.399> call<04:22:25.399> is 04:22:25.590 --> 04:22:25.600 align:start position:0% function which we're going to call is 04:22:25.600 --> 04:22:30.750 align:start position:0% function which we're going to call is going<04:22:25.760> to<04:22:26.319> be<04:22:27.319> get<04:22:28.399> current<04:22:29.399> user<04:22:30.279> and<04:22:30.520> this<04:22:30.600> is 04:22:30.750 --> 04:22:30.760 align:start position:0% going to be get current user and this is 04:22:30.760 --> 04:22:34.030 align:start position:0% going to be get current user and this is coming<04:22:31.040> from<04:22:31.359> aight<04:22:32.399> API<04:22:33.399> we<04:22:33.560> have<04:22:33.720> already 04:22:34.030 --> 04:22:34.040 align:start position:0% coming from aight API we have already 04:22:34.040 --> 04:22:36.189 align:start position:0% coming from aight API we have already created<04:22:34.439> this<04:22:34.600> API<04:22:35.040> function<04:22:35.439> before<04:22:35.960> because 04:22:36.189 --> 04:22:36.199 align:start position:0% created this API function before because 04:22:36.199 --> 04:22:38.229 align:start position:0% created this API function before because we<04:22:36.359> we<04:22:36.439> needed<04:22:36.640> it<04:22:36.800> for<04:22:37.000> the<04:22:37.199> context<04:22:37.960> we<04:22:38.080> can 04:22:38.229 --> 04:22:38.239 align:start position:0% we we needed it for the context we can 04:22:38.239 --> 04:22:41.910 align:start position:0% we we needed it for the context we can get<04:22:38.359> it<04:22:38.560> here<04:22:38.760> as<04:22:38.960> well<04:22:39.960> and<04:22:40.199> now<04:22:40.800> if<04:22:40.920> we<04:22:41.119> go 04:22:41.910 --> 04:22:41.920 align:start position:0% get it here as well and now if we go 04:22:41.920 --> 04:22:44.750 align:start position:0% get it here as well and now if we go back<04:22:42.920> we<04:22:43.040> can<04:22:43.239> import<04:22:43.640> the<04:22:43.800> used<04:22:44.199> get<04:22:44.439> current 04:22:44.750 --> 04:22:44.760 align:start position:0% back we can import the used get current 04:22:44.760 --> 04:22:46.710 align:start position:0% back we can import the used get current user<04:22:45.359> and<04:22:45.479> we<04:22:45.600> can<04:22:45.760> remove<04:22:46.040> the<04:22:46.159> import<04:22:46.560> from 04:22:46.710 --> 04:22:46.720 align:start position:0% user and we can remove the import from 04:22:46.720 --> 04:22:47.389 align:start position:0% user and we can remove the import from the 04:22:47.389 --> 04:22:47.399 align:start position:0% the 04:22:47.399 --> 04:22:50.389 align:start position:0% the context<04:22:48.399> there<04:22:48.560> we<04:22:48.760> go<04:22:49.199> everything<04:22:49.600> works 04:22:50.389 --> 04:22:50.399 align:start position:0% context there we go everything works 04:22:50.399 --> 04:22:52.469 align:start position:0% context there we go everything works typescript<04:22:50.920> is<04:22:51.040> not<04:22:51.239> complaining<04:22:52.040> so<04:22:52.239> let's 04:22:52.469 --> 04:22:52.479 align:start position:0% typescript is not complaining so let's 04:22:52.479 --> 04:22:55.030 align:start position:0% typescript is not complaining so let's go<04:22:52.640> ahead<04:22:53.119> and<04:22:53.319> test<04:22:53.520> it<04:22:53.680> out<04:22:54.680> I'm<04:22:54.800> going<04:22:54.880> to 04:22:55.030 --> 04:22:55.040 align:start position:0% go ahead and test it out I'm going to 04:22:55.040 --> 04:22:56.870 align:start position:0% go ahead and test it out I'm going to press<04:22:55.239> the<04:22:55.359> like<04:22:55.640> button<04:22:56.119> really<04:22:56.399> carefully 04:22:56.870 --> 04:22:56.880 align:start position:0% press the like button really carefully 04:22:56.880 --> 04:22:58.349 align:start position:0% press the like button really carefully because<04:22:57.080> I'm<04:22:57.239> scared<04:22:57.640> we've<04:22:57.840> done<04:22:57.960> a<04:22:58.080> lot<04:22:58.199> of 04:22:58.349 --> 04:22:58.359 align:start position:0% because I'm scared we've done a lot of 04:22:58.359 --> 04:23:00.830 align:start position:0% because I'm scared we've done a lot of changes<04:22:59.040> hopefully<04:22:59.640> it 04:23:00.830 --> 04:23:00.840 align:start position:0% changes hopefully it 04:23:00.840 --> 04:23:04.030 align:start position:0% changes hopefully it works<04:23:01.840> okay<04:23:02.479> would<04:23:02.680> you<04:23:02.840> look<04:23:03.000> at<04:23:03.199> that<04:23:03.840> it's 04:23:04.030 --> 04:23:04.040 align:start position:0% works okay would you look at that it's 04:23:04.040 --> 04:23:08.109 align:start position:0% works okay would you look at that it's saved<04:23:05.000> and<04:23:05.279> it<04:23:05.479> unsaved<04:23:06.640> not<04:23:06.880> only<04:23:07.359> that<04:23:07.880> but 04:23:08.109 --> 04:23:08.119 align:start position:0% saved and it unsaved not only that but 04:23:08.119 --> 04:23:10.830 align:start position:0% saved and it unsaved not only that but it<04:23:08.279> did<04:23:08.439> it<04:23:09.239> instantaneously<04:23:10.239> the<04:23:10.399> reason<04:23:10.680> why 04:23:10.830 --> 04:23:10.840 align:start position:0% it did it instantaneously the reason why 04:23:10.840 --> 04:23:12.550 align:start position:0% it did it instantaneously the reason why that<04:23:10.960> is<04:23:11.159> happening<04:23:11.640> is<04:23:11.800> because<04:23:12.000> we're<04:23:12.159> using 04:23:12.550 --> 04:23:12.560 align:start position:0% that is happening is because we're using 04:23:12.560 --> 04:23:15.149 align:start position:0% that is happening is because we're using react<04:23:13.080> query<04:23:13.920> it<04:23:14.080> does<04:23:14.520> something<04:23:14.760> known<04:23:15.040> as 04:23:15.149 --> 04:23:15.159 align:start position:0% react query it does something known as 04:23:15.159 --> 04:23:17.990 align:start position:0% react query it does something known as an<04:23:15.319> optimistic<04:23:15.960> update<04:23:16.960> before<04:23:17.359> it<04:23:17.600> actually 04:23:17.990 --> 04:23:18.000 align:start position:0% an optimistic update before it actually 04:23:18.000 --> 04:23:20.309 align:start position:0% an optimistic update before it actually updates<04:23:18.479> it<04:23:18.640> in<04:23:18.800> the<04:23:18.960> database<04:23:19.760> it<04:23:19.920> provides 04:23:20.309 --> 04:23:20.319 align:start position:0% updates it in the database it provides 04:23:20.319 --> 04:23:23.429 align:start position:0% updates it in the database it provides user<04:23:20.920> with<04:23:21.119> an<04:23:21.359> instantaneous<04:23:22.279> feedback<04:23:23.279> now 04:23:23.429 --> 04:23:23.439 align:start position:0% user with an instantaneous feedback now 04:23:23.439 --> 04:23:25.590 align:start position:0% user with an instantaneous feedback now of<04:23:23.600> course<04:23:23.800> the<04:23:23.960> key<04:23:24.159> thing<04:23:24.439> is<04:23:24.960> if<04:23:25.080> I<04:23:25.239> reload 04:23:25.590 --> 04:23:25.600 align:start position:0% of course the key thing is if I reload 04:23:25.600 --> 04:23:28.510 align:start position:0% of course the key thing is if I reload the<04:23:25.800> page<04:23:26.600> is<04:23:26.720> it<04:23:26.840> going<04:23:27.000> to<04:23:27.239> remain<04:23:27.479> saved<04:23:28.319> and 04:23:28.510 --> 04:23:28.520 align:start position:0% the page is it going to remain saved and 04:23:28.520 --> 04:23:30.630 align:start position:0% the page is it going to remain saved and it<04:23:28.680> does<04:23:29.520> let's<04:23:29.720> check<04:23:29.920> the<04:23:30.040> same<04:23:30.199> thing<04:23:30.439> with 04:23:30.630 --> 04:23:30.640 align:start position:0% it does let's check the same thing with 04:23:30.640 --> 04:23:33.990 align:start position:0% it does let's check the same thing with save<04:23:31.600> oh<04:23:31.960> it<04:23:32.080> doesn't<04:23:32.359> allow<04:23:32.600> me<04:23:32.760> to<04:23:33.000> unsave<04:23:33.560> it 04:23:33.990 --> 04:23:34.000 align:start position:0% save oh it doesn't allow me to unsave it 04:23:34.000 --> 04:23:36.870 align:start position:0% save oh it doesn't allow me to unsave it for<04:23:34.239> some<04:23:34.479> reason<04:23:35.319> hm<04:23:35.840> interesting 04:23:36.870 --> 04:23:36.880 align:start position:0% for some reason hm interesting 04:23:36.880 --> 04:23:39.990 align:start position:0% for some reason hm interesting let's<04:23:37.080> see<04:23:37.359> why<04:23:37.600> that<04:23:37.760> is<04:23:38.600> so<04:23:38.840> if<04:23:39.000> we<04:23:39.239> check 04:23:39.990 --> 04:23:40.000 align:start position:0% let's see why that is so if we check 04:23:40.000 --> 04:23:43.550 align:start position:0% let's see why that is so if we check this<04:23:40.319> is<04:23:40.600> saved<04:23:41.560> it<04:23:41.680> is<04:23:41.840> set<04:23:42.080> to<04:23:42.439> is<04:23:42.680> saved<04:23:43.159> to 04:23:43.550 --> 04:23:43.560 align:start position:0% this is saved it is set to is saved to 04:23:43.560 --> 04:23:46.990 align:start position:0% this is saved it is set to is saved to false<04:23:44.560> but<04:23:44.720> then<04:23:44.920> once<04:23:45.119> I<04:23:45.279> check<04:23:45.720> it<04:23:46.720> in<04:23:46.840> the 04:23:46.990 --> 04:23:47.000 align:start position:0% false but then once I check it in the 04:23:47.000 --> 04:23:49.389 align:start position:0% false but then once I check it in the handle<04:23:47.319> save<04:23:47.640> post<04:23:48.239> do<04:23:48.439> we<04:23:48.600> ever<04:23:48.800> set<04:23:49.040> it<04:23:49.119> to 04:23:49.389 --> 04:23:49.399 align:start position:0% handle save post do we ever set it to 04:23:49.399 --> 04:23:52.790 align:start position:0% handle save post do we ever set it to false<04:23:50.399> it<04:23:50.520> seems<04:23:50.800> like<04:23:50.960> we<04:23:51.080> do<04:23:51.640> right<04:23:51.880> here<04:23:52.600> but 04:23:52.790 --> 04:23:52.800 align:start position:0% false it seems like we do right here but 04:23:52.800 --> 04:23:54.429 align:start position:0% false it seems like we do right here but what<04:23:52.920> if<04:23:53.040> I<04:23:53.159> reload<04:23:53.560> the 04:23:54.429 --> 04:23:54.439 align:start position:0% what if I reload the 04:23:54.439 --> 04:23:57.670 align:start position:0% what if I reload the page<04:23:55.439> okay<04:23:55.760> now<04:23:56.040> it's<04:23:56.279> unsaved<04:23:57.279> what<04:23:57.399> if<04:23:57.520> I 04:23:57.670 --> 04:23:57.680 align:start position:0% page okay now it's unsaved what if I 04:23:57.680 --> 04:24:00.269 align:start position:0% page okay now it's unsaved what if I save<04:23:57.920> it<04:23:58.359> if<04:23:58.479> I 04:24:00.269 --> 04:24:00.279 align:start position:0% save it if I 04:24:00.279 --> 04:24:03.510 align:start position:0% save it if I reload<04:24:01.279> it<04:24:01.439> is<04:24:01.760> not<04:24:02.080> saved<04:24:02.800> so<04:24:03.000> we<04:24:03.119> have<04:24:03.239> to<04:24:03.359> be 04:24:03.510 --> 04:24:03.520 align:start position:0% reload it is not saved so we have to be 04:24:03.520 --> 04:24:05.750 align:start position:0% reload it is not saved so we have to be able<04:24:03.720> to<04:24:03.960> get<04:24:04.239> the<04:24:04.439> current<04:24:04.880> Save<04:24:05.279> State 04:24:05.750 --> 04:24:05.760 align:start position:0% able to get the current Save State 04:24:05.760 --> 04:24:08.550 align:start position:0% able to get the current Save State whenever<04:24:06.080> we<04:24:06.359> reload<04:24:06.720> the<04:24:06.920> page<04:24:07.760> to<04:24:07.960> do<04:24:08.199> that 04:24:08.550 --> 04:24:08.560 align:start position:0% whenever we reload the page to do that 04:24:08.560 --> 04:24:12.510 align:start position:0% whenever we reload the page to do that we<04:24:08.680> can<04:24:08.960> extract<04:24:09.880> this<04:24:10.239> saved<04:24:10.920> post<04:24:11.359> record<04:24:12.279> by 04:24:12.510 --> 04:24:12.520 align:start position:0% we can extract this saved post record by 04:24:12.520 --> 04:24:15.309 align:start position:0% we can extract this saved post record by copying<04:24:12.960> it<04:24:13.600> and<04:24:13.760> putting<04:24:14.040> it<04:24:14.399> right<04:24:14.600> here<04:24:15.159> at 04:24:15.309 --> 04:24:15.319 align:start position:0% copying it and putting it right here at 04:24:15.319 --> 04:24:18.469 align:start position:0% copying it and putting it right here at the<04:24:15.640> top<04:24:16.640> then<04:24:17.000> what<04:24:17.159> we<04:24:17.239> can<04:24:17.399> do<04:24:17.680> is<04:24:17.920> create<04:24:18.239> a 04:24:18.469 --> 04:24:18.479 align:start position:0% the top then what we can do is create a 04:24:18.479 --> 04:24:20.349 align:start position:0% the top then what we can do is create a new<04:24:18.920> use 04:24:20.349 --> 04:24:20.359 align:start position:0% new use 04:24:20.359 --> 04:24:23.070 align:start position:0% new use effect<04:24:21.359> and<04:24:21.600> this<04:24:21.760> use<04:24:22.040> effect<04:24:22.560> is<04:24:22.720> going<04:24:22.880> to 04:24:23.070 --> 04:24:23.080 align:start position:0% effect and this use effect is going to 04:24:23.080 --> 04:24:25.590 align:start position:0% effect and this use effect is going to have<04:24:23.199> a<04:24:23.399> typical<04:24:23.920> callback<04:24:24.399> function<04:24:25.399> and 04:24:25.590 --> 04:24:25.600 align:start position:0% have a typical callback function and 04:24:25.600 --> 04:24:27.429 align:start position:0% have a typical callback function and it's<04:24:25.800> going<04:24:25.920> to<04:24:26.159> change<04:24:26.800> whenever<04:24:27.199> the 04:24:27.429 --> 04:24:27.439 align:start position:0% it's going to change whenever the 04:24:27.439 --> 04:24:30.670 align:start position:0% it's going to change whenever the current<04:24:27.840> user<04:24:28.439> changes<04:24:29.439> and<04:24:29.640> then<04:24:29.920> we<04:24:30.040> can<04:24:30.319> set 04:24:30.670 --> 04:24:30.680 align:start position:0% current user changes and then we can set 04:24:30.680 --> 04:24:35.510 align:start position:0% current user changes and then we can set is<04:24:31.319> saved<04:24:32.319> to<04:24:32.479> be<04:24:32.680> equal<04:24:33.000> to<04:24:34.000> saved<04:24:34.880> post 04:24:35.510 --> 04:24:35.520 align:start position:0% is saved to be equal to saved post 04:24:35.520 --> 04:24:36.910 align:start position:0% is saved to be equal to saved post record 04:24:36.910 --> 04:24:36.920 align:start position:0% record 04:24:36.920 --> 04:24:39.389 align:start position:0% record um<04:24:37.119> so<04:24:37.319> if<04:24:37.479> there<04:24:37.640> is<04:24:37.760> a<04:24:37.920> saved<04:24:38.279> post<04:24:38.560> record<04:24:39.279> we 04:24:39.389 --> 04:24:39.399 align:start position:0% um so if there is a saved post record we 04:24:39.399 --> 04:24:42.710 align:start position:0% um so if there is a saved post record we can<04:24:39.720> return<04:24:40.040> a<04:24:40.720> true<04:24:41.720> else<04:24:42.080> we<04:24:42.159> can<04:24:42.399> return<04:24:42.560> a 04:24:42.710 --> 04:24:42.720 align:start position:0% can return a true else we can return a 04:24:42.720 --> 04:24:45.149 align:start position:0% can return a true else we can return a false<04:24:43.159> because<04:24:43.439> this<04:24:43.600> has<04:24:43.720> to<04:24:43.840> be<04:24:43.960> a<04:24:44.159> Boolean 04:24:45.149 --> 04:24:45.159 align:start position:0% false because this has to be a Boolean 04:24:45.159 --> 04:24:47.189 align:start position:0% false because this has to be a Boolean and<04:24:45.279> there's<04:24:45.439> a<04:24:45.560> shorter<04:24:46.000> way<04:24:46.159> of<04:24:46.279> doing<04:24:46.640> this 04:24:47.189 --> 04:24:47.199 align:start position:0% and there's a shorter way of doing this 04:24:47.199 --> 04:24:48.990 align:start position:0% and there's a shorter way of doing this whenever<04:24:47.479> you<04:24:47.640> have<04:24:47.920> something<04:24:48.640> if<04:24:48.800> that 04:24:48.990 --> 04:24:49.000 align:start position:0% whenever you have something if that 04:24:49.000 --> 04:24:51.710 align:start position:0% whenever you have something if that something<04:24:49.439> exists<04:24:50.199> return<04:24:50.479> true<04:24:51.040> else<04:24:51.479> return 04:24:51.710 --> 04:24:51.720 align:start position:0% something exists return true else return 04:24:51.720 --> 04:24:54.950 align:start position:0% something exists return true else return false<04:24:52.640> what<04:24:52.720> you<04:24:52.840> can<04:24:53.080> also<04:24:53.399> do<04:24:53.960> is<04:24:54.359> automatic 04:24:54.950 --> 04:24:54.960 align:start position:0% false what you can also do is automatic 04:24:54.960 --> 04:24:57.550 align:start position:0% false what you can also do is automatic Boolean<04:24:55.439> assignment<04:24:56.399> and<04:24:56.560> That<04:24:56.680> is<04:24:57.080> do<04:24:57.359> a 04:24:57.550 --> 04:24:57.560 align:start position:0% Boolean assignment and That is do a 04:24:57.560 --> 04:25:00.109 align:start position:0% Boolean assignment and That is do a double<04:24:58.000> exclamation<04:24:58.600> mark<04:24:59.439> So<04:24:59.680> what<04:24:59.840> this 04:25:00.109 --> 04:25:00.119 align:start position:0% double exclamation mark So what this 04:25:00.119 --> 04:25:02.510 align:start position:0% double exclamation mark So what this does<04:25:00.640> is<04:25:00.920> it<04:25:01.080> checks<04:25:01.479> whether<04:25:01.720> there<04:25:01.920> is<04:25:02.399> a 04:25:02.510 --> 04:25:02.520 align:start position:0% does is it checks whether there is a 04:25:02.520 --> 04:25:05.469 align:start position:0% does is it checks whether there is a Trudy<04:25:03.000> value<04:25:03.920> if<04:25:04.040> there<04:25:04.199> is<04:25:04.319> a<04:25:04.439> Trudy<04:25:04.880> value 04:25:05.469 --> 04:25:05.479 align:start position:0% Trudy value if there is a Trudy value 04:25:05.479 --> 04:25:07.590 align:start position:0% Trudy value if there is a Trudy value this<04:25:05.600> is<04:25:05.720> going<04:25:05.880> to<04:25:06.159> you<04:25:06.680> make<04:25:06.840> it<04:25:06.960> a<04:25:07.080> falsey 04:25:07.590 --> 04:25:07.600 align:start position:0% this is going to you make it a falsey 04:25:07.600 --> 04:25:09.870 align:start position:0% this is going to you make it a falsey value<04:25:08.279> and<04:25:08.399> then<04:25:08.560> from<04:25:08.720> falsey<04:25:09.399> you<04:25:09.560> get<04:25:09.680> the 04:25:09.870 --> 04:25:09.880 align:start position:0% value and then from falsey you get the 04:25:09.880 --> 04:25:12.149 align:start position:0% value and then from falsey you get the try<04:25:10.880> so<04:25:11.159> let<04:25:11.279> me<04:25:11.399> give<04:25:11.479> you<04:25:11.600> an<04:25:11.760> example 04:25:12.149 --> 04:25:12.159 align:start position:0% try so let me give you an example 04:25:12.159 --> 04:25:14.309 align:start position:0% try so let me give you an example because<04:25:12.319> I<04:25:12.439> know<04:25:12.600> this<04:25:12.720> is<04:25:12.840> a<04:25:12.960> bit<04:25:13.319> complicated 04:25:14.309 --> 04:25:14.319 align:start position:0% because I know this is a bit complicated 04:25:14.319 --> 04:25:16.870 align:start position:0% because I know this is a bit complicated if<04:25:14.479> we<04:25:14.680> have<04:25:15.119> the<04:25:15.359> saved<04:25:15.760> post<04:25:16.119> record<04:25:16.760> which 04:25:16.870 --> 04:25:16.880 align:start position:0% if we have the saved post record which 04:25:16.880 --> 04:25:21.590 align:start position:0% if we have the saved post record which is<04:25:17.119> let's<04:25:17.319> say<04:25:17.560> an<04:25:17.840> object<04:25:18.439> of<04:25:19.040> Saved<04:25:20.040> is<04:25:20.600> true 04:25:21.590 --> 04:25:21.600 align:start position:0% is let's say an object of Saved is true 04:25:21.600 --> 04:25:24.189 align:start position:0% is let's say an object of Saved is true like<04:25:21.840> this<04:25:22.680> then<04:25:22.880> we<04:25:23.040> call<04:25:23.319> one<04:25:23.600> exclamation 04:25:24.189 --> 04:25:24.199 align:start position:0% like this then we call one exclamation 04:25:24.199 --> 04:25:27.030 align:start position:0% like this then we call one exclamation mark<04:25:24.600> on<04:25:24.880> Saved<04:25:25.520> post<04:25:25.920> record<04:25:26.640> which<04:25:26.760> is<04:25:26.920> going 04:25:27.030 --> 04:25:27.040 align:start position:0% mark on Saved post record which is going 04:25:27.040 --> 04:25:30.630 align:start position:0% mark on Saved post record which is going to<04:25:27.640> return<04:25:28.720> false<04:25:29.720> and<04:25:29.840> then<04:25:30.000> we<04:25:30.199> call<04:25:30.479> one 04:25:30.630 --> 04:25:30.640 align:start position:0% to return false and then we call one 04:25:30.640 --> 04:25:33.229 align:start position:0% to return false and then we call one more<04:25:30.880> time<04:25:31.520> this<04:25:31.760> on<04:25:31.920> the<04:25:32.080> false<04:25:32.760> and<04:25:32.880> we<04:25:33.040> get 04:25:33.229 --> 04:25:33.239 align:start position:0% more time this on the false and we get 04:25:33.239 --> 04:25:35.389 align:start position:0% more time this on the false and we get true<04:25:34.159> if<04:25:34.239> you<04:25:34.359> were<04:25:34.520> to<04:25:34.680> repeat<04:25:35.040> this<04:25:35.199> with 04:25:35.389 --> 04:25:35.399 align:start position:0% true if you were to repeat this with 04:25:35.399 --> 04:25:37.510 align:start position:0% true if you were to repeat this with another<04:25:35.680> true<04:25:36.159> value<04:25:36.720> like<04:25:36.920> maybe<04:25:37.239> just<04:25:37.359> a 04:25:37.510 --> 04:25:37.520 align:start position:0% another true value like maybe just a 04:25:37.520 --> 04:25:41.790 align:start position:0% another true value like maybe just a string<04:25:37.920> of<04:25:38.199> test<04:25:39.199> it<04:25:39.279> would<04:25:39.600> also<04:25:40.800> return 04:25:41.790 --> 04:25:41.800 align:start position:0% string of test it would also return 04:25:41.800 --> 04:25:44.070 align:start position:0% string of test it would also return false<04:25:42.640> because<04:25:42.920> once<04:25:43.080> you<04:25:43.199> negate<04:25:43.560> it<04:25:43.760> you<04:25:43.920> get 04:25:44.070 --> 04:25:44.080 align:start position:0% false because once you negate it you get 04:25:44.080 --> 04:25:46.750 align:start position:0% false because once you negate it you get a<04:25:44.239> false<04:25:44.800> and<04:25:44.920> then<04:25:45.040> a<04:25:45.159> false<04:25:45.439> is<04:25:45.600> true<04:25:46.399> but<04:25:46.640> if 04:25:46.750 --> 04:25:46.760 align:start position:0% a false and then a false is true but if 04:25:46.760 --> 04:25:49.710 align:start position:0% a false and then a false is true but if you<04:25:46.880> were<04:25:47.040> to<04:25:47.199> do<04:25:47.479> this<04:25:47.920> on<04:25:48.199> a<04:25:48.439> falsy<04:25:48.960> value 04:25:49.710 --> 04:25:49.720 align:start position:0% you were to do this on a falsy value 04:25:49.720 --> 04:25:51.510 align:start position:0% you were to do this on a falsy value like<04:25:50.000> if<04:25:50.119> you<04:25:50.239> were<04:25:50.399> to<04:25:50.560> do<04:25:50.680> it<04:25:50.800> on<04:25:50.920> an<04:25:51.080> empty 04:25:51.510 --> 04:25:51.520 align:start position:0% like if you were to do it on an empty 04:25:51.520 --> 04:25:53.910 align:start position:0% like if you were to do it on an empty string<04:25:52.520> then<04:25:53.040> at<04:25:53.159> the<04:25:53.279> end<04:25:53.479> you<04:25:53.560> would<04:25:53.760> get 04:25:53.910 --> 04:25:53.920 align:start position:0% string then at the end you would get 04:25:53.920 --> 04:25:56.070 align:start position:0% string then at the end you would get false<04:25:54.600> because<04:25:54.920> first<04:25:55.239> it<04:25:55.359> converts<04:25:55.800> to<04:25:55.920> a 04:25:56.070 --> 04:25:56.080 align:start position:0% false because first it converts to a 04:25:56.080 --> 04:25:58.950 align:start position:0% false because first it converts to a true<04:25:56.720> and<04:25:56.920> then<04:25:57.399> false<04:25:58.239> I<04:25:58.319> hope<04:25:58.520> this<04:25:58.680> makes 04:25:58.950 --> 04:25:58.960 align:start position:0% true and then false I hope this makes 04:25:58.960 --> 04:26:02.149 align:start position:0% true and then false I hope this makes just<04:25:59.119> a<04:25:59.279> bit<04:25:59.399> of<04:25:59.760> sense<04:26:00.760> there<04:26:00.920> we<04:26:01.119> go<04:26:01.880> and<04:26:02.080> we 04:26:02.149 --> 04:26:02.159 align:start position:0% just a bit of sense there we go and we 04:26:02.159 --> 04:26:05.670 align:start position:0% just a bit of sense there we go and we can<04:26:02.359> save<04:26:02.680> this<04:26:03.600> and<04:26:03.760> we<04:26:03.840> can<04:26:04.000> reload<04:26:04.359> the<04:26:04.680> page 04:26:05.670 --> 04:26:05.680 align:start position:0% can save this and we can reload the page 04:26:05.680 --> 04:26:09.830 align:start position:0% can save this and we can reload the page now<04:26:06.199> if<04:26:06.279> we<04:26:06.479> press<04:26:07.119> save<04:26:08.119> it<04:26:08.439> remains<04:26:08.840> saved 04:26:09.830 --> 04:26:09.840 align:start position:0% now if we press save it remains saved 04:26:09.840 --> 04:26:14.790 align:start position:0% now if we press save it remains saved but<04:26:10.199> I<04:26:10.439> still<04:26:10.880> cannot<04:26:11.479> unclick<04:26:12.560> it<04:26:13.560> okay<04:26:14.319> let's 04:26:14.790 --> 04:26:14.800 align:start position:0% but I still cannot unclick it okay let's 04:26:14.800 --> 04:26:17.349 align:start position:0% but I still cannot unclick it okay let's see<04:26:15.080> if<04:26:15.239> I'm<04:26:15.399> doing<04:26:15.640> something<04:26:16.000> wrong<04:26:16.279> here<04:26:17.199> I 04:26:17.349 --> 04:26:17.359 align:start position:0% see if I'm doing something wrong here I 04:26:17.359 --> 04:26:19.950 align:start position:0% see if I'm doing something wrong here I think<04:26:17.840> that<04:26:18.199> right<04:26:18.479> here<04:26:19.399> where<04:26:19.600> I<04:26:19.720> was 04:26:19.950 --> 04:26:19.960 align:start position:0% think that right here where I was 04:26:19.960 --> 04:26:22.950 align:start position:0% think that right here where I was checking<04:26:20.319> for<04:26:20.560> the<04:26:20.720> saved<04:26:21.080> post<04:26:21.760> record<04:26:22.760> the 04:26:22.950 --> 04:26:22.960 align:start position:0% checking for the saved post record the 04:26:22.960 --> 04:26:25.429 align:start position:0% checking for the saved post record the record<04:26:23.319> itself<04:26:23.640> is<04:26:23.800> the<04:26:23.960> user<04:26:24.720> so<04:26:25.000> I<04:26:25.119> cannot 04:26:25.429 --> 04:26:25.439 align:start position:0% record itself is the user so I cannot 04:26:25.439 --> 04:26:27.750 align:start position:0% record itself is the user so I cannot compare<04:26:25.840> the<04:26:26.080> record<04:26:26.399> of<04:26:26.520> the<04:26:26.680> user<04:26:27.119> or<04:26:27.279> the<04:26:27.439> ID 04:26:27.750 --> 04:26:27.760 align:start position:0% compare the record of the user or the ID 04:26:27.760 --> 04:26:30.349 align:start position:0% compare the record of the user or the ID of<04:26:27.880> the<04:26:28.000> user<04:26:28.560> with<04:26:28.760> the<04:26:28.880> ID<04:26:29.119> of<04:26:29.239> the<04:26:29.399> post<04:26:30.239> what 04:26:30.349 --> 04:26:30.359 align:start position:0% of the user with the ID of the post what 04:26:30.359 --> 04:26:33.950 align:start position:0% of the user with the ID of the post what I<04:26:30.479> need<04:26:30.640> to<04:26:30.840> do<04:26:31.239> is<04:26:31.560> dive<04:26:32.239> into<04:26:32.960> the<04:26:33.119> record. 04:26:33.950 --> 04:26:33.960 align:start position:0% I need to do is dive into the record. 04:26:33.960 --> 04:26:36.550 align:start position:0% I need to do is dive into the record. post<04:26:34.640> the<04:26:34.840> that<04:26:35.040> user<04:26:35.319> has<04:26:35.479> saved<04:26:36.239> and<04:26:36.399> then 04:26:36.550 --> 04:26:36.560 align:start position:0% post the that user has saved and then 04:26:36.560 --> 04:26:39.229 align:start position:0% post the that user has saved and then compare<04:26:36.960> with<04:26:37.119> the<04:26:37.239> post<04:26:37.520> ID<04:26:38.319> so<04:26:38.600> now<04:26:38.960> if<04:26:39.080> I 04:26:39.229 --> 04:26:39.239 align:start position:0% compare with the post ID so now if I 04:26:39.239 --> 04:26:41.670 align:start position:0% compare with the post ID so now if I save<04:26:39.560> this<04:26:40.000> the<04:26:40.159> saved<04:26:40.479> record<04:26:40.840> post<04:26:41.199> or<04:26:41.399> save 04:26:41.670 --> 04:26:41.680 align:start position:0% save this the saved record post or save 04:26:41.680 --> 04:26:43.950 align:start position:0% save this the saved record post or save post<04:26:41.960> record<04:26:42.640> should<04:26:43.040> successfully<04:26:43.600> get<04:26:43.760> the 04:26:43.950 --> 04:26:43.960 align:start position:0% post record should successfully get the 04:26:43.960 --> 04:26:46.990 align:start position:0% post record should successfully get the state<04:26:44.760> and<04:26:44.960> now<04:26:45.279> I<04:26:45.399> can<04:26:45.560> be<04:26:45.720> able<04:26:45.960> to<04:26:46.399> toggle<04:26:46.800> it 04:26:46.990 --> 04:26:47.000 align:start position:0% state and now I can be able to toggle it 04:26:47.000 --> 04:26:50.710 align:start position:0% state and now I can be able to toggle it on<04:26:47.960> toggle<04:26:48.359> it<04:26:48.640> off<04:26:49.359> but<04:26:49.600> it<04:26:49.800> looks<04:26:50.119> like<04:26:50.359> not 04:26:50.710 --> 04:26:50.720 align:start position:0% on toggle it off but it looks like not 04:26:50.720 --> 04:26:52.750 align:start position:0% on toggle it off but it looks like not on<04:26:51.319> let's<04:26:51.520> reload<04:26:52.000> and 04:26:52.750 --> 04:26:52.760 align:start position:0% on let's reload and 04:26:52.760 --> 04:26:56.790 align:start position:0% on let's reload and see<04:26:53.760> so<04:26:53.960> if<04:26:54.040> I<04:26:54.159> do<04:26:54.319> it<04:26:54.560> here<04:26:55.239> it's<04:26:55.479> on<04:26:56.439> yeah<04:26:56.680> but 04:26:56.790 --> 04:26:56.800 align:start position:0% see so if I do it here it's on yeah but 04:26:56.800 --> 04:26:59.630 align:start position:0% see so if I do it here it's on yeah but it<04:26:56.920> doesn't<04:26:57.159> allow<04:26:57.399> me<04:26:57.520> to<04:26:57.640> bring<04:26:57.880> it<04:26:58.319> back<04:26:59.319> so 04:26:59.630 --> 04:26:59.640 align:start position:0% it doesn't allow me to bring it back so 04:26:59.640 --> 04:27:01.030 align:start position:0% it doesn't allow me to bring it back so let's<04:26:59.840> just<04:27:00.040> ensure<04:27:00.399> that<04:27:00.560> a<04:27:00.680> couple<04:27:00.880> of 04:27:01.030 --> 04:27:01.040 align:start position:0% let's just ensure that a couple of 04:27:01.040 --> 04:27:03.550 align:start position:0% let's just ensure that a couple of things<04:27:01.239> are<04:27:01.439> in<04:27:01.600> order<04:27:02.439> first<04:27:02.680> of<04:27:02.840> all<04:27:03.199> if<04:27:03.319> it's 04:27:03.550 --> 04:27:03.560 align:start position:0% things are in order first of all if it's 04:27:03.560 --> 04:27:06.630 align:start position:0% things are in order first of all if it's unsaved<04:27:04.279> here<04:27:04.880> go<04:27:05.080> to<04:27:05.319> app<04:27:05.720> right<04:27:06.159> and<04:27:06.319> then<04:27:06.479> go 04:27:06.630 --> 04:27:06.640 align:start position:0% unsaved here go to app right and then go 04:27:06.640 --> 04:27:08.710 align:start position:0% unsaved here go to app right and then go to<04:27:06.800> the<04:27:06.920> saves<04:27:07.279> collection<04:27:08.159> there<04:27:08.279> should<04:27:08.479> be 04:27:08.710 --> 04:27:08.720 align:start position:0% to the saves collection there should be 04:27:08.720 --> 04:27:11.750 align:start position:0% to the saves collection there should be zero<04:27:09.080> documents<04:27:09.680> because<04:27:09.960> no<04:27:10.199> post<04:27:10.520> are<04:27:10.760> saved 04:27:11.750 --> 04:27:11.760 align:start position:0% zero documents because no post are saved 04:27:11.760 --> 04:27:14.790 align:start position:0% zero documents because no post are saved if<04:27:11.960> that<04:27:12.080> is<04:27:12.239> the<04:27:12.399> case<04:27:13.000> once<04:27:13.199> you<04:27:13.399> click<04:27:13.800> it 04:27:14.790 --> 04:27:14.800 align:start position:0% if that is the case once you click it 04:27:14.800 --> 04:27:18.309 align:start position:0% if that is the case once you click it and<04:27:15.000> now<04:27:15.279> go<04:27:15.479> back<04:27:15.640> to<04:27:15.880> aite<04:27:16.880> and<04:27:17.199> reload<04:27:18.199> you 04:27:18.309 --> 04:27:18.319 align:start position:0% and now go back to aite and reload you 04:27:18.319 --> 04:27:20.269 align:start position:0% and now go back to aite and reload you should<04:27:18.520> be<04:27:18.640> able<04:27:18.840> to<04:27:18.960> see<04:27:19.199> one<04:27:19.439> save<04:27:19.840> there<04:27:20.159> but 04:27:20.269 --> 04:27:20.279 align:start position:0% should be able to see one save there but 04:27:20.279 --> 04:27:22.870 align:start position:0% should be able to see one save there but it<04:27:20.439> looks<04:27:20.680> like<04:27:20.840> our<04:27:21.080> user<04:27:21.479> wasn't<04:27:21.960> added<04:27:22.640> and 04:27:22.870 --> 04:27:22.880 align:start position:0% it looks like our user wasn't added and 04:27:22.880 --> 04:27:24.950 align:start position:0% it looks like our user wasn't added and here<04:27:23.199> it<04:27:23.439> unsaved<04:27:24.000> it<04:27:24.319> so<04:27:24.520> something<04:27:24.800> is 04:27:24.950 --> 04:27:24.960 align:start position:0% here it unsaved it so something is 04:27:24.960 --> 04:27:28.109 align:start position:0% here it unsaved it so something is broken<04:27:25.720> so<04:27:26.000> let's<04:27:26.199> try<04:27:26.399> to<04:27:26.560> click<04:27:26.800> it<04:27:27.000> once 04:27:28.109 --> 04:27:28.119 align:start position:0% broken so let's try to click it once 04:27:28.119 --> 04:27:31.670 align:start position:0% broken so let's try to click it once again<04:27:29.119> this<04:27:29.359> time<04:27:29.720> it<04:27:30.080> stays<04:27:30.760> saved<04:27:31.439> and<04:27:31.560> if 04:27:31.670 --> 04:27:31.680 align:start position:0% again this time it stays saved and if 04:27:31.680 --> 04:27:33.830 align:start position:0% again this time it stays saved and if you<04:27:31.840> reload<04:27:32.399> right<04:27:32.600> here<04:27:33.119> it<04:27:33.279> looks<04:27:33.479> like<04:27:33.640> it 04:27:33.830 --> 04:27:33.840 align:start position:0% you reload right here it looks like it 04:27:33.840 --> 04:27:36.469 align:start position:0% you reload right here it looks like it added<04:27:34.279> another<04:27:34.840> document<04:27:35.560> with<04:27:35.720> a<04:27:36.000> again<04:27:36.319> an 04:27:36.469 --> 04:27:36.479 align:start position:0% added another document with a again an 04:27:36.479 --> 04:27:39.349 align:start position:0% added another document with a again an empty<04:27:36.840> user<04:27:37.680> so<04:27:37.960> this<04:27:38.080> is<04:27:38.279> not<04:27:38.520> looking<04:27:38.880> good 04:27:39.349 --> 04:27:39.359 align:start position:0% empty user so this is not looking good 04:27:39.359 --> 04:27:41.269 align:start position:0% empty user so this is not looking good it<04:27:39.479> is<04:27:39.720> possible<04:27:40.080> that<04:27:40.199> we<04:27:40.359> got<04:27:40.560> disconnected 04:27:41.269 --> 04:27:41.279 align:start position:0% it is possible that we got disconnected 04:27:41.279 --> 04:27:43.030 align:start position:0% it is possible that we got disconnected in<04:27:41.399> the<04:27:41.520> meantime<04:27:42.159> so<04:27:42.319> it<04:27:42.439> doesn't<04:27:42.680> know<04:27:42.880> which 04:27:43.030 --> 04:27:43.040 align:start position:0% in the meantime so it doesn't know which 04:27:43.040 --> 04:27:45.469 align:start position:0% in the meantime so it doesn't know which user<04:27:43.359> is<04:27:43.600> there<04:27:44.319> so<04:27:44.520> for<04:27:44.760> now<04:27:45.159> what<04:27:45.279> I'm<04:27:45.399> going 04:27:45.469 --> 04:27:45.479 align:start position:0% user is there so for now what I'm going 04:27:45.479 --> 04:27:47.630 align:start position:0% user is there so for now what I'm going to<04:27:45.640> do<04:27:46.000> is<04:27:46.119> I'm<04:27:46.239> going<04:27:46.359> to<04:27:46.520> delete<04:27:47.279> both<04:27:47.479> of 04:27:47.630 --> 04:27:47.640 align:start position:0% to do is I'm going to delete both of 04:27:47.640 --> 04:27:49.670 align:start position:0% to do is I'm going to delete both of these<04:27:47.800> two<04:27:48.119> documents<04:27:49.080> because<04:27:49.359> we<04:27:49.520> don't 04:27:49.670 --> 04:27:49.680 align:start position:0% these two documents because we don't 04:27:49.680 --> 04:27:51.950 align:start position:0% these two documents because we don't want<04:27:49.840> to<04:27:50.040> have<04:27:50.199> any<04:27:50.399> saves<04:27:51.319> and<04:27:51.520> I'm<04:27:51.640> going<04:27:51.760> to 04:27:51.950 --> 04:27:51.960 align:start position:0% want to have any saves and I'm going to 04:27:51.960 --> 04:27:54.750 align:start position:0% want to have any saves and I'm going to quickly<04:27:52.359> log<04:27:52.680> out<04:27:53.279> and<04:27:53.399> then<04:27:53.600> log<04:27:54.000> back<04:27:54.159> in<04:27:54.560> to 04:27:54.750 --> 04:27:54.760 align:start position:0% quickly log out and then log back in to 04:27:54.760 --> 04:27:56.870 align:start position:0% quickly log out and then log back in to ensure<04:27:55.119> everything<04:27:55.399> is<04:27:55.640> good<04:27:56.520> I'm<04:27:56.600> going<04:27:56.720> to 04:27:56.870 --> 04:27:56.880 align:start position:0% ensure everything is good I'm going to 04:27:56.880 --> 04:28:01.469 align:start position:0% ensure everything is good I'm going to use<04:27:57.159> my<04:27:57.439> same<04:27:58.279> email<04:27:59.279> and<04:27:59.520> sign<04:28:00.040> in<04:28:01.040> now<04:28:01.279> we<04:28:01.359> can 04:28:01.469 --> 04:28:01.479 align:start position:0% use my same email and sign in now we can 04:28:01.479 --> 04:28:04.710 align:start position:0% use my same email and sign in now we can see<04:28:01.680> we're<04:28:01.920> logged<04:28:02.239> in<04:28:02.880> and<04:28:03.119> now<04:28:03.399> I<04:28:03.520> click<04:28:03.840> save 04:28:04.710 --> 04:28:04.720 align:start position:0% see we're logged in and now I click save 04:28:04.720 --> 04:28:06.950 align:start position:0% see we're logged in and now I click save but<04:28:04.960> if<04:28:05.040> we<04:28:05.199> go<04:28:05.439> right<04:28:05.600> here<04:28:06.159> it<04:28:06.319> looks<04:28:06.600> like<04:28:06.800> it 04:28:06.950 --> 04:28:06.960 align:start position:0% but if we go right here it looks like it 04:28:06.960 --> 04:28:09.750 align:start position:0% but if we go right here it looks like it didn't<04:28:07.359> yet<04:28:07.600> save<04:28:07.840> it<04:28:08.760> so<04:28:09.080> it's<04:28:09.279> possible<04:28:09.640> we 04:28:09.750 --> 04:28:09.760 align:start position:0% didn't yet save it so it's possible we 04:28:09.760 --> 04:28:12.670 align:start position:0% didn't yet save it so it's possible we need<04:28:09.880> to<04:28:10.080> add<04:28:10.279> loadings<04:28:10.920> for<04:28:11.199> Save<04:28:11.479> and<04:28:11.680> unsave 04:28:12.670 --> 04:28:12.680 align:start position:0% need to add loadings for Save and unsave 04:28:12.680 --> 04:28:15.630 align:start position:0% need to add loadings for Save and unsave so<04:28:13.159> right<04:28:13.359> here<04:28:13.680> with<04:28:14.000> save<04:28:14.600> we<04:28:14.720> can<04:28:14.960> say<04:28:15.319> is 04:28:15.630 --> 04:28:15.640 align:start position:0% so right here with save we can say is 04:28:15.640 --> 04:28:19.349 align:start position:0% so right here with save we can say is pending<04:28:16.640> and<04:28:16.760> we<04:28:16.840> can<04:28:17.000> say<04:28:17.279> is<04:28:17.760> saving<04:28:18.520> post 04:28:19.349 --> 04:28:19.359 align:start position:0% pending and we can say is saving post 04:28:19.359 --> 04:28:23.229 align:start position:0% pending and we can say is saving post and<04:28:19.479> we<04:28:19.560> can<04:28:19.680> do<04:28:19.840> the<04:28:19.960> same<04:28:20.319> here<04:28:20.840> with<04:28:21.359> is 04:28:23.229 --> 04:28:23.239 align:start position:0% and we can do the same here with is 04:28:23.239 --> 04:28:25.990 align:start position:0% and we can do the same here with is pending<04:28:24.239> we<04:28:24.359> can<04:28:24.520> say<04:28:24.840> is 04:28:25.990 --> 04:28:26.000 align:start position:0% pending we can say is 04:28:26.000 --> 04:28:29.670 align:start position:0% pending we can say is deleting<04:28:27.479> saved<04:28:28.479> and<04:28:28.640> now<04:28:28.840> we<04:28:28.960> can<04:28:29.119> use<04:28:29.439> those 04:28:29.670 --> 04:28:29.680 align:start position:0% deleting saved and now we can use those 04:28:29.680 --> 04:28:33.950 align:start position:0% deleting saved and now we can use those two<04:28:30.359> right<04:28:30.600> here<04:28:30.880> to<04:28:31.119> display<04:28:31.720> a<04:28:32.040> loader<04:28:33.040> so 04:28:33.950 --> 04:28:33.960 align:start position:0% two right here to display a loader so 04:28:33.960 --> 04:28:36.990 align:start position:0% two right here to display a loader so before<04:28:34.359> the<04:28:34.520> image<04:28:34.960> we<04:28:35.080> can<04:28:35.199> say<04:28:35.520> if 04:28:36.990 --> 04:28:37.000 align:start position:0% before the image we can say if 04:28:37.000 --> 04:28:44.510 align:start position:0% before the image we can say if is<04:28:38.159> saving<04:28:39.279> post<04:28:40.600> or<04:28:41.600> if<04:28:41.920> is<04:28:42.520> deleting<04:28:43.520> saved 04:28:44.510 --> 04:28:44.520 align:start position:0% is saving post or if is deleting saved 04:28:44.520 --> 04:28:47.710 align:start position:0% is saving post or if is deleting saved in<04:28:44.760> that<04:28:45.000> case<04:28:45.279> we<04:28:45.359> can<04:28:45.800> return<04:28:46.800> a<04:28:47.040> loader 04:28:47.710 --> 04:28:47.720 align:start position:0% in that case we can return a loader 04:28:47.720 --> 04:28:50.429 align:start position:0% in that case we can return a loader component<04:28:48.720> which<04:28:48.840> we<04:28:49.000> have<04:28:49.119> to<04:28:49.319> import<04:28:49.840> from 04:28:50.429 --> 04:28:50.439 align:start position:0% component which we have to import from 04:28:50.439 --> 04:28:53.870 align:start position:0% component which we have to import from loader<04:28:51.439> else<04:28:52.119> we<04:28:52.479> return<04:28:52.960> an<04:28:53.199> image<04:28:53.680> that's 04:28:53.870 --> 04:28:53.880 align:start position:0% loader else we return an image that's 04:28:53.880 --> 04:28:55.510 align:start position:0% loader else we return an image that's going<04:28:54.000> to<04:28:54.159> allow<04:28:54.359> us<04:28:54.479> to<04:28:54.640> click<04:28:54.880> it<04:28:55.279> and<04:28:55.399> then 04:28:55.510 --> 04:28:55.520 align:start position:0% going to allow us to click it and then 04:28:55.520 --> 04:28:59.189 align:start position:0% going to allow us to click it and then we<04:28:55.640> have<04:28:55.760> to<04:28:55.920> close<04:28:56.520> this<04:28:56.680> block<04:28:57.439> here<04:28:58.439> so<04:28:58.680> now 04:28:59.189 --> 04:28:59.199 align:start position:0% we have to close this block here so now 04:28:59.199 --> 04:29:01.990 align:start position:0% we have to close this block here so now if<04:28:59.319> I<04:28:59.479> reload<04:29:00.000> the<04:29:00.279> page<04:29:01.279> it's<04:29:01.439> going<04:29:01.600> to<04:29:01.760> say 04:29:01.990 --> 04:29:02.000 align:start position:0% if I reload the page it's going to say 04:29:02.000 --> 04:29:06.229 align:start position:0% if I reload the page it's going to say it's<04:29:02.319> not<04:29:02.840> or<04:29:03.159> it<04:29:03.279> is<04:29:03.680> saved<04:29:04.680> and<04:29:04.920> here<04:29:05.080> if<04:29:05.199> I<04:29:05.359> go 04:29:06.229 --> 04:29:06.239 align:start position:0% it's not or it is saved and here if I go 04:29:06.239 --> 04:29:09.309 align:start position:0% it's not or it is saved and here if I go we<04:29:06.439> indeed<04:29:06.760> do<04:29:07.080> have<04:29:07.479> a<04:29:07.680> save<04:29:08.080> document<04:29:08.960> now<04:29:09.199> if 04:29:09.309 --> 04:29:09.319 align:start position:0% we indeed do have a save document now if 04:29:09.319 --> 04:29:12.269 align:start position:0% we indeed do have a save document now if I<04:29:09.479> unsave<04:29:10.279> it<04:29:11.279> oh<04:29:11.479> the<04:29:11.600> loading<04:29:11.920> is<04:29:12.000> in<04:29:12.119> the 04:29:12.269 --> 04:29:12.279 align:start position:0% I unsave it oh the loading is in the 04:29:12.279 --> 04:29:14.590 align:start position:0% I unsave it oh the loading is in the wrong<04:29:12.560> place<04:29:12.920> I<04:29:13.040> added<04:29:13.359> it<04:29:13.560> within<04:29:13.960> the<04:29:14.199> saved 04:29:14.590 --> 04:29:14.600 align:start position:0% wrong place I added it within the saved 04:29:14.600 --> 04:29:16.870 align:start position:0% wrong place I added it within the saved or<04:29:14.720> handle<04:29:15.119> like<04:29:15.479> not<04:29:15.760> save<04:29:16.319> so<04:29:16.479> I'm<04:29:16.560> going<04:29:16.680> to 04:29:16.870 --> 04:29:16.880 align:start position:0% or handle like not save so I'm going to 04:29:16.880 --> 04:29:19.590 align:start position:0% or handle like not save so I'm going to take<04:29:17.159> this<04:29:17.359> entire<04:29:17.840> part<04:29:18.840> remove<04:29:19.199> it<04:29:19.359> from 04:29:19.590 --> 04:29:19.600 align:start position:0% take this entire part remove it from 04:29:19.600 --> 04:29:21.550 align:start position:0% take this entire part remove it from here<04:29:20.080> and<04:29:20.279> add<04:29:20.439> it<04:29:20.720> right 04:29:21.550 --> 04:29:21.560 align:start position:0% here and add it right 04:29:21.560 --> 04:29:24.550 align:start position:0% here and add it right here<04:29:22.560> there<04:29:22.720> we<04:29:22.880> go<04:29:23.040> so<04:29:23.159> it<04:29:23.239> should<04:29:23.359> be<04:29:23.479> in<04:29:23.600> the 04:29:24.550 --> 04:29:24.560 align:start position:0% here there we go so it should be in the 04:29:24.560 --> 04:29:27.550 align:start position:0% here there we go so it should be in the saved<04:29:25.560> and<04:29:25.720> now<04:29:25.920> if<04:29:26.040> I<04:29:26.199> save 04:29:27.550 --> 04:29:27.560 align:start position:0% saved and now if I save 04:29:27.560 --> 04:29:29.870 align:start position:0% saved and now if I save it<04:29:28.560> we<04:29:28.640> can<04:29:28.760> see<04:29:28.960> that<04:29:29.080> it's<04:29:29.279> currently 04:29:29.870 --> 04:29:29.880 align:start position:0% it we can see that it's currently 04:29:29.880 --> 04:29:32.469 align:start position:0% it we can see that it's currently unsaved<04:29:30.880> which<04:29:31.040> we<04:29:31.119> can<04:29:31.279> also<04:29:31.560> verify<04:29:31.960> in<04:29:32.119> app 04:29:32.469 --> 04:29:32.479 align:start position:0% unsaved which we can also verify in app 04:29:32.479 --> 04:29:35.349 align:start position:0% unsaved which we can also verify in app right<04:29:33.239> and<04:29:33.439> now<04:29:33.720> if<04:29:33.840> we<04:29:33.960> save<04:29:34.159> it<04:29:34.399> again<04:29:35.000> it<04:29:35.159> was 04:29:35.349 --> 04:29:35.359 align:start position:0% right and now if we save it again it was 04:29:35.359 --> 04:29:38.229 align:start position:0% right and now if we save it again it was loaded<04:29:36.040> and<04:29:36.199> then<04:29:36.319> it's<04:29:36.640> saved<04:29:37.640> so<04:29:37.960> it's 04:29:38.229 --> 04:29:38.239 align:start position:0% loaded and then it's saved so it's 04:29:38.239 --> 04:29:41.109 align:start position:0% loaded and then it's saved so it's looking<04:29:39.119> good<04:29:39.439> here<04:29:40.399> one<04:29:40.560> more<04:29:40.800> time<04:29:41.040> I'm 04:29:41.109 --> 04:29:41.119 align:start position:0% looking good here one more time I'm 04:29:41.119 --> 04:29:42.429 align:start position:0% looking good here one more time I'm going<04:29:41.239> to<04:29:41.399> unsave 04:29:42.429 --> 04:29:42.439 align:start position:0% going to unsave 04:29:42.439 --> 04:29:44.950 align:start position:0% going to unsave it<04:29:43.439> and<04:29:43.680> go 04:29:44.950 --> 04:29:44.960 align:start position:0% it and go 04:29:44.960 --> 04:29:48.670 align:start position:0% it and go back<04:29:45.960> it's<04:29:46.199> gone<04:29:47.000> we<04:29:47.119> get<04:29:47.239> a<04:29:47.439> 500<04:29:48.199> and<04:29:48.359> this<04:29:48.439> is 04:29:48.670 --> 04:29:48.680 align:start position:0% back it's gone we get a 500 and this is 04:29:48.680 --> 04:29:50.469 align:start position:0% back it's gone we get a 500 and this is okay<04:29:48.960> from<04:29:49.159> time<04:29:49.319> to<04:29:49.560> time<04:29:49.760> you<04:29:49.880> will<04:29:50.080> see<04:29:50.279> some 04:29:50.469 --> 04:29:50.479 align:start position:0% okay from time to time you will see some 04:29:50.479 --> 04:29:52.710 align:start position:0% okay from time to time you will see some errors<04:29:51.040> but<04:29:51.199> that's<04:29:51.399> because<04:29:51.800> aight<04:29:52.319> is<04:29:52.479> still 04:29:52.710 --> 04:29:52.720 align:start position:0% errors but that's because aight is still 04:29:52.720 --> 04:29:55.149 align:start position:0% errors but that's because aight is still in<04:29:52.960> beta<04:29:53.680> it's<04:29:53.840> going<04:29:54.000> to<04:29:54.119> be<04:29:54.359> phenomenal<04:29:54.960> once 04:29:55.149 --> 04:29:55.159 align:start position:0% in beta it's going to be phenomenal once 04:29:55.159 --> 04:29:57.349 align:start position:0% in beta it's going to be phenomenal once it's<04:29:55.359> out<04:29:56.159> so<04:29:56.399> let's<04:29:56.600> just 04:29:57.349 --> 04:29:57.359 align:start position:0% it's out so let's just 04:29:57.359 --> 04:30:00.429 align:start position:0% it's out so let's just reload<04:29:58.359> it<04:29:58.520> works<04:29:58.880> again<04:29:59.279> it's<04:29:59.439> unsaved<04:30:00.199> and 04:30:00.429 --> 04:30:00.439 align:start position:0% reload it works again it's unsaved and 04:30:00.439 --> 04:30:03.790 align:start position:0% reload it works again it's unsaved and one<04:30:00.720> final<04:30:01.119> time<04:30:01.520> let's<04:30:01.760> click<04:30:02.399> save<04:30:03.399> and 04:30:03.790 --> 04:30:03.800 align:start position:0% one final time let's click save and 04:30:03.800 --> 04:30:06.670 align:start position:0% one final time let's click save and check<04:30:04.000> it<04:30:04.159> out<04:30:04.720> it<04:30:04.840> is<04:30:05.080> here<04:30:05.720> so<04:30:05.920> now<04:30:06.199> the<04:30:06.359> save 04:30:06.670 --> 04:30:06.680 align:start position:0% check it out it is here so now the save 04:30:06.680 --> 04:30:09.510 align:start position:0% check it out it is here so now the save functionality<04:30:07.239> works<04:30:07.680> perfectly<04:30:08.680> as<04:30:09.080> does 04:30:09.510 --> 04:30:09.520 align:start position:0% functionality works perfectly as does 04:30:09.520 --> 04:30:12.990 align:start position:0% functionality works perfectly as does the<04:30:09.720> like<04:30:10.000> feature<04:30:10.439> as<04:30:10.600> well<04:30:11.520> this<04:30:11.800> is<04:30:12.199> great 04:30:12.990 --> 04:30:13.000 align:start position:0% the like feature as well this is great 04:30:13.000 --> 04:30:14.670 align:start position:0% the like feature as well this is great and<04:30:13.199> with<04:30:13.399> that<04:30:13.680> we're<04:30:13.840> done<04:30:14.040> with<04:30:14.199> the<04:30:14.319> post 04:30:14.670 --> 04:30:14.680 align:start position:0% and with that we're done with the post 04:30:14.680 --> 04:30:16.590 align:start position:0% and with that we're done with the post stats<04:30:15.279> with<04:30:15.439> the<04:30:15.560> queries<04:30:15.920> mutations<04:30:16.399> and 04:30:16.590 --> 04:30:16.600 align:start position:0% stats with the queries mutations and 04:30:16.600 --> 04:30:19.269 align:start position:0% stats with the queries mutations and apis<04:30:17.040> for<04:30:17.199> the<04:30:17.319> Post<04:30:17.600> stats<04:30:17.960> as<04:30:18.159> well<04:30:19.040> you<04:30:19.119> can 04:30:19.269 --> 04:30:19.279 align:start position:0% apis for the Post stats as well you can 04:30:19.279 --> 04:30:21.070 align:start position:0% apis for the Post stats as well you can remove<04:30:19.600> the<04:30:19.720> conso<04:30:20.119> log<04:30:20.439> that<04:30:20.560> we<04:30:20.680> had<04:30:20.840> in<04:30:20.960> the 04:30:21.070 --> 04:30:21.080 align:start position:0% remove the conso log that we had in the 04:30:21.080 --> 04:30:24.229 align:start position:0% remove the conso log that we had in the post<04:30:21.439> card<04:30:22.439> and<04:30:22.640> we<04:30:22.760> can<04:30:23.000> focus<04:30:23.760> not<04:30:23.960> on<04:30:24.080> the 04:30:24.229 --> 04:30:24.239 align:start position:0% post card and we can focus not on the 04:30:24.239 --> 04:30:27.030 align:start position:0% post card and we can focus not on the home<04:30:24.640> right<04:30:24.840> now<04:30:25.399> but<04:30:25.640> rather<04:30:26.040> on<04:30:26.279> the<04:30:26.560> edit 04:30:27.030 --> 04:30:27.040 align:start position:0% home right now but rather on the edit 04:30:27.040 --> 04:30:28.990 align:start position:0% home right now but rather on the edit page<04:30:27.520> because<04:30:27.720> we<04:30:27.840> need<04:30:27.960> to<04:30:28.080> be<04:30:28.199> able<04:30:28.399> to<04:30:28.600> edit 04:30:28.990 --> 04:30:29.000 align:start position:0% page because we need to be able to edit 04:30:29.000 --> 04:30:31.550 align:start position:0% page because we need to be able to edit the<04:30:29.159> post<04:30:29.479> as<04:30:29.720> well<04:30:30.479> and<04:30:30.640> trust<04:30:30.920> me<04:30:31.319> this<04:30:31.439> is 04:30:31.550 --> 04:30:31.560 align:start position:0% the post as well and trust me this is 04:30:31.560 --> 04:30:34.149 align:start position:0% the post as well and trust me this is going<04:30:31.760> to<04:30:31.880> be<04:30:32.080> simpler<04:30:32.760> than<04:30:32.920> you<04:30:33.040> might<04:30:33.279> think 04:30:34.149 --> 04:30:34.159 align:start position:0% going to be simpler than you might think 04:30:34.159 --> 04:30:37.990 align:start position:0% going to be simpler than you might think you<04:30:34.359> have<04:30:34.479> to<04:30:34.640> go<04:30:34.800> to<04:30:35.000> the<04:30:35.199> edit<04:30:35.920> post<04:30:36.800> page<04:30:37.800> and 04:30:37.990 --> 04:30:38.000 align:start position:0% you have to go to the edit post page and 04:30:38.000 --> 04:30:40.710 align:start position:0% you have to go to the edit post page and then<04:30:38.359> you<04:30:38.520> can<04:30:38.760> also<04:30:39.080> open<04:30:39.359> the<04:30:39.600> create<04:30:40.279> post 04:30:40.710 --> 04:30:40.720 align:start position:0% then you can also open the create post 04:30:40.720 --> 04:30:43.630 align:start position:0% then you can also open the create post page<04:30:41.720> in<04:30:41.960> here<04:30:42.399> we<04:30:42.560> can<04:30:42.800> copy<04:30:43.080> the<04:30:43.239> entire 04:30:43.630 --> 04:30:43.640 align:start position:0% page in here we can copy the entire 04:30:43.640 --> 04:30:45.910 align:start position:0% page in here we can copy the entire create<04:30:44.000> post<04:30:44.760> and<04:30:44.920> then<04:30:45.159> paste<04:30:45.399> it<04:30:45.600> in<04:30:45.760> the 04:30:45.910 --> 04:30:45.920 align:start position:0% create post and then paste it in the 04:30:45.920 --> 04:30:48.950 align:start position:0% create post and then paste it in the edit<04:30:46.239> post<04:30:47.199> we<04:30:47.319> can<04:30:47.520> of<04:30:47.680> course<04:30:48.199> exchange<04:30:48.760> the 04:30:48.950 --> 04:30:48.960 align:start position:0% edit post we can of course exchange the 04:30:48.960 --> 04:30:52.070 align:start position:0% edit post we can of course exchange the create<04:30:49.680> with<04:30:50.000> edit 04:30:52.070 --> 04:30:52.080 align:start position:0% create with edit 04:30:52.080 --> 04:30:54.469 align:start position:0% create with edit post<04:30:53.080> now<04:30:53.319> it<04:30:53.439> seems<04:30:53.720> like<04:30:53.840> we're<04:30:54.040> creating 04:30:54.469 --> 04:30:54.479 align:start position:0% post now it seems like we're creating 04:30:54.479 --> 04:30:56.910 align:start position:0% post now it seems like we're creating one<04:30:55.119> so<04:30:55.479> we<04:30:55.560> can<04:30:55.760> simply<04:30:56.080> change<04:30:56.479> this<04:30:56.640> to 04:30:56.910 --> 04:30:56.920 align:start position:0% one so we can simply change this to 04:30:56.920 --> 04:31:00.389 align:start position:0% one so we can simply change this to instead<04:30:57.159> of<04:30:57.359> create<04:30:57.920> we<04:30:58.040> can<04:30:58.239> say<04:30:58.920> edit<04:30:59.920> and<04:31:00.199> in 04:31:00.389 --> 04:31:00.399 align:start position:0% instead of create we can say edit and in 04:31:00.399 --> 04:31:02.590 align:start position:0% instead of create we can say edit and in this<04:31:00.640> case<04:31:01.080> we'll<04:31:01.359> also<04:31:01.600> have<04:31:01.720> to<04:31:01.920> load<04:31:02.399> the 04:31:02.590 --> 04:31:02.600 align:start position:0% this case we'll also have to load the 04:31:02.600 --> 04:31:04.590 align:start position:0% this case we'll also have to load the existing<04:31:03.080> post<04:31:03.479> data<04:31:03.880> so<04:31:04.000> it's<04:31:04.119> going<04:31:04.239> to<04:31:04.359> be<04:31:04.479> a 04:31:04.590 --> 04:31:04.600 align:start position:0% existing post data so it's going to be a 04:31:04.600 --> 04:31:07.109 align:start position:0% existing post data so it's going to be a bit<04:31:04.760> more<04:31:05.000> complicated<04:31:05.640> and<04:31:05.800> create<04:31:06.680> so<04:31:06.960> what 04:31:07.109 --> 04:31:07.119 align:start position:0% bit more complicated and create so what 04:31:07.119 --> 04:31:10.469 align:start position:0% bit more complicated and create so what we<04:31:07.239> can<04:31:07.399> do<04:31:08.000> is<04:31:08.319> right<04:31:08.560> here<04:31:09.359> get<04:31:09.560> the<04:31:09.800> ID<04:31:10.359> of 04:31:10.469 --> 04:31:10.479 align:start position:0% we can do is right here get the ID of 04:31:10.479 --> 04:31:12.750 align:start position:0% we can do is right here get the ID of the<04:31:10.640> post<04:31:10.960> we<04:31:11.040> want<04:31:11.159> to<04:31:11.319> edit<04:31:11.880> by<04:31:12.000> saying<04:31:12.359> const 04:31:12.750 --> 04:31:12.760 align:start position:0% the post we want to edit by saying const 04:31:12.760 --> 04:31:15.630 align:start position:0% the post we want to edit by saying const ID<04:31:13.279> is<04:31:13.479> equal<04:31:13.840> to<04:31:14.239> use 04:31:15.630 --> 04:31:15.640 align:start position:0% ID is equal to use 04:31:15.640 --> 04:31:18.590 align:start position:0% ID is equal to use perams<04:31:16.640> and<04:31:16.800> this<04:31:16.920> use<04:31:17.239> perams<04:31:17.960> is<04:31:18.239> coming 04:31:18.590 --> 04:31:18.600 align:start position:0% perams and this use perams is coming 04:31:18.600 --> 04:31:21.830 align:start position:0% perams and this use perams is coming from<04:31:19.119> react<04:31:19.560> router<04:31:19.960> Dom<04:31:20.359> so<04:31:20.520> we<04:31:20.640> can<04:31:20.880> import 04:31:21.830 --> 04:31:21.840 align:start position:0% from react router Dom so we can import 04:31:21.840 --> 04:31:26.670 align:start position:0% from react router Dom so we can import use<04:31:22.600> perams<04:31:23.600> from<04:31:24.080> react<04:31:24.880> router 04:31:26.670 --> 04:31:26.680 align:start position:0% use perams from react router 04:31:26.680 --> 04:31:29.670 align:start position:0% use perams from react router Dom<04:31:27.680> there<04:31:27.880> we<04:31:28.080> go<04:31:28.680> and<04:31:28.920> we<04:31:29.000> need<04:31:29.159> to<04:31:29.279> get<04:31:29.439> the 04:31:29.670 --> 04:31:29.680 align:start position:0% Dom there we go and we need to get the 04:31:29.680 --> 04:31:32.469 align:start position:0% Dom there we go and we need to get the post<04:31:30.239> details<04:31:31.239> so<04:31:31.479> to<04:31:31.720> get<04:31:31.840> to<04:31:32.000> the<04:31:32.159> post 04:31:32.469 --> 04:31:32.479 align:start position:0% post details so to get to the post 04:31:32.479 --> 04:31:34.710 align:start position:0% post details so to get to the post details<04:31:33.040> we<04:31:33.159> have<04:31:33.279> to<04:31:33.439> create<04:31:33.720> an<04:31:33.960> API 04:31:34.710 --> 04:31:34.720 align:start position:0% details we have to create an API 04:31:34.720 --> 04:31:37.870 align:start position:0% details we have to create an API function<04:31:35.279> so<04:31:35.520> so<04:31:35.640> let's<04:31:35.840> go<04:31:35.960> to<04:31:36.119> our<04:31:36.359> API<04:31:37.159> below 04:31:37.870 --> 04:31:37.880 align:start position:0% function so so let's go to our API below 04:31:37.880 --> 04:31:42.070 align:start position:0% function so so let's go to our API below save<04:31:38.319> post<04:31:39.000> and<04:31:39.560> delete<04:31:39.960> saved<04:31:40.800> post<04:31:41.800> and<04:31:41.960> by 04:31:42.070 --> 04:31:42.080 align:start position:0% save post and delete saved post and by 04:31:42.080 --> 04:31:43.790 align:start position:0% save post and delete saved post and by the<04:31:42.199> way<04:31:42.520> if<04:31:42.760> some<04:31:42.920> of<04:31:43.080> these<04:31:43.239> things<04:31:43.439> are<04:31:43.600> now 04:31:43.790 --> 04:31:43.800 align:start position:0% the way if some of these things are now 04:31:43.800 --> 04:31:45.550 align:start position:0% the way if some of these things are now working<04:31:44.080> for<04:31:44.279> you<04:31:44.840> there's<04:31:45.080> going<04:31:45.199> to<04:31:45.319> be<04:31:45.439> a 04:31:45.550 --> 04:31:45.560 align:start position:0% working for you there's going to be a 04:31:45.560 --> 04:31:48.910 align:start position:0% working for you there's going to be a complete<04:31:46.040> apit<04:31:46.560> TS<04:31:47.000> file<04:31:47.720> as<04:31:47.960> well<04:31:48.319> as<04:31:48.640> the 04:31:48.910 --> 04:31:48.920 align:start position:0% complete apit TS file as well as the 04:31:48.920 --> 04:31:52.070 align:start position:0% complete apit TS file as well as the queries<04:31:49.279> and<04:31:49.439> mutations<04:31:49.960> file<04:31:50.359> down<04:31:50.800> below<04:31:51.800> so 04:31:52.070 --> 04:31:52.080 align:start position:0% queries and mutations file down below so 04:31:52.080 --> 04:31:55.030 align:start position:0% queries and mutations file down below so let's<04:31:52.319> create<04:31:52.640> a<04:31:52.880> simple<04:31:53.319> get<04:31:53.600> post<04:31:53.920> by<04:31:54.119> ID<04:31:54.920> by 04:31:55.030 --> 04:31:55.040 align:start position:0% let's create a simple get post by ID by 04:31:55.040 --> 04:31:57.469 align:start position:0% let's create a simple get post by ID by saying<04:31:55.680> export 04:31:57.469 --> 04:31:57.479 align:start position:0% saying export 04:31:57.479 --> 04:32:02.309 align:start position:0% saying export async<04:31:58.600> function<04:31:59.600> get<04:32:00.119> post<04:32:00.680> by<04:32:01.080> ID<04:32:01.960> where<04:32:02.159> we 04:32:02.309 --> 04:32:02.319 align:start position:0% async function get post by ID where we 04:32:02.319 --> 04:32:05.710 align:start position:0% async function get post by ID where we get<04:32:02.479> the<04:32:02.640> post<04:32:02.960> ID<04:32:03.680> of<04:32:03.840> a<04:32:04.000> typ<04:32:04.319> string<04:32:05.239> and<04:32:05.560> then 04:32:05.710 --> 04:32:05.720 align:start position:0% get the post ID of a typ string and then 04:32:05.720 --> 04:32:08.950 align:start position:0% get the post ID of a typ string and then we<04:32:05.880> open<04:32:06.159> up<04:32:06.359> a<04:32:06.520> new<04:32:06.880> try<04:32:07.199> and<04:32:07.520> catch<04:32:07.920> Block<04:32:08.800> in 04:32:08.950 --> 04:32:08.960 align:start position:0% we open up a new try and catch Block in 04:32:08.960 --> 04:32:11.269 align:start position:0% we open up a new try and catch Block in the<04:32:09.159> catch<04:32:09.479> we<04:32:09.720> conso<04:32:10.199> log<04:32:10.520> the 04:32:11.269 --> 04:32:11.279 align:start position:0% the catch we conso log the 04:32:11.279 --> 04:32:15.109 align:start position:0% the catch we conso log the error<04:32:12.279> and<04:32:12.600> in<04:32:12.760> the<04:32:12.960> try<04:32:13.800> we<04:32:13.920> can<04:32:14.119> get<04:32:14.600> cons 04:32:15.109 --> 04:32:15.119 align:start position:0% error and in the try we can get cons 04:32:15.119 --> 04:32:20.750 align:start position:0% error and in the try we can get cons post<04:32:15.960> is<04:32:16.239> equal<04:32:16.560> to<04:32:17.319> await<04:32:18.680> databases.<04:32:19.680> getet 04:32:20.750 --> 04:32:20.760 align:start position:0% post is equal to await databases. getet 04:32:20.760 --> 04:32:23.710 align:start position:0% post is equal to await databases. getet document<04:32:21.760> we<04:32:21.840> want<04:32:22.000> to<04:32:22.199> get<04:32:22.359> it<04:32:22.720> from<04:32:23.199> aight 04:32:23.710 --> 04:32:23.720 align:start position:0% document we want to get it from aight 04:32:23.720 --> 04:32:25.229 align:start position:0% document we want to get it from aight config<04:32:24.159> database 04:32:25.229 --> 04:32:25.239 align:start position:0% config database 04:32:25.239 --> 04:32:28.750 align:start position:0% config database ID<04:32:26.239> from<04:32:26.920> the<04:32:27.319> post<04:32:27.800> collection<04:32:28.399> so<04:32:28.560> we<04:32:28.640> can 04:32:28.750 --> 04:32:28.760 align:start position:0% ID from the post collection so we can 04:32:28.760 --> 04:32:31.349 align:start position:0% ID from the post collection so we can say<04:32:29.000> app<04:32:29.239> right<04:32:29.399> config<04:32:29.840> post<04:32:30.119> collection<04:32:30.560> ID 04:32:31.349 --> 04:32:31.359 align:start position:0% say app right config post collection ID 04:32:31.359 --> 04:32:34.149 align:start position:0% say app right config post collection ID and<04:32:31.479> we<04:32:31.600> can<04:32:31.760> pass<04:32:32.040> the<04:32:32.159> post<04:32:32.439> ID<04:32:33.359> finally<04:32:34.040> we 04:32:34.149 --> 04:32:34.159 align:start position:0% and we can pass the post ID finally we 04:32:34.159 --> 04:32:36.189 align:start position:0% and we can pass the post ID finally we can<04:32:34.520> return<04:32:35.040> the<04:32:35.199> post 04:32:36.189 --> 04:32:36.199 align:start position:0% can return the post 04:32:36.199 --> 04:32:38.990 align:start position:0% can return the post post<04:32:37.199> now<04:32:37.479> we<04:32:37.640> have<04:32:37.800> this<04:32:38.000> function<04:32:38.720> and<04:32:38.880> we 04:32:38.990 --> 04:32:39.000 align:start position:0% post now we have this function and we 04:32:39.000 --> 04:32:42.030 align:start position:0% post now we have this function and we have<04:32:39.119> to<04:32:39.279> consume<04:32:39.680> it<04:32:40.199> by<04:32:40.680> react<04:32:41.159> query<04:32:41.880> so 04:32:42.030 --> 04:32:42.040 align:start position:0% have to consume it by react query so 04:32:42.040 --> 04:32:44.630 align:start position:0% have to consume it by react query so let's<04:32:42.239> go<04:32:42.399> to<04:32:42.600> queries<04:32:43.000> and 04:32:44.630 --> 04:32:44.640 align:start position:0% let's go to queries and 04:32:44.640 --> 04:32:47.630 align:start position:0% let's go to queries and mutations<04:32:45.640> we<04:32:45.760> can<04:32:45.960> go<04:32:46.199> below<04:32:47.000> use<04:32:47.279> delete 04:32:47.630 --> 04:32:47.640 align:start position:0% mutations we can go below use delete 04:32:47.640 --> 04:32:50.510 align:start position:0% mutations we can go below use delete saved<04:32:48.080> post<04:32:49.080> and<04:32:49.279> we<04:32:49.359> can<04:32:49.520> create<04:32:49.880> new<04:32:50.080> one 04:32:50.510 --> 04:32:50.520 align:start position:0% saved post and we can create new one 04:32:50.520 --> 04:32:56.189 align:start position:0% saved post and we can create new one called<04:32:51.000> export<04:32:51.920> const<04:32:52.760> use<04:32:53.479> get<04:32:54.159> post<04:32:54.760> by 04:32:56.189 --> 04:32:56.199 align:start position:0% called export const use get post by 04:32:56.199 --> 04:33:00.590 align:start position:0% called export const use get post by ID<04:32:57.199> here<04:32:57.880> we<04:32:58.000> can<04:32:58.119> say<04:32:58.560> return<04:32:59.040> use 04:33:00.590 --> 04:33:00.600 align:start position:0% ID here we can say return use 04:33:00.600 --> 04:33:02.870 align:start position:0% ID here we can say return use Query<04:33:01.600> where<04:33:01.800> we're<04:33:01.920> going<04:33:02.040> to<04:33:02.159> have<04:33:02.279> a<04:33:02.479> query 04:33:02.870 --> 04:33:02.880 align:start position:0% Query where we're going to have a query 04:33:02.880 --> 04:33:07.310 align:start position:0% Query where we're going to have a query key<04:33:03.840> of<04:33:04.279> an<04:33:04.480> array<04:33:05.039> of<04:33:05.439> query<04:33:06.000> uncore 04:33:07.310 --> 04:33:07.320 align:start position:0% key of an array of query uncore 04:33:07.320 --> 04:33:12.949 align:start position:0% key of an array of query uncore keys.<04:33:08.320> get<04:33:09.000> post<04:33:09.719> by<04:33:10.359> ID<04:33:11.359> like<04:33:11.719> this<04:33:12.719> and<04:33:12.840> we 04:33:12.949 --> 04:33:12.959 align:start position:0% keys. get post by ID like this and we 04:33:12.959 --> 04:33:15.109 align:start position:0% keys. get post by ID like this and we need<04:33:13.080> to<04:33:13.240> pass<04:33:13.520> the<04:33:13.639> post<04:33:13.920> ID<04:33:14.400> in 04:33:15.109 --> 04:33:15.119 align:start position:0% need to pass the post ID in 04:33:15.119 --> 04:33:19.029 align:start position:0% need to pass the post ID in it<04:33:16.119> and<04:33:16.279> this<04:33:16.480> post<04:33:16.760> ID<04:33:17.160> is<04:33:17.400> coming<04:33:18.199> as<04:33:18.320> a<04:33:18.520> param 04:33:19.029 --> 04:33:19.039 align:start position:0% it and this post ID is coming as a param 04:33:19.039 --> 04:33:21.670 align:start position:0% it and this post ID is coming as a param to<04:33:19.240> this<04:33:19.439> function<04:33:20.000> so<04:33:20.119> we<04:33:20.240> can<04:33:20.359> say<04:33:20.600> post<04:33:20.920> ID 04:33:21.670 --> 04:33:21.680 align:start position:0% to this function so we can say post ID 04:33:21.680 --> 04:33:24.189 align:start position:0% to this function so we can say post ID of<04:33:21.840> a<04:33:22.039> typ<04:33:22.279> string<04:33:23.119> finally<04:33:23.719> which<04:33:23.920> function 04:33:24.189 --> 04:33:24.199 align:start position:0% of a typ string finally which function 04:33:24.199 --> 04:33:26.629 align:start position:0% of a typ string finally which function are<04:33:24.279> we<04:33:24.400> going<04:33:24.520> to<04:33:24.639> call<04:33:25.039> to<04:33:25.240> query<04:33:25.680> this<04:33:25.879> post 04:33:26.629 --> 04:33:26.639 align:start position:0% are we going to call to query this post 04:33:26.639 --> 04:33:29.510 align:start position:0% are we going to call to query this post we're<04:33:26.760> going<04:33:26.879> to<04:33:27.000> call<04:33:27.240> the<04:33:27.439> query<04:33:28.320> FN<04:33:29.320> which 04:33:29.510 --> 04:33:29.520 align:start position:0% we're going to call the query FN which 04:33:29.520 --> 04:33:33.230 align:start position:0% we're going to call the query FN which is<04:33:29.639> going<04:33:29.799> to<04:33:30.000> call<04:33:30.840> the<04:33:31.080> get<04:33:31.600> posted<04:33:32.000> by<04:33:32.240> ID<04:33:33.000> to 04:33:33.230 --> 04:33:33.240 align:start position:0% is going to call the get posted by ID to 04:33:33.240 --> 04:33:35.590 align:start position:0% is going to call the get posted by ID to which<04:33:33.400> we<04:33:33.600> pass<04:33:33.840> the<04:33:34.000> post<04:33:34.320> ID<04:33:35.039> and<04:33:35.160> this<04:33:35.480> of 04:33:35.590 --> 04:33:35.600 align:start position:0% which we pass the post ID and this of 04:33:35.600 --> 04:33:38.551 align:start position:0% which we pass the post ID and this of course<04:33:35.840> has<04:33:35.959> to<04:33:36.080> be<04:33:36.240> imported<04:33:37.000> from<04:33:37.680> the<04:33:37.879> top 04:33:38.551 --> 04:33:38.561 align:start position:0% course has to be imported from the top 04:33:38.561 --> 04:33:41.789 align:start position:0% course has to be imported from the top right<04:33:38.760> here<04:33:39.000> from<04:33:39.240> aight<04:33:39.719> API<04:33:40.680> get<04:33:41.039> posed<04:33:41.480> by 04:33:41.789 --> 04:33:41.799 align:start position:0% right here from aight API get posed by 04:33:41.799 --> 04:33:45.390 align:start position:0% right here from aight API get posed by ID<04:33:42.520> I<04:33:42.639> think<04:33:42.840> it's<04:33:43.359> here<04:33:43.959> there<04:33:44.119> we<04:33:44.320> go<04:33:45.199> and 04:33:45.390 --> 04:33:45.400 align:start position:0% ID I think it's here there we go and 04:33:45.400 --> 04:33:46.949 align:start position:0% ID I think it's here there we go and once<04:33:45.520> you<04:33:45.680> do<04:33:45.879> that<04:33:46.080> we'll<04:33:46.320> also<04:33:46.600> have<04:33:46.760> a 04:33:46.949 --> 04:33:46.959 align:start position:0% once you do that we'll also have a 04:33:46.959 --> 04:33:49.429 align:start position:0% once you do that we'll also have a special<04:33:47.359> property<04:33:47.920> called 04:33:49.429 --> 04:33:49.439 align:start position:0% special property called 04:33:49.439 --> 04:33:52.070 align:start position:0% special property called enabled<04:33:50.439> so<04:33:50.680> you<04:33:50.799> want<04:33:50.920> to<04:33:51.039> set<04:33:51.359> this<04:33:51.480> defaults 04:33:52.070 --> 04:33:52.080 align:start position:0% enabled so you want to set this defaults 04:33:52.080 --> 04:33:54.349 align:start position:0% enabled so you want to set this defaults to<04:33:52.320> disable<04:33:52.879> automatic<04:33:53.439> ref<04:33:53.760> fetching<04:33:54.199> when 04:33:54.349 --> 04:33:54.359 align:start position:0% to disable automatic ref fetching when 04:33:54.359 --> 04:33:56.470 align:start position:0% to disable automatic ref fetching when the<04:33:54.480> query<04:33:54.840> mounts<04:33:55.359> or<04:33:55.600> the<04:33:55.719> query<04:33:56.039> Keys<04:33:56.240> is 04:33:56.470 --> 04:33:56.480 align:start position:0% the query mounts or the query Keys is 04:33:56.480 --> 04:33:58.709 align:start position:0% the query mounts or the query Keys is changed<04:33:57.480> so<04:33:57.680> we<04:33:57.799> want<04:33:57.920> to<04:33:58.160> enable<04:33:58.600> the 04:33:58.709 --> 04:33:58.719 align:start position:0% changed so we want to enable the 04:33:58.719 --> 04:34:00.670 align:start position:0% changed so we want to enable the fetching<04:33:59.520> only<04:33:59.920> when<04:34:00.080> we're<04:34:00.240> fetching<04:34:00.520> the 04:34:00.670 --> 04:34:00.680 align:start position:0% fetching only when we're fetching the 04:34:00.680 --> 04:34:03.029 align:start position:0% fetching only when we're fetching the data<04:34:00.879> for<04:34:01.199> another<04:34:01.639> ID<04:34:02.279> if<04:34:02.359> we're<04:34:02.561> fetching<04:34:02.879> it 04:34:03.029 --> 04:34:03.039 align:start position:0% data for another ID if we're fetching it 04:34:03.039 --> 04:34:04.949 align:start position:0% data for another ID if we're fetching it again<04:34:03.240> for<04:34:03.439> the<04:34:03.600> same<04:34:03.799> one<04:34:04.400> then<04:34:04.680> we're<04:34:04.840> going 04:34:04.949 --> 04:34:04.959 align:start position:0% again for the same one then we're going 04:34:04.959 --> 04:34:07.349 align:start position:0% again for the same one then we're going to<04:34:05.039> get<04:34:05.359> the<04:34:05.480> same<04:34:05.799> details<04:34:06.520> if<04:34:06.639> the<04:34:06.799> post<04:34:07.080> ID 04:34:07.349 --> 04:34:07.359 align:start position:0% to get the same details if the post ID 04:34:07.359 --> 04:34:09.510 align:start position:0% to get the same details if the post ID didn't<04:34:07.639> changed<04:34:08.400> again<04:34:08.760> this<04:34:08.879> is<04:34:09.000> a<04:34:09.199> small 04:34:09.510 --> 04:34:09.520 align:start position:0% didn't changed again this is a small 04:34:09.520 --> 04:34:12.670 align:start position:0% didn't changed again this is a small step<04:34:09.879> here<04:34:10.480> nicely<04:34:10.920> built<04:34:11.199> into<04:34:11.480> react<04:34:11.879> query 04:34:12.670 --> 04:34:12.680 align:start position:0% step here nicely built into react query 04:34:12.680 --> 04:34:15.029 align:start position:0% step here nicely built into react query but<04:34:12.840> it<04:34:12.959> allows<04:34:13.320> us<04:34:13.480> to<04:34:13.760> cache<04:34:14.199> data<04:34:14.520> and<04:34:14.680> fetch 04:34:15.029 --> 04:34:15.039 align:start position:0% but it allows us to cache data and fetch 04:34:15.039 --> 04:34:17.390 align:start position:0% but it allows us to cache data and fetch data<04:34:15.279> more<04:34:15.719> efficiently<04:34:16.719> so<04:34:16.920> now<04:34:17.080> we<04:34:17.240> have 04:34:17.390 --> 04:34:17.400 align:start position:0% data more efficiently so now we have 04:34:17.400 --> 04:34:20.269 align:start position:0% data more efficiently so now we have this<04:34:17.561> use<04:34:17.879> get<04:34:18.119> post<04:34:18.400> by<04:34:18.600> ID<04:34:19.520> and<04:34:19.639> we<04:34:19.719> can<04:34:19.920> go 04:34:20.269 --> 04:34:20.279 align:start position:0% this use get post by ID and we can go 04:34:20.279 --> 04:34:23.189 align:start position:0% this use get post by ID and we can go back<04:34:20.600> to<04:34:21.480> right<04:34:21.719> here<04:34:22.000> in<04:34:22.160> the<04:34:22.279> edit 04:34:23.189 --> 04:34:23.199 align:start position:0% back to right here in the edit 04:34:23.199 --> 04:34:27.390 align:start position:0% back to right here in the edit post<04:34:24.199> where<04:34:24.520> we<04:34:24.639> can<04:34:24.799> use<04:34:25.039> it<04:34:25.520> by<04:34:25.680> saying<04:34:26.240> const 04:34:27.390 --> 04:34:27.400 align:start position:0% post where we can use it by saying const 04:34:27.400 --> 04:34:31.990 align:start position:0% post where we can use it by saying const data<04:34:28.400> is<04:34:28.561> equal<04:34:28.799> to<04:34:29.000> post<04:34:29.959> and<04:34:30.320> is<04:34:30.799> pending<04:34:31.799> is 04:34:31.990 --> 04:34:32.000 align:start position:0% data is equal to post and is pending is 04:34:32.000 --> 04:34:37.510 align:start position:0% data is equal to post and is pending is equal<04:34:32.279> to<04:34:32.840> use<04:34:33.879> get<04:34:34.879> post<04:34:35.719> by<04:34:36.080> ID<04:34:37.039> of<04:34:37.199> course<04:34:37.400> I 04:34:37.510 --> 04:34:37.520 align:start position:0% equal to use get post by ID of course I 04:34:37.520 --> 04:34:39.551 align:start position:0% equal to use get post by ID of course I have<04:34:37.639> to<04:34:37.760> spell<04:34:38.039> it<04:34:38.199> correctly<04:34:38.799> and<04:34:39.000> pass<04:34:39.240> the 04:34:39.551 --> 04:34:39.561 align:start position:0% have to spell it correctly and pass the 04:34:39.561 --> 04:34:42.390 align:start position:0% have to spell it correctly and pass the ID<04:34:40.561> and<04:34:40.680> then<04:34:40.799> we<04:34:40.959> have<04:34:41.039> to<04:34:41.240> import<04:34:41.600> it<04:34:41.959> from 04:34:42.390 --> 04:34:42.400 align:start position:0% ID and then we have to import it from 04:34:42.400 --> 04:34:43.910 align:start position:0% ID and then we have to import it from queries<04:34:42.760> and 04:34:43.910 --> 04:34:43.920 align:start position:0% queries and 04:34:43.920 --> 04:34:46.830 align:start position:0% queries and mutations<04:34:44.920> the<04:34:45.080> ID<04:34:45.639> has<04:34:45.799> to<04:34:45.959> be<04:34:46.080> a<04:34:46.240> string<04:34:46.719> so 04:34:46.830 --> 04:34:46.840 align:start position:0% mutations the ID has to be a string so 04:34:46.840 --> 04:34:48.709 align:start position:0% mutations the ID has to be a string so we're<04:34:47.000> going<04:34:47.080> to<04:34:47.279> pass<04:34:47.520> either<04:34:47.879> this<04:34:48.279> or<04:34:48.561> an 04:34:48.709 --> 04:34:48.719 align:start position:0% we're going to pass either this or an 04:34:48.719 --> 04:34:51.990 align:start position:0% we're going to pass either this or an empty<04:34:49.240> string<04:34:50.240> then<04:34:50.639> if<04:34:50.840> we<04:34:51.000> are<04:34:51.400> pending 04:34:51.990 --> 04:34:52.000 align:start position:0% empty string then if we are pending 04:34:52.000 --> 04:34:53.869 align:start position:0% empty string then if we are pending meaning<04:34:52.279> if<04:34:52.400> we're<04:34:52.561> loading<04:34:52.879> the<04:34:53.039> data<04:34:53.680> in 04:34:53.869 --> 04:34:53.879 align:start position:0% meaning if we're loading the data in 04:34:53.879 --> 04:34:56.029 align:start position:0% meaning if we're loading the data in that<04:34:54.080> case<04:34:54.359> we<04:34:54.480> can<04:34:54.600> say<04:34:55.080> return<04:34:55.520> if<04:34:55.760> is 04:34:56.029 --> 04:34:56.039 align:start position:0% that case we can say return if is 04:34:56.039 --> 04:34:58.390 align:start position:0% that case we can say return if is pending<04:34:57.039> then<04:34:57.279> we<04:34:57.359> can<04:34:57.561> simply<04:34:58.000> return 04:34:58.390 --> 04:34:58.400 align:start position:0% pending then we can simply return 04:34:58.400 --> 04:35:01.551 align:start position:0% pending then we can simply return something<04:34:58.799> like<04:34:59.039> a<04:34:59.719> loader<04:35:00.719> like<04:35:00.959> this<04:35:01.439> which 04:35:01.551 --> 04:35:01.561 align:start position:0% something like a loader like this which 04:35:01.561 --> 04:35:04.189 align:start position:0% something like a loader like this which is<04:35:01.719> coming<04:35:02.000> from<04:35:02.359> components<04:35:02.920> shared 04:35:04.189 --> 04:35:04.199 align:start position:0% is coming from components shared 04:35:04.199 --> 04:35:07.349 align:start position:0% is coming from components shared loader<04:35:05.320> but<04:35:05.520> now<04:35:05.879> once<04:35:06.039> we<04:35:06.199> do<04:35:06.400> fetch<04:35:06.680> the<04:35:06.840> data 04:35:07.349 --> 04:35:07.359 align:start position:0% loader but now once we do fetch the data 04:35:07.359 --> 04:35:09.150 align:start position:0% loader but now once we do fetch the data what<04:35:07.480> do<04:35:07.600> we<04:35:07.719> want<04:35:07.799> to<04:35:07.959> do<04:35:08.119> with<04:35:08.240> it<04:35:08.799> well<04:35:09.000> we 04:35:09.150 --> 04:35:09.160 align:start position:0% what do we want to do with it well we 04:35:09.160 --> 04:35:12.310 align:start position:0% what do we want to do with it well we simply<04:35:09.439> want<04:35:09.520> to<04:35:09.840> pass<04:35:10.039> it<04:35:10.320> over<04:35:11.199> to<04:35:11.680> our<04:35:11.920> post 04:35:12.310 --> 04:35:12.320 align:start position:0% simply want to pass it over to our post 04:35:12.320 --> 04:35:15.470 align:start position:0% simply want to pass it over to our post form<04:35:13.039> with<04:35:13.279> an<04:35:13.561> action<04:35:14.160> equal<04:35:14.480> to<04:35:14.719> update 04:35:15.470 --> 04:35:15.480 align:start position:0% form with an action equal to update 04:35:15.480 --> 04:35:18.029 align:start position:0% form with an action equal to update because<04:35:15.719> now<04:35:15.879> we're<04:35:16.119> updating<04:35:17.119> and<04:35:17.320> a<04:35:17.561> post 04:35:18.029 --> 04:35:18.039 align:start position:0% because now we're updating and a post 04:35:18.039 --> 04:35:20.510 align:start position:0% because now we're updating and a post equal<04:35:18.359> to<04:35:18.600> post<04:35:19.600> there<04:35:19.719> we<04:35:19.920> go<04:35:20.160> you<04:35:20.240> can<04:35:20.359> see 04:35:20.510 --> 04:35:20.520 align:start position:0% equal to post there we go you can see 04:35:20.520 --> 04:35:23.109 align:start position:0% equal to post there we go you can see the<04:35:20.680> data<04:35:20.920> was<04:35:21.039> already<04:35:21.719> populated<04:35:22.719> how<04:35:22.879> did 04:35:23.109 --> 04:35:23.119 align:start position:0% the data was already populated how did 04:35:23.119 --> 04:35:25.349 align:start position:0% the data was already populated how did that<04:35:23.320> happen<04:35:23.840> well<04:35:24.000> more<04:35:24.160> than<04:35:24.359> that<04:35:24.561> soon 04:35:25.349 --> 04:35:25.359 align:start position:0% that happen well more than that soon 04:35:25.359 --> 04:35:28.029 align:start position:0% that happen well more than that soon let's<04:35:25.639> dive<04:35:25.920> into<04:35:26.240> the<04:35:26.400> post<04:35:26.719> form<04:35:27.680> we<04:35:27.799> can 04:35:28.029 --> 04:35:28.039 align:start position:0% let's dive into the post form we can 04:35:28.039 --> 04:35:31.310 align:start position:0% let's dive into the post form we can also<04:35:28.561> accept<04:35:29.080> the<04:35:29.719> action<04:35:30.719> and<04:35:30.840> we<04:35:30.959> can<04:35:31.080> say 04:35:31.310 --> 04:35:31.320 align:start position:0% also accept the action and we can say 04:35:31.320 --> 04:35:35.349 align:start position:0% also accept the action and we can say that<04:35:31.639> action<04:35:32.439> is<04:35:32.680> either<04:35:32.959> going<04:35:33.160> to<04:35:33.359> be<04:35:34.240> create 04:35:35.349 --> 04:35:35.359 align:start position:0% that action is either going to be create 04:35:35.359 --> 04:35:38.429 align:start position:0% that action is either going to be create or<04:35:35.879> it's<04:35:36.039> going<04:35:36.240> to<04:35:36.400> be<04:35:37.080> update<04:35:38.000> so<04:35:38.199> now<04:35:38.320> we 04:35:38.429 --> 04:35:38.439 align:start position:0% or it's going to be update so now we 04:35:38.439 --> 04:35:40.709 align:start position:0% or it's going to be update so now we know<04:35:38.719> exactly<04:35:39.160> what<04:35:39.279> we're<04:35:39.439> getting<04:35:39.680> in<04:35:40.520> and 04:35:40.709 --> 04:35:40.719 align:start position:0% know exactly what we're getting in and 04:35:40.719 --> 04:35:42.990 align:start position:0% know exactly what we're getting in and all<04:35:40.959> the<04:35:41.119> data<04:35:41.359> automatically<04:35:41.879> got<04:35:42.160> populated 04:35:42.990 --> 04:35:43.000 align:start position:0% all the data automatically got populated 04:35:43.000 --> 04:35:44.830 align:start position:0% all the data automatically got populated because<04:35:43.279> we're<04:35:43.520> accepting<04:35:44.000> this<04:35:44.199> post<04:35:44.639> right 04:35:44.830 --> 04:35:44.840 align:start position:0% because we're accepting this post right 04:35:44.840 --> 04:35:47.990 align:start position:0% because we're accepting this post right here<04:35:45.199> as<04:35:45.320> a<04:35:45.680> prop<04:35:46.680> but<04:35:46.959> the<04:35:47.119> question<04:35:47.439> is<04:35:47.840> how 04:35:47.990 --> 04:35:48.000 align:start position:0% here as a prop but the question is how 04:35:48.000 --> 04:35:50.750 align:start position:0% here as a prop but the question is how can<04:35:48.119> we<04:35:48.279> get<04:35:48.439> the<04:35:48.680> file<04:35:49.279> to<04:35:49.520> get<04:35:49.799> updated<04:35:50.561> as 04:35:50.750 --> 04:35:50.760 align:start position:0% can we get the file to get updated as 04:35:50.760 --> 04:35:52.629 align:start position:0% can we get the file to get updated as well<04:35:51.320> because<04:35:51.561> you<04:35:51.680> can<04:35:51.799> see<04:35:52.080> right<04:35:52.240> here<04:35:52.520> we 04:35:52.629 --> 04:35:52.639 align:start position:0% well because you can see right here we 04:35:52.639 --> 04:35:55.869 align:start position:0% well because you can see right here we don't<04:35:52.920> see<04:35:53.240> the<04:35:53.439> photo<04:35:53.920> or<04:35:54.080> the<04:35:54.480> file<04:35:55.480> and<04:35:55.639> to 04:35:55.869 --> 04:35:55.879 align:start position:0% don't see the photo or the file and to 04:35:55.879 --> 04:35:58.269 align:start position:0% don't see the photo or the file and to get<04:35:56.039> it<04:35:56.359> we<04:35:56.480> have<04:35:56.600> to<04:35:56.799> look<04:35:57.160> into<04:35:57.600> our<04:35:57.920> file 04:35:58.269 --> 04:35:58.279 align:start position:0% get it we have to look into our file 04:35:58.279 --> 04:36:00.349 align:start position:0% get it we have to look into our file uploader<04:35:58.840> component<04:35:59.520> that<04:35:59.680> we<04:35:59.799> have<04:35:59.959> created 04:36:00.349 --> 04:36:00.359 align:start position:0% uploader component that we have created 04:36:00.359 --> 04:36:02.830 align:start position:0% uploader component that we have created not<04:36:00.639> that<04:36:00.799> long<04:36:01.039> ago<04:36:01.760> to<04:36:02.000> it<04:36:02.240> we're<04:36:02.520> passing 04:36:02.830 --> 04:36:02.840 align:start position:0% not that long ago to it we're passing 04:36:02.840 --> 04:36:06.349 align:start position:0% not that long ago to it we're passing the<04:36:02.959> media<04:36:03.320> URL<04:36:04.240> post<04:36:04.760> image<04:36:05.160> URL<04:36:06.000> so<04:36:06.240> it 04:36:06.349 --> 04:36:06.359 align:start position:0% the media URL post image URL so it 04:36:06.359 --> 04:36:08.349 align:start position:0% the media URL post image URL so it should<04:36:06.561> be<04:36:06.719> able<04:36:06.920> to<04:36:07.119> read<04:36:07.719> the<04:36:07.879> image<04:36:08.160> we're 04:36:08.349 --> 04:36:08.359 align:start position:0% should be able to read the image we're 04:36:08.359 --> 04:36:10.310 align:start position:0% should be able to read the image we're showing<04:36:09.279> so<04:36:09.439> if<04:36:09.520> you<04:36:09.680> go<04:36:09.879> back<04:36:10.039> to<04:36:10.160> the 04:36:10.310 --> 04:36:10.320 align:start position:0% showing so if you go back to the 04:36:10.320 --> 04:36:13.109 align:start position:0% showing so if you go back to the homepage<04:36:11.080> and<04:36:11.279> click<04:36:11.639> edit<04:36:12.639> it<04:36:12.719> should<04:36:12.920> be 04:36:13.109 --> 04:36:13.119 align:start position:0% homepage and click edit it should be 04:36:13.119 --> 04:36:15.869 align:start position:0% homepage and click edit it should be able<04:36:13.279> to<04:36:13.400> read<04:36:13.639> it<04:36:14.199> but<04:36:14.480> it<04:36:14.680> doesn't<04:36:15.480> so<04:36:15.680> let's 04:36:15.869 --> 04:36:15.879 align:start position:0% able to read it but it doesn't so let's 04:36:15.879 --> 04:36:18.070 align:start position:0% able to read it but it doesn't so let's simply<04:36:16.160> conso<04:36:16.600> log<04:36:16.920> right<04:36:17.039> here<04:36:17.199> at<04:36:17.320> the<04:36:17.520> top 04:36:18.070 --> 04:36:18.080 align:start position:0% simply conso log right here at the top 04:36:18.080 --> 04:36:22.470 align:start position:0% simply conso log right here at the top whether<04:36:18.279> we're<04:36:18.480> getting<04:36:19.199> post<04:36:19.879> dot<04:36:20.760> image<04:36:21.480> URL 04:36:22.470 --> 04:36:22.480 align:start position:0% whether we're getting post dot image URL 04:36:22.480 --> 04:36:27.990 align:start position:0% whether we're getting post dot image URL so<04:36:22.639> let's<04:36:22.879> conso<04:36:23.279> log<04:36:24.279> the<04:36:24.959> post.<04:36:25.959> image<04:36:27.000> URL 04:36:27.990 --> 04:36:28.000 align:start position:0% so let's conso log the post. image URL 04:36:28.000 --> 04:36:30.070 align:start position:0% so let's conso log the post. image URL and<04:36:28.199> then<04:36:28.439> we<04:36:28.600> can<04:36:29.119> save 04:36:30.070 --> 04:36:30.080 align:start position:0% and then we can save 04:36:30.080 --> 04:36:34.310 align:start position:0% and then we can save it<04:36:31.080> this<04:36:31.400> post<04:36:32.039> is<04:36:32.400> coming<04:36:32.840> from<04:36:33.400> let's<04:36:33.600> see 04:36:34.310 --> 04:36:34.320 align:start position:0% it this post is coming from let's see 04:36:34.320 --> 04:36:35.590 align:start position:0% it this post is coming from let's see here 04:36:35.590 --> 04:36:35.600 align:start position:0% here 04:36:35.600 --> 04:36:36.670 align:start position:0% here it's<04:36:35.760> saying<04:36:36.000> that<04:36:36.320> sometimes<04:36:36.520> it's 04:36:36.670 --> 04:36:36.680 align:start position:0% it's saying that sometimes it's 04:36:36.680 --> 04:36:38.629 align:start position:0% it's saying that sometimes it's undefined<04:36:37.359> so<04:36:37.520> we<04:36:37.639> have<04:36:37.760> to<04:36:37.959> add<04:36:38.119> a<04:36:38.359> question 04:36:38.629 --> 04:36:38.639 align:start position:0% undefined so we have to add a question 04:36:38.639 --> 04:36:40.789 align:start position:0% undefined so we have to add a question mark<04:36:39.000> so<04:36:39.160> our<04:36:39.359> app<04:36:39.561> doesn't<04:36:39.840> break<04:36:40.561> that's 04:36:40.789 --> 04:36:40.799 align:start position:0% mark so our app doesn't break that's 04:36:40.799 --> 04:36:44.269 align:start position:0% mark so our app doesn't break that's great<04:36:41.760> now<04:36:42.240> let's<04:36:42.480> open<04:36:42.719> up<04:36:42.879> the 04:36:44.269 --> 04:36:44.279 align:start position:0% great now let's open up the 04:36:44.279 --> 04:36:46.470 align:start position:0% great now let's open up the console<04:36:45.279> and<04:36:45.600> let's 04:36:46.470 --> 04:36:46.480 align:start position:0% console and let's 04:36:46.480 --> 04:36:49.109 align:start position:0% console and let's reload<04:36:47.480> and<04:36:47.600> as<04:36:47.719> you<04:36:47.799> can<04:36:47.920> see<04:36:48.160> we<04:36:48.359> indeed<04:36:48.760> do 04:36:49.109 --> 04:36:49.119 align:start position:0% reload and as you can see we indeed do 04:36:49.119 --> 04:36:51.789 align:start position:0% reload and as you can see we indeed do get<04:36:49.520> a<04:36:49.760> post<04:36:50.279> which<04:36:50.400> is<04:36:50.520> our<04:36:50.760> exact<04:36:51.240> image 04:36:51.789 --> 04:36:51.799 align:start position:0% get a post which is our exact image 04:36:51.799 --> 04:36:53.670 align:start position:0% get a post which is our exact image which<04:36:51.920> is<04:36:52.160> great<04:36:52.799> so<04:36:52.959> we<04:36:53.080> just<04:36:53.199> have<04:36:53.320> to<04:36:53.439> figure 04:36:53.670 --> 04:36:53.680 align:start position:0% which is great so we just have to figure 04:36:53.680 --> 04:36:55.629 align:start position:0% which is great so we just have to figure out<04:36:53.920> how<04:36:54.039> to<04:36:54.160> show<04:36:54.439> it<04:36:54.719> right<04:36:54.920> here<04:36:55.359> in<04:36:55.480> the 04:36:55.629 --> 04:36:55.639 align:start position:0% out how to show it right here in the 04:36:55.639 --> 04:36:57.990 align:start position:0% out how to show it right here in the photos<04:36:56.561> and<04:36:56.719> that's<04:36:56.959> most<04:36:57.199> likely<04:36:57.480> have<04:36:57.600> to<04:36:57.719> do 04:36:57.990 --> 04:36:58.000 align:start position:0% photos and that's most likely have to do 04:36:58.000 --> 04:37:00.830 align:start position:0% photos and that's most likely have to do with<04:36:58.199> going<04:36:58.561> into<04:36:59.199> the<04:36:59.320> file<04:36:59.719> uploader<04:37:00.719> and 04:37:00.830 --> 04:37:00.840 align:start position:0% with going into the file uploader and 04:37:00.840 --> 04:37:03.230 align:start position:0% with going into the file uploader and then<04:37:01.080> using<04:37:01.439> the<04:37:01.561> media<04:37:01.920> URL<04:37:02.600> yes<04:37:02.920> as<04:37:03.000> you<04:37:03.119> can 04:37:03.230 --> 04:37:03.240 align:start position:0% then using the media URL yes as you can 04:37:03.240 --> 04:37:05.910 align:start position:0% then using the media URL yes as you can see<04:37:03.439> we're<04:37:03.639> currently<04:37:04.160> not<04:37:04.520> using<04:37:04.840> it<04:37:05.480> so<04:37:05.799> we 04:37:05.910 --> 04:37:05.920 align:start position:0% see we're currently not using it so we 04:37:05.920 --> 04:37:08.590 align:start position:0% see we're currently not using it so we can<04:37:06.160> simply<04:37:06.480> set<04:37:06.719> the<04:37:06.840> media<04:37:07.199> URL<04:37:07.879> to<04:37:08.080> be<04:37:08.320> a 04:37:08.590 --> 04:37:08.600 align:start position:0% can simply set the media URL to be a 04:37:08.600 --> 04:37:11.949 align:start position:0% can simply set the media URL to be a default<04:37:09.320> State<04:37:09.920> the<04:37:10.160> default<04:37:10.680> file<04:37:11.000> URL<04:37:11.840> and 04:37:11.949 --> 04:37:11.959 align:start position:0% default State the default file URL and 04:37:11.959 --> 04:37:14.910 align:start position:0% default State the default file URL and if<04:37:12.080> we<04:37:12.240> do<04:37:12.480> that<04:37:13.039> immediately<04:37:13.840> it<04:37:14.080> gets 04:37:14.910 --> 04:37:14.920 align:start position:0% if we do that immediately it gets 04:37:14.920 --> 04:37:18.510 align:start position:0% if we do that immediately it gets updated<04:37:15.920> so<04:37:16.199> now<04:37:16.719> if<04:37:16.840> we<04:37:17.119> reload<04:37:18.119> as<04:37:18.240> you<04:37:18.359> can 04:37:18.510 --> 04:37:18.520 align:start position:0% updated so now if we reload as you can 04:37:18.520 --> 04:37:22.349 align:start position:0% updated so now if we reload as you can see<04:37:19.400> once<04:37:19.561> you<04:37:19.760> visit<04:37:20.240> the<04:37:20.600> create<04:37:21.400> route<04:37:22.039> it's 04:37:22.349 --> 04:37:22.359 align:start position:0% see once you visit the create route it's 04:37:22.359 --> 04:37:25.390 align:start position:0% see once you visit the create route it's empty<04:37:23.359> but<04:37:23.639> if<04:37:23.760> you<04:37:23.920> go<04:37:24.119> to<04:37:24.279> the<04:37:24.439> edit<04:37:25.119> you<04:37:25.240> can 04:37:25.390 --> 04:37:25.400 align:start position:0% empty but if you go to the edit you can 04:37:25.400 --> 04:37:28.269 align:start position:0% empty but if you go to the edit you can see<04:37:25.760> right<04:37:26.000> here<04:37:26.840> that<04:37:27.119> it<04:37:27.320> nicely<04:37:27.719> gets<04:37:28.039> all 04:37:28.269 --> 04:37:28.279 align:start position:0% see right here that it nicely gets all 04:37:28.279 --> 04:37:31.189 align:start position:0% see right here that it nicely gets all the<04:37:28.480> data<04:37:29.080> the<04:37:29.240> photo<04:37:29.840> as<04:37:30.080> well<04:37:30.760> and<04:37:30.920> now<04:37:31.119> you 04:37:31.189 --> 04:37:31.199 align:start position:0% the data the photo as well and now you 04:37:31.199 --> 04:37:33.390 align:start position:0% the data the photo as well and now you should<04:37:31.400> be<04:37:31.520> able<04:37:31.719> to<04:37:31.920> resubmit<04:37:32.561> the<04:37:32.680> form<04:37:33.199> to 04:37:33.390 --> 04:37:33.400 align:start position:0% should be able to resubmit the form to 04:37:33.400 --> 04:37:35.670 align:start position:0% should be able to resubmit the form to then<04:37:33.600> edit<04:37:34.039> the<04:37:34.240> actual<04:37:34.561> details 04:37:35.670 --> 04:37:35.680 align:start position:0% then edit the actual details 04:37:35.680 --> 04:37:37.470 align:start position:0% then edit the actual details don't<04:37:35.959> click<04:37:36.160> it<04:37:36.400> just<04:37:36.639> yet<04:37:37.000> because<04:37:37.240> if<04:37:37.320> you 04:37:37.470 --> 04:37:37.480 align:start position:0% don't click it just yet because if you 04:37:37.480 --> 04:37:39.150 align:start position:0% don't click it just yet because if you click<04:37:37.719> it<04:37:37.879> now<04:37:38.199> it's<04:37:38.359> going<04:37:38.520> to<04:37:38.719> create 04:37:39.150 --> 04:37:39.160 align:start position:0% click it now it's going to create 04:37:39.160 --> 04:37:41.910 align:start position:0% click it now it's going to create another<04:37:39.639> post<04:37:40.480> because<04:37:41.119> if<04:37:41.240> you<04:37:41.400> go<04:37:41.561> to<04:37:41.719> the 04:37:41.910 --> 04:37:41.920 align:start position:0% another post because if you go to the 04:37:41.920 --> 04:37:45.390 align:start position:0% another post because if you go to the edit<04:37:42.840> or<04:37:43.561> onsubmit<04:37:44.561> in<04:37:44.760> here<04:37:44.920> we're<04:37:45.160> only 04:37:45.390 --> 04:37:45.400 align:start position:0% edit or onsubmit in here we're only 04:37:45.400 --> 04:37:47.510 align:start position:0% edit or onsubmit in here we're only calling<04:37:45.760> the<04:37:45.959> create<04:37:46.359> post<04:37:47.000> but<04:37:47.119> we're<04:37:47.320> not 04:37:47.510 --> 04:37:47.520 align:start position:0% calling the create post but we're not 04:37:47.520 --> 04:37:49.470 align:start position:0% calling the create post but we're not calling<04:37:47.920> edit<04:37:48.279> post<04:37:48.799> which<04:37:48.959> we<04:37:49.119> have<04:37:49.240> to 04:37:49.470 --> 04:37:49.480 align:start position:0% calling edit post which we have to 04:37:49.480 --> 04:37:52.551 align:start position:0% calling edit post which we have to create<04:37:50.480> so<04:37:51.279> one<04:37:51.480> thing<04:37:51.639> that<04:37:51.760> I<04:37:51.879> noticed<04:37:52.400> is 04:37:52.551 --> 04:37:52.561 align:start position:0% create so one thing that I noticed is 04:37:52.561 --> 04:37:54.429 align:start position:0% create so one thing that I noticed is that<04:37:52.760> here<04:37:52.959> it's<04:37:53.119> complaining<04:37:53.600> that<04:37:53.879> action 04:37:54.429 --> 04:37:54.439 align:start position:0% that here it's complaining that action 04:37:54.439 --> 04:37:57.109 align:start position:0% that here it's complaining that action should<04:37:54.680> be<04:37:54.920> update<04:37:55.561> with<04:37:55.719> an<04:37:55.840> uppercase<04:37:56.400> du<04:37:56.920> so 04:37:57.109 --> 04:37:57.119 align:start position:0% should be update with an uppercase du so 04:37:57.119 --> 04:37:59.230 align:start position:0% should be update with an uppercase du so let's<04:37:57.320> do<04:37:57.439> it<04:37:57.600> that<04:37:57.799> way<04:37:58.480> and<04:37:58.639> now<04:37:58.959> we'll<04:37:59.119> have 04:37:59.230 --> 04:37:59.240 align:start position:0% let's do it that way and now we'll have 04:37:59.240 --> 04:38:01.709 align:start position:0% let's do it that way and now we'll have to<04:37:59.359> focus<04:37:59.639> on<04:37:59.840> the<04:38:00.000> logic<04:38:00.520> of<04:38:00.840> updating<04:38:01.520> the 04:38:01.709 --> 04:38:01.719 align:start position:0% to focus on the logic of updating the 04:38:01.719 --> 04:38:05.551 align:start position:0% to focus on the logic of updating the post<04:38:02.480> so<04:38:02.879> let's<04:38:03.119> do<04:38:03.359> that<04:38:03.600> next<04:38:04.439> to<04:38:05.080> implement 04:38:05.551 --> 04:38:05.561 align:start position:0% post so let's do that next to implement 04:38:05.561 --> 04:38:09.629 align:start position:0% post so let's do that next to implement the<04:38:05.840> update<04:38:06.359> post<04:38:06.959> we<04:38:07.080> can<04:38:07.279> go<04:38:07.480> to<04:38:07.719> our<04:38:08.320> API<04:38:09.320> and 04:38:09.629 --> 04:38:09.639 align:start position:0% the update post we can go to our API and 04:38:09.639 --> 04:38:11.390 align:start position:0% the update post we can go to our API and right<04:38:09.840> here<04:38:10.119> we<04:38:10.199> can<04:38:10.359> add<04:38:10.520> a<04:38:10.639> new<04:38:10.879> function 04:38:11.390 --> 04:38:11.400 align:start position:0% right here we can add a new function 04:38:11.400 --> 04:38:14.470 align:start position:0% right here we can add a new function called<04:38:11.799> update<04:38:12.279> post<04:38:13.119> to<04:38:13.279> do<04:38:13.439> it<04:38:13.840> we<04:38:14.039> might<04:38:14.320> as 04:38:14.470 --> 04:38:14.480 align:start position:0% called update post to do it we might as 04:38:14.480 --> 04:38:17.150 align:start position:0% called update post to do it we might as well<04:38:14.840> copy<04:38:15.320> the<04:38:15.600> initial<04:38:16.199> create<04:38:16.719> post<04:38:17.000> that 04:38:17.150 --> 04:38:17.160 align:start position:0% well copy the initial create post that 04:38:17.160 --> 04:38:19.510 align:start position:0% well copy the initial create post that we<04:38:17.279> had<04:38:17.561> here<04:38:18.279> because<04:38:18.639> a<04:38:18.760> lot<04:38:18.920> of<04:38:19.039> the<04:38:19.199> logic 04:38:19.510 --> 04:38:19.520 align:start position:0% we had here because a lot of the logic 04:38:19.520 --> 04:38:22.629 align:start position:0% we had here because a lot of the logic is<04:38:19.639> going<04:38:19.799> to<04:38:19.959> be<04:38:20.160> similar<04:38:21.080> so<04:38:21.320> let's<04:38:21.639> copy<04:38:21.920> it 04:38:22.629 --> 04:38:22.639 align:start position:0% is going to be similar so let's copy it 04:38:22.639 --> 04:38:25.551 align:start position:0% is going to be similar so let's copy it and<04:38:22.760> then<04:38:23.000> paste<04:38:23.279> it<04:38:23.600> right<04:38:23.840> here<04:38:24.359> below<04:38:25.359> this 04:38:25.551 --> 04:38:25.561 align:start position:0% and then paste it right here below this 04:38:25.561 --> 04:38:28.789 align:start position:0% and then paste it right here below this time<04:38:25.840> it's<04:38:26.000> going<04:38:26.160> to<04:38:26.279> be<04:38:26.439> called<04:38:26.840> update 04:38:28.789 --> 04:38:28.799 align:start position:0% time it's going to be called update 04:38:28.799 --> 04:38:31.029 align:start position:0% time it's going to be called update post<04:38:29.799> and<04:38:30.000> we'll<04:38:30.199> have<04:38:30.320> to<04:38:30.439> get<04:38:30.561> the<04:38:30.680> entire 04:38:31.029 --> 04:38:31.039 align:start position:0% post and we'll have to get the entire 04:38:31.039 --> 04:38:33.470 align:start position:0% post and we'll have to get the entire post<04:38:31.359> want<04:38:31.561> to<04:38:31.799> update<04:38:32.760> now<04:38:33.000> the<04:38:33.160> first<04:38:33.359> thing 04:38:33.470 --> 04:38:33.480 align:start position:0% post want to update now the first thing 04:38:33.480 --> 04:38:35.429 align:start position:0% post want to update now the first thing we<04:38:33.600> want<04:38:33.719> to<04:38:33.879> do<04:38:34.160> is<04:38:34.279> we<04:38:34.400> want<04:38:34.480> to<04:38:34.561> figure<04:38:35.000> out 04:38:35.429 --> 04:38:35.439 align:start position:0% we want to do is we want to figure out 04:38:35.439 --> 04:38:38.910 align:start position:0% we want to do is we want to figure out if<04:38:35.719> the<04:38:35.879> user<04:38:36.240> is<04:38:36.439> updating<04:38:37.080> the<04:38:37.760> contents<04:38:38.760> as 04:38:38.910 --> 04:38:38.920 align:start position:0% if the user is updating the contents as 04:38:38.920 --> 04:38:41.230 align:start position:0% if the user is updating the contents as well<04:38:39.080> as<04:38:39.240> the<04:38:39.400> image<04:38:40.000> or<04:38:40.240> if<04:38:40.359> they're<04:38:40.639> updating 04:38:41.230 --> 04:38:41.240 align:start position:0% well as the image or if they're updating 04:38:41.240 --> 04:38:44.429 align:start position:0% well as the image or if they're updating just<04:38:41.480> the<04:38:42.000> contents<04:38:43.000> so<04:38:43.199> we<04:38:43.279> can<04:38:43.400> say<04:38:43.680> const 04:38:44.429 --> 04:38:44.439 align:start position:0% just the contents so we can say const 04:38:44.439 --> 04:38:47.709 align:start position:0% just the contents so we can say const has<04:38:44.920> file<04:38:45.719> to<04:38:46.279> update<04:38:47.240> and<04:38:47.359> that's<04:38:47.480> going<04:38:47.600> to 04:38:47.709 --> 04:38:47.719 align:start position:0% has file to update and that's going to 04:38:47.719 --> 04:38:50.869 align:start position:0% has file to update and that's going to be<04:38:47.840> true<04:38:48.279> if<04:38:48.439> the<04:38:48.639> post.<04:38:49.480> file.<04:38:50.199> length<04:38:50.639> is 04:38:50.869 --> 04:38:50.879 align:start position:0% be true if the post. file. length is 04:38:50.879 --> 04:38:53.429 align:start position:0% be true if the post. file. length is greater<04:38:51.199> than<04:38:51.359> one<04:38:52.279> this<04:38:52.400> can<04:38:52.600> be<04:38:52.840> above<04:38:53.279> the 04:38:53.429 --> 04:38:53.439 align:start position:0% greater than one this can be above the 04:38:53.439 --> 04:38:56.269 align:start position:0% greater than one this can be above the try<04:38:53.760> and<04:38:54.039> catch<04:38:54.439> block<04:38:55.439> and<04:38:55.561> then<04:38:55.840> inside<04:38:56.160> of 04:38:56.269 --> 04:38:56.279 align:start position:0% try and catch block and then inside of 04:38:56.279 --> 04:38:58.910 align:start position:0% try and catch block and then inside of the<04:38:56.439> try<04:38:57.080> we<04:38:57.199> can<04:38:57.359> form<04:38:57.760> this<04:38:57.959> new<04:38:58.199> image<04:38:58.719> by 04:38:58.910 --> 04:38:58.920 align:start position:0% the try we can form this new image by 04:38:58.920 --> 04:39:02.349 align:start position:0% the try we can form this new image by saying<04:38:59.240> let<04:38:59.561> image<04:39:00.039> is<04:39:00.240> equal<04:39:00.561> to<04:39:01.320> image<04:39:01.600> URL 04:39:02.349 --> 04:39:02.359 align:start position:0% saying let image is equal to image URL 04:39:02.359 --> 04:39:06.789 align:start position:0% saying let image is equal to image URL is<04:39:02.719> post.<04:39:03.600> image<04:39:03.879> URL<04:39:04.959> and<04:39:05.279> image<04:39:05.600> ID<04:39:06.119> is<04:39:06.359> post 04:39:06.789 --> 04:39:06.799 align:start position:0% is post. image URL and image ID is post 04:39:06.799 --> 04:39:09.830 align:start position:0% is post. image URL and image ID is post that<04:39:07.080> image<04:39:07.520> ID<04:39:08.520> and<04:39:08.799> this<04:39:09.039> is<04:39:09.160> going<04:39:09.359> to<04:39:09.480> be<04:39:09.680> of 04:39:09.830 --> 04:39:09.840 align:start position:0% that image ID and this is going to be of 04:39:09.840 --> 04:39:14.189 align:start position:0% that image ID and this is going to be of a<04:39:10.080> type<04:39:10.639> I<04:39:11.520> update<04:39:12.520> post<04:39:13.320> so<04:39:13.520> we<04:39:13.600> can<04:39:13.760> import<04:39:14.080> it 04:39:14.189 --> 04:39:14.199 align:start position:0% a type I update post so we can import it 04:39:14.199 --> 04:39:16.390 align:start position:0% a type I update post so we can import it from<04:39:14.359> the<04:39:14.520> types<04:39:15.320> that<04:39:15.520> way<04:39:15.760> we<04:39:15.920> know<04:39:16.279> it's 04:39:16.390 --> 04:39:16.400 align:start position:0% from the types that way we know it's 04:39:16.400 --> 04:39:18.910 align:start position:0% from the types that way we know it's going<04:39:16.600> to<04:39:16.760> contain<04:39:17.119> the<04:39:17.359> file<04:39:17.840> as<04:39:18.080> well<04:39:18.799> as 04:39:18.910 --> 04:39:18.920 align:start position:0% going to contain the file as well as 04:39:18.920 --> 04:39:21.470 align:start position:0% going to contain the file as well as well<04:39:19.039> as<04:39:19.160> the<04:39:19.279> image<04:39:19.561> ID<04:39:19.920> and<04:39:20.039> the<04:39:20.160> image<04:39:20.480> URL 04:39:21.470 --> 04:39:21.480 align:start position:0% well as the image ID and the image URL 04:39:21.480 --> 04:39:23.390 align:start position:0% well as the image ID and the image URL now<04:39:21.719> once<04:39:21.920> we<04:39:22.080> have<04:39:22.240> the<04:39:22.400> image<04:39:22.840> we<04:39:22.920> can<04:39:23.080> figure 04:39:23.390 --> 04:39:23.400 align:start position:0% now once we have the image we can figure 04:39:23.400 --> 04:39:27.349 align:start position:0% now once we have the image we can figure out<04:39:23.799> if<04:39:24.199> the<04:39:24.320> user<04:39:24.840> has<04:39:25.039> a<04:39:25.279> file<04:39:25.561> to<04:39:26.119> update<04:39:27.119> and 04:39:27.349 --> 04:39:27.359 align:start position:0% out if the user has a file to update and 04:39:27.359 --> 04:39:29.990 align:start position:0% out if the user has a file to update and if<04:39:27.520> they<04:39:27.680> do<04:39:28.400> we<04:39:28.520> can<04:39:28.680> open<04:39:29.080> this<04:39:29.240> block<04:39:29.760> and<04:39:29.879> we 04:39:29.990 --> 04:39:30.000 align:start position:0% if they do we can open this block and we 04:39:30.000 --> 04:39:32.349 align:start position:0% if they do we can open this block and we can<04:39:30.119> slowly<04:39:30.520> start<04:39:30.799> adding<04:39:31.119> things<04:39:31.359> to<04:39:31.600> it<04:39:32.080> so 04:39:32.349 --> 04:39:32.359 align:start position:0% can slowly start adding things to it so 04:39:32.359 --> 04:39:34.429 align:start position:0% can slowly start adding things to it so if<04:39:32.520> they<04:39:32.680> have<04:39:32.799> a<04:39:32.920> file<04:39:33.119> to<04:39:33.279> upload<04:39:33.840> we<04:39:33.959> want<04:39:34.080> to 04:39:34.429 --> 04:39:34.439 align:start position:0% if they have a file to upload we want to 04:39:34.439 --> 04:39:37.670 align:start position:0% if they have a file to upload we want to get<04:39:34.600> the<04:39:34.879> uploaded<04:39:35.719> file<04:39:36.719> we<04:39:36.840> want<04:39:36.959> to<04:39:37.160> check 04:39:37.670 --> 04:39:37.680 align:start position:0% get the uploaded file we want to check 04:39:37.680 --> 04:39:40.270 align:start position:0% get the uploaded file we want to check if<04:39:37.840> it's<04:39:38.400> there<04:39:39.400> we<04:39:39.480> want<04:39:39.600> to<04:39:39.760> get<04:39:39.920> the<04:39:40.040> file 04:39:40.270 --> 04:39:40.280 align:start position:0% if it's there we want to get the file 04:39:40.280 --> 04:39:43.270 align:start position:0% if it's there we want to get the file URL<04:39:41.040> alongside<04:39:41.680> the<04:39:42.000> error<04:39:42.400> Handler<04:39:42.878> for<04:39:43.160> the 04:39:43.270 --> 04:39:43.280 align:start position:0% URL alongside the error Handler for the 04:39:43.280 --> 04:39:46.510 align:start position:0% URL alongside the error Handler for the file<04:39:43.560> URL<04:39:44.240> put<04:39:44.440> all<04:39:44.600> of<04:39:44.760> that<04:39:45.080> above<04:39:46.080> and<04:39:46.240> then 04:39:46.510 --> 04:39:46.520 align:start position:0% file URL put all of that above and then 04:39:46.520 --> 04:39:48.190 align:start position:0% file URL put all of that above and then finally<04:39:46.958> in<04:39:47.120> this<04:39:47.320> case<04:39:47.480> we<04:39:47.600> want<04:39:47.718> to<04:39:47.878> update 04:39:48.190 --> 04:39:48.200 align:start position:0% finally in this case we want to update 04:39:48.200 --> 04:39:51.270 align:start position:0% finally in this case we want to update the<04:39:48.400> image<04:39:48.878> by<04:39:49.040> saying<04:39:49.400> image<04:39:49.840> is<04:39:50.040> equal<04:39:50.360> to<04:39:51.080> we 04:39:51.270 --> 04:39:51.280 align:start position:0% the image by saying image is equal to we 04:39:51.280 --> 04:39:53.550 align:start position:0% the image by saying image is equal to we spread<04:39:51.760> the<04:39:51.920> existing<04:39:52.400> image<04:39:53.120> and<04:39:53.280> then 04:39:53.550 --> 04:39:53.560 align:start position:0% spread the existing image and then 04:39:53.560 --> 04:39:57.110 align:start position:0% spread the existing image and then update<04:39:53.920> the<04:39:54.080> image<04:39:54.320> URL<04:39:55.040> with<04:39:55.280> a<04:39:55.480> new<04:39:55.798> file<04:39:56.120> URL 04:39:57.110 --> 04:39:57.120 align:start position:0% update the image URL with a new file URL 04:39:57.120 --> 04:40:00.390 align:start position:0% update the image URL with a new file URL and<04:39:57.520> update<04:39:57.840> the<04:39:57.958> image<04:39:58.280> ID<04:39:59.040> with<04:39:59.240> a<04:39:59.520> new 04:40:00.390 --> 04:40:00.400 align:start position:0% and update the image ID with a new 04:40:00.400 --> 04:40:04.150 align:start position:0% and update the image ID with a new uploaded<04:40:01.040> file.<04:40:02.000> doar<04:40:02.400> sign<04:40:02.760> ID<04:40:03.718> this<04:40:03.920> here<04:40:04.040> is 04:40:04.150 --> 04:40:04.160 align:start position:0% uploaded file. doar sign ID this here is 04:40:04.160 --> 04:40:07.110 align:start position:0% uploaded file. doar sign ID this here is going<04:40:04.320> to<04:40:04.440> be<04:40:04.560> the<04:40:04.840> entire<04:40:05.760> image<04:40:06.760> and<04:40:06.958> the 04:40:07.110 --> 04:40:07.120 align:start position:0% going to be the entire image and the 04:40:07.120 --> 04:40:09.390 align:start position:0% going to be the entire image and the image<04:40:07.440> has<04:40:07.560> to<04:40:07.680> be<04:40:07.840> reassign<04:40:08.638> so<04:40:08.798> it<04:40:08.958> has<04:40:09.080> to<04:40:09.240> be 04:40:09.390 --> 04:40:09.400 align:start position:0% image has to be reassign so it has to be 04:40:09.400 --> 04:40:11.830 align:start position:0% image has to be reassign so it has to be led<04:40:10.320> but<04:40:10.520> it's<04:40:10.680> still<04:40:10.920> complaining<04:40:11.600> that 04:40:11.830 --> 04:40:11.840 align:start position:0% led but it's still complaining that 04:40:11.840 --> 04:40:13.590 align:start position:0% led but it's still complaining that image<04:40:12.160> is<04:40:12.320> never<04:40:12.600> used<04:40:13.080> we're<04:40:13.200> going<04:40:13.280> to<04:40:13.440> use 04:40:13.590 --> 04:40:13.600 align:start position:0% image is never used we're going to use 04:40:13.600 --> 04:40:15.230 align:start position:0% image is never used we're going to use it<04:40:13.840> really 04:40:15.230 --> 04:40:15.240 align:start position:0% it really 04:40:15.240 --> 04:40:18.628 align:start position:0% it really soon<04:40:16.240> now<04:40:16.600> we<04:40:16.718> get<04:40:16.920> the<04:40:17.120> tags<04:40:17.718> same<04:40:18.000> things<04:40:18.360> as 04:40:18.628 --> 04:40:18.638 align:start position:0% soon now we get the tags same things as 04:40:18.638 --> 04:40:20.550 align:start position:0% soon now we get the tags same things as before<04:40:19.360> and<04:40:19.480> then<04:40:19.600> we<04:40:19.680> want<04:40:19.798> to<04:40:19.920> save<04:40:20.200> the<04:40:20.320> post 04:40:20.550 --> 04:40:20.560 align:start position:0% before and then we want to save the post 04:40:20.560 --> 04:40:22.750 align:start position:0% before and then we want to save the post of<04:40:20.680> the<04:40:20.878> database<04:40:21.680> but<04:40:21.920> this<04:40:22.160> time<04:40:22.360> it's<04:40:22.560> not 04:40:22.750 --> 04:40:22.760 align:start position:0% of the database but this time it's not 04:40:22.760 --> 04:40:25.628 align:start position:0% of the database but this time it's not going<04:40:22.878> to<04:40:23.000> be<04:40:23.240> create<04:40:24.000> it's<04:40:24.200> going<04:40:24.360> to<04:40:24.520> be 04:40:25.628 --> 04:40:25.638 align:start position:0% going to be create it's going to be 04:40:25.638 --> 04:40:28.270 align:start position:0% going to be create it's going to be update<04:40:26.638> once<04:40:26.840> we<04:40:27.000> update<04:40:27.320> it<04:40:27.600> we<04:40:27.718> want<04:40:27.840> to<04:40:28.120> get 04:40:28.270 --> 04:40:28.280 align:start position:0% update once we update it we want to get 04:40:28.280 --> 04:40:30.990 align:start position:0% update once we update it we want to get the<04:40:28.360> same<04:40:28.638> databid<04:40:29.638> same<04:40:29.958> post<04:40:30.280> collection 04:40:30.990 --> 04:40:31.000 align:start position:0% the same databid same post collection 04:40:31.000 --> 04:40:33.070 align:start position:0% the same databid same post collection but<04:40:31.280> this<04:40:31.480> time<04:40:31.760> we're<04:40:32.040> updating<04:40:32.440> an<04:40:32.638> already 04:40:33.070 --> 04:40:33.080 align:start position:0% but this time we're updating an already 04:40:33.080 --> 04:40:36.590 align:start position:0% but this time we're updating an already existing<04:40:33.958> post<04:40:34.480> so<04:40:34.680> so<04:40:34.798> we<04:40:34.878> can<04:40:35.000> get<04:40:35.160> the<04:40:35.600> post. 04:40:36.590 --> 04:40:36.600 align:start position:0% existing post so so we can get the post. 04:40:36.600 --> 04:40:39.750 align:start position:0% existing post so so we can get the post. poost<04:40:37.000> ID<04:40:37.798> right<04:40:38.040> here<04:40:39.040> and<04:40:39.160> then<04:40:39.360> here<04:40:39.520> we<04:40:39.600> can 04:40:39.750 --> 04:40:39.760 align:start position:0% poost ID right here and then here we can 04:40:39.760 --> 04:40:42.030 align:start position:0% poost ID right here and then here we can Define<04:40:40.160> what<04:40:40.280> do<04:40:40.400> we<04:40:40.480> want<04:40:40.600> to<04:40:40.840> update<04:40:41.840> the 04:40:42.030 --> 04:40:42.040 align:start position:0% Define what do we want to update the 04:40:42.040 --> 04:40:44.230 align:start position:0% Define what do we want to update the creator<04:40:42.798> doesn't<04:40:43.080> have<04:40:43.200> to<04:40:43.320> be<04:40:43.440> updated<04:40:44.040> it's 04:40:44.230 --> 04:40:44.240 align:start position:0% creator doesn't have to be updated it's 04:40:44.240 --> 04:40:46.590 align:start position:0% creator doesn't have to be updated it's the<04:40:44.400> same<04:40:44.680> one<04:40:45.360> the<04:40:45.560> caption<04:40:45.878> is<04:40:46.040> post. 04:40:46.590 --> 04:40:46.600 align:start position:0% the same one the caption is post. 04:40:46.600 --> 04:40:48.990 align:start position:0% the same one the caption is post. caption<04:40:47.240> image<04:40:47.480> URL<04:40:48.040> is<04:40:48.200> going<04:40:48.360> to<04:40:48.520> be<04:40:48.798> this 04:40:48.990 --> 04:40:49.000 align:start position:0% caption image URL is going to be this 04:40:49.000 --> 04:40:53.788 align:start position:0% caption image URL is going to be this new<04:40:49.400> image<04:40:49.840> object<04:40:50.680> do<04:40:51.320> image<04:40:51.958> URL<04:40:52.958> image<04:40:53.280> ID 04:40:53.788 --> 04:40:53.798 align:start position:0% new image object do image URL image ID 04:40:53.798 --> 04:40:57.350 align:start position:0% new image object do image URL image ID is<04:40:53.920> going<04:40:54.080> to<04:40:54.240> be<04:40:54.480> image<04:40:55.280> do<04:40:56.080> image 04:40:57.350 --> 04:40:57.360 align:start position:0% is going to be image do image 04:40:57.360 --> 04:41:00.830 align:start position:0% is going to be image do image ID<04:40:58.360> location<04:40:58.878> is<04:40:59.040> the<04:40:59.200> same<04:40:59.440> and<04:40:59.600> tax<04:40:59.958> is<04:41:00.120> the 04:41:00.830 --> 04:41:00.840 align:start position:0% ID location is the same and tax is the 04:41:00.840 --> 04:41:03.990 align:start position:0% ID location is the same and tax is the same<04:41:01.840> finally<04:41:02.480> if<04:41:02.638> we<04:41:02.798> don't<04:41:03.120> have<04:41:03.440> this<04:41:03.798> let's 04:41:03.990 --> 04:41:04.000 align:start position:0% same finally if we don't have this let's 04:41:04.000 --> 04:41:06.270 align:start position:0% same finally if we don't have this let's call<04:41:04.160> it<04:41:04.280> an<04:41:04.400> up<04:41:04.680> upd<04:41:04.840> dated 04:41:06.270 --> 04:41:06.280 align:start position:0% call it an up upd dated 04:41:06.280 --> 04:41:11.390 align:start position:0% call it an up upd dated post<04:41:07.280> then<04:41:07.600> we<04:41:07.760> can<04:41:08.120> await<04:41:08.798> delete<04:41:09.320> file<04:41:10.400> post. 04:41:11.390 --> 04:41:11.400 align:start position:0% post then we can await delete file post. 04:41:11.400 --> 04:41:13.868 align:start position:0% post then we can await delete file post. image<04:41:11.840> ID<04:41:12.840> so<04:41:12.958> if<04:41:13.120> something<04:41:13.360> went<04:41:13.600> wrong 04:41:13.868 --> 04:41:13.878 align:start position:0% image ID so if something went wrong 04:41:13.878 --> 04:41:16.310 align:start position:0% image ID so if something went wrong we're<04:41:14.040> deleting<04:41:14.560> the<04:41:14.718> file<04:41:15.638> else<04:41:16.080> we're 04:41:16.310 --> 04:41:16.320 align:start position:0% we're deleting the file else we're 04:41:16.320 --> 04:41:18.750 align:start position:0% we're deleting the file else we're returning<04:41:16.878> the<04:41:17.120> updated 04:41:18.750 --> 04:41:18.760 align:start position:0% returning the updated 04:41:18.760 --> 04:41:21.070 align:start position:0% returning the updated post<04:41:19.760> this<04:41:19.878> is<04:41:20.160> great<04:41:20.520> this<04:41:20.680> is<04:41:20.798> going<04:41:20.920> to 04:41:21.070 --> 04:41:21.080 align:start position:0% post this is great this is going to 04:41:21.080 --> 04:41:23.510 align:start position:0% post this is great this is going to enable<04:41:21.400> us<04:41:21.560> to<04:41:21.878> update<04:41:22.240> the<04:41:22.440> post<04:41:23.120> and<04:41:23.320> while 04:41:23.510 --> 04:41:23.520 align:start position:0% enable us to update the post and while 04:41:23.520 --> 04:41:25.510 align:start position:0% enable us to update the post and while we're<04:41:23.760> here<04:41:24.160> let's<04:41:24.440> also<04:41:24.878> implement<04:41:25.360> the 04:41:25.510 --> 04:41:25.520 align:start position:0% we're here let's also implement the 04:41:25.520 --> 04:41:28.310 align:start position:0% we're here let's also implement the delete<04:41:25.958> post<04:41:26.638> that<04:41:26.840> way<04:41:27.320> all<04:41:27.560> of<04:41:27.718> the<04:41:27.878> cred 04:41:28.310 --> 04:41:28.320 align:start position:0% delete post that way all of the cred 04:41:28.320 --> 04:41:30.030 align:start position:0% delete post that way all of the cred options<04:41:28.680> for<04:41:28.840> the<04:41:29.040> Post<04:41:29.440> are<04:41:29.600> going<04:41:29.680> to<04:41:29.840> be 04:41:30.030 --> 04:41:30.040 align:start position:0% options for the Post are going to be 04:41:30.040 --> 04:41:33.628 align:start position:0% options for the Post are going to be complete<04:41:30.798> so<04:41:30.958> we<04:41:31.040> can<04:41:31.200> say<04:41:31.920> export<04:41:32.920> async 04:41:33.628 --> 04:41:33.638 align:start position:0% complete so we can say export async 04:41:33.638 --> 04:41:37.190 align:start position:0% complete so we can say export async function<04:41:34.718> delete<04:41:35.360> post<04:41:36.360> to<04:41:36.520> delete<04:41:36.878> it<04:41:37.080> we 04:41:37.190 --> 04:41:37.200 align:start position:0% function delete post to delete it we 04:41:37.200 --> 04:41:39.430 align:start position:0% function delete post to delete it we need<04:41:37.320> to<04:41:37.440> be<04:41:37.560> able<04:41:37.718> to<04:41:37.840> get<04:41:38.000> the<04:41:38.200> post<04:41:38.520> ID<04:41:39.080> of<04:41:39.240> a 04:41:39.430 --> 04:41:39.440 align:start position:0% need to be able to get the post ID of a 04:41:39.440 --> 04:41:43.868 align:start position:0% need to be able to get the post ID of a type<04:41:39.680> string<04:41:40.638> and<04:41:40.878> an<04:41:41.120> image<04:41:41.480> ID<04:41:42.000> of<04:41:42.160> a<04:41:42.320> type 04:41:43.868 --> 04:41:43.878 align:start position:0% type string and an image ID of a type 04:41:43.878 --> 04:41:47.470 align:start position:0% type string and an image ID of a type string<04:41:44.878> then<04:41:45.400> what<04:41:45.560> we<04:41:45.638> can<04:41:45.840> do<04:41:46.280> is<04:41:46.440> say<04:41:46.878> if 04:41:47.470 --> 04:41:47.480 align:start position:0% string then what we can do is say if 04:41:47.480 --> 04:41:50.430 align:start position:0% string then what we can do is say if there<04:41:47.638> is<04:41:47.878> no<04:41:48.240> post<04:41:48.600> ID<04:41:49.520> or<04:41:49.840> if<04:41:50.000> there's<04:41:50.240> no 04:41:50.430 --> 04:41:50.440 align:start position:0% there is no post ID or if there's no 04:41:50.440 --> 04:41:52.670 align:start position:0% there is no post ID or if there's no image<04:41:50.840> ID<04:41:51.400> we<04:41:51.520> can<04:41:51.680> throw<04:41:51.878> an<04:41:52.040> error<04:41:52.440> because 04:41:52.670 --> 04:41:52.680 align:start position:0% image ID we can throw an error because 04:41:52.680 --> 04:41:54.350 align:start position:0% image ID we can throw an error because we<04:41:52.798> need<04:41:53.080> those<04:41:53.280> to<04:41:53.400> be<04:41:53.520> able<04:41:53.718> to<04:41:53.878> delete<04:41:54.160> a 04:41:54.350 --> 04:41:54.360 align:start position:0% we need those to be able to delete a 04:41:54.360 --> 04:41:56.990 align:start position:0% we need those to be able to delete a post<04:41:55.240> and<04:41:55.360> we<04:41:55.520> also<04:41:55.680> need<04:41:55.798> to<04:41:55.958> delete<04:41:56.240> an<04:41:56.400> image 04:41:56.990 --> 04:41:57.000 align:start position:0% post and we also need to delete an image 04:41:57.000 --> 04:41:59.070 align:start position:0% post and we also need to delete an image which<04:41:57.160> is<04:41:57.360> why<04:41:57.520> we<04:41:57.680> need<04:41:58.040> an<04:41:58.200> image 04:41:59.070 --> 04:41:59.080 align:start position:0% which is why we need an image 04:41:59.080 --> 04:42:02.310 align:start position:0% which is why we need an image ID<04:42:00.080> then<04:42:00.480> we<04:42:00.600> can<04:42:00.760> go<04:42:00.878> to<04:42:01.040> the<04:42:01.160> try<04:42:01.400> and<04:42:01.680> catch 04:42:02.310 --> 04:42:02.320 align:start position:0% ID then we can go to the try and catch 04:42:02.320 --> 04:42:04.190 align:start position:0% ID then we can go to the try and catch you<04:42:02.440> know<04:42:02.638> the<04:42:02.760> drill<04:42:03.360> in<04:42:03.480> the<04:42:03.680> catch<04:42:03.958> we<04:42:04.080> can 04:42:04.190 --> 04:42:04.200 align:start position:0% you know the drill in the catch we can 04:42:04.200 --> 04:42:07.030 align:start position:0% you know the drill in the catch we can conso<04:42:04.680> log<04:42:04.920> the<04:42:05.040> error<04:42:06.000> and<04:42:06.200> in<04:42:06.360> the<04:42:06.520> try<04:42:06.920> we 04:42:07.030 --> 04:42:07.040 align:start position:0% conso log the error and in the try we 04:42:07.040 --> 04:42:09.788 align:start position:0% conso log the error and in the try we can<04:42:07.160> say<04:42:07.920> await 04:42:09.788 --> 04:42:09.798 align:start position:0% can say await 04:42:09.798 --> 04:42:13.070 align:start position:0% can say await databases.<04:42:10.798> delete<04:42:11.360> document<04:42:12.360> to<04:42:12.680> which<04:42:12.840> we 04:42:13.070 --> 04:42:13.080 align:start position:0% databases. delete document to which we 04:42:13.080 --> 04:42:16.788 align:start position:0% databases. delete document to which we pass<04:42:13.520> the<04:42:13.958> database<04:42:14.760> ID<04:42:15.760> the<04:42:16.000> post<04:42:16.320> collection 04:42:16.788 --> 04:42:16.798 align:start position:0% pass the database ID the post collection 04:42:16.798 --> 04:42:19.430 align:start position:0% pass the database ID the post collection ID<04:42:17.718> as<04:42:17.840> well<04:42:18.000> as<04:42:18.160> the<04:42:18.320> post<04:42:18.638> ID<04:42:19.080> that<04:42:19.200> we<04:42:19.320> want 04:42:19.430 --> 04:42:19.440 align:start position:0% ID as well as the post ID that we want 04:42:19.440 --> 04:42:22.390 align:start position:0% ID as well as the post ID that we want to<04:42:19.840> delete<04:42:20.840> and<04:42:21.000> finally<04:42:21.560> we<04:42:21.680> can<04:42:22.000> return 04:42:22.390 --> 04:42:22.400 align:start position:0% to delete and finally we can return 04:42:22.400 --> 04:42:24.430 align:start position:0% to delete and finally we can return something<04:42:22.680> like<04:42:22.878> a<04:42:23.120> status<04:42:23.878> that's<04:42:24.080> going<04:42:24.240> to 04:42:24.430 --> 04:42:24.440 align:start position:0% something like a status that's going to 04:42:24.440 --> 04:42:27.550 align:start position:0% something like a status that's going to say<04:42:25.160> okay<04:42:26.080> there<04:42:26.240> we<04:42:26.400> go<04:42:26.958> so<04:42:27.160> now<04:42:27.280> we<04:42:27.400> have 04:42:27.550 --> 04:42:27.560 align:start position:0% say okay there we go so now we have 04:42:27.560 --> 04:42:30.030 align:start position:0% say okay there we go so now we have delete<04:42:28.000> as<04:42:28.160> well<04:42:28.920> don't<04:42:29.120> forget<04:42:29.600> we<04:42:29.718> have<04:42:29.840> to 04:42:30.030 --> 04:42:30.040 align:start position:0% delete as well don't forget we have to 04:42:30.040 --> 04:42:33.590 align:start position:0% delete as well don't forget we have to consume<04:42:30.600> this<04:42:30.958> within<04:42:31.200> a<04:42:31.360> react<04:42:32.200> query<04:42:33.200> so 04:42:33.590 --> 04:42:33.600 align:start position:0% consume this within a react query so 04:42:33.600 --> 04:42:37.150 align:start position:0% consume this within a react query so let's<04:42:33.840> go<04:42:34.000> to<04:42:34.240> query<04:42:34.560> iies<04:42:35.120> and<04:42:35.878> mutations<04:42:36.878> and 04:42:37.150 --> 04:42:37.160 align:start position:0% let's go to query iies and mutations and 04:42:37.160 --> 04:42:39.270 align:start position:0% let's go to query iies and mutations and before<04:42:37.480> creating<04:42:37.878> it<04:42:38.160> we<04:42:38.280> can<04:42:38.480> simply<04:42:38.958> copy 04:42:39.270 --> 04:42:39.280 align:start position:0% before creating it we can simply copy 04:42:39.280 --> 04:42:42.070 align:start position:0% before creating it we can simply copy the<04:42:39.400> one<04:42:39.718> before<04:42:40.718> and<04:42:40.840> then<04:42:41.080> paste<04:42:41.320> it<04:42:41.560> here<04:42:42.000> we 04:42:42.070 --> 04:42:42.080 align:start position:0% the one before and then paste it here we 04:42:42.080 --> 04:42:46.030 align:start position:0% the one before and then paste it here we can<04:42:42.240> rename<04:42:42.680> it<04:42:42.878> to<04:42:43.120> use<04:42:43.680> update<04:42:44.920> post<04:42:45.920> we 04:42:46.030 --> 04:42:46.040 align:start position:0% can rename it to use update post we 04:42:46.040 --> 04:42:48.510 align:start position:0% can rename it to use update post we don't<04:42:46.240> need<04:42:46.400> to<04:42:46.560> get<04:42:46.760> anything<04:42:47.200> inside<04:42:47.560> of<04:42:47.718> it 04:42:48.510 --> 04:42:48.520 align:start position:0% don't need to get anything inside of it 04:42:48.520 --> 04:42:49.910 align:start position:0% don't need to get anything inside of it in<04:42:48.718> this<04:42:48.920> case<04:42:49.120> it's<04:42:49.280> not<04:42:49.440> going<04:42:49.560> to<04:42:49.680> be<04:42:49.760> a 04:42:49.910 --> 04:42:49.920 align:start position:0% in this case it's not going to be a 04:42:49.920 --> 04:42:51.910 align:start position:0% in this case it's not going to be a query<04:42:50.280> it's<04:42:50.520> going<04:42:50.638> to<04:42:50.760> be<04:42:50.840> a<04:42:50.958> mutation<04:42:51.680> so<04:42:51.840> we 04:42:51.910 --> 04:42:51.920 align:start position:0% query it's going to be a mutation so we 04:42:51.920 --> 04:42:55.510 align:start position:0% query it's going to be a mutation so we can<04:42:52.080> say<04:42:52.360> const<04:42:53.080> query<04:42:53.520> client<04:42:54.480> is<04:42:54.718> equal<04:42:55.040> to 04:42:55.510 --> 04:42:55.520 align:start position:0% can say const query client is equal to 04:42:55.520 --> 04:42:59.350 align:start position:0% can say const query client is equal to use<04:42:56.120> Query<04:42:56.520> client<04:42:57.440> and<04:42:57.638> then<04:42:58.040> use<04:42:58.638> mutation 04:42:59.350 --> 04:42:59.360 align:start position:0% use Query client and then use mutation 04:42:59.360 --> 04:43:02.070 align:start position:0% use Query client and then use mutation instead<04:42:59.638> of<04:42:59.760> use<04:43:00.040> Query<04:43:00.840> because<04:43:01.560> this<04:43:01.680> is<04:43:01.840> a 04:43:02.070 --> 04:43:02.080 align:start position:0% instead of use Query because this is a 04:43:02.080 --> 04:43:05.190 align:start position:0% instead of use Query because this is a mutation<04:43:02.718> an<04:43:02.958> update<04:43:03.440> not<04:43:03.600> a<04:43:03.760> fetch 04:43:05.190 --> 04:43:05.200 align:start position:0% mutation an update not a fetch 04:43:05.200 --> 04:43:07.230 align:start position:0% mutation an update not a fetch then<04:43:05.480> we<04:43:05.638> don't<04:43:05.840> need<04:43:05.958> to<04:43:06.120> define<04:43:06.360> a<04:43:06.520> query<04:43:06.878> key 04:43:07.230 --> 04:43:07.240 align:start position:0% then we don't need to define a query key 04:43:07.240 --> 04:43:09.390 align:start position:0% then we don't need to define a query key because<04:43:07.440> we're<04:43:07.600> doing<04:43:07.798> a<04:43:08.000> mutation<04:43:09.000> and<04:43:09.320> we 04:43:09.390 --> 04:43:09.400 align:start position:0% because we're doing a mutation and we 04:43:09.400 --> 04:43:11.550 align:start position:0% because we're doing a mutation and we can<04:43:09.560> say<04:43:09.878> mutation<04:43:10.480> function<04:43:11.080> instead<04:43:11.320> of<04:43:11.400> a 04:43:11.550 --> 04:43:11.560 align:start position:0% can say mutation function instead of a 04:43:11.560 --> 04:43:14.470 align:start position:0% can say mutation function instead of a query<04:43:12.360> function<04:43:13.360> in<04:43:13.560> this<04:43:13.798> case<04:43:14.080> we<04:43:14.200> need<04:43:14.320> to 04:43:14.470 --> 04:43:14.480 align:start position:0% query function in this case we need to 04:43:14.480 --> 04:43:16.910 align:start position:0% query function in this case we need to get<04:43:14.600> the<04:43:14.840> post<04:43:15.798> because<04:43:16.000> we<04:43:16.120> need<04:43:16.240> to<04:43:16.360> know 04:43:16.910 --> 04:43:16.920 align:start position:0% get the post because we need to know 04:43:16.920 --> 04:43:20.270 align:start position:0% get the post because we need to know what<04:43:17.080> are<04:43:17.240> we<04:43:17.440> updating<04:43:18.160> of<04:43:18.320> a<04:43:18.520> type<04:43:18.920> I<04:43:19.520> update 04:43:20.270 --> 04:43:20.280 align:start position:0% what are we updating of a type I update 04:43:20.280 --> 04:43:23.510 align:start position:0% what are we updating of a type I update post<04:43:21.080> which<04:43:21.240> we<04:43:21.320> can<04:43:21.600> import<04:43:22.080> from<04:43:22.560> types<04:43:23.360> and 04:43:23.510 --> 04:43:23.520 align:start position:0% post which we can import from types and 04:43:23.520 --> 04:43:26.830 align:start position:0% post which we can import from types and then<04:43:23.840> we<04:43:23.958> can<04:43:24.320> update<04:43:25.320> post<04:43:26.080> by<04:43:26.320> importing 04:43:26.830 --> 04:43:26.840 align:start position:0% then we can update post by importing 04:43:26.840 --> 04:43:29.910 align:start position:0% then we can update post by importing this<04:43:27.000> from<04:43:27.360> aight<04:43:28.240> API<04:43:29.200> and<04:43:29.320> we<04:43:29.520> pass<04:43:29.798> the 04:43:29.910 --> 04:43:29.920 align:start position:0% this from aight API and we pass the 04:43:29.920 --> 04:43:31.110 align:start position:0% this from aight API and we pass the entire 04:43:31.110 --> 04:43:31.120 align:start position:0% entire 04:43:31.120 --> 04:43:33.830 align:start position:0% entire Post<04:43:32.120> finally<04:43:32.560> we<04:43:32.680> want<04:43:32.798> to<04:43:32.958> do<04:43:33.160> something<04:43:33.480> on 04:43:33.830 --> 04:43:33.840 align:start position:0% Post finally we want to do something on 04:43:33.840 --> 04:43:37.628 align:start position:0% Post finally we want to do something on success<04:43:34.638> so<04:43:34.878> on<04:43:35.400> success<04:43:36.400> we're<04:43:36.600> going<04:43:36.798> to<04:43:37.400> get 04:43:37.628 --> 04:43:37.638 align:start position:0% success so on success we're going to get 04:43:37.638 --> 04:43:39.030 align:start position:0% success so on success we're going to get all<04:43:37.920> the 04:43:39.030 --> 04:43:39.040 align:start position:0% all the 04:43:39.040 --> 04:43:42.510 align:start position:0% all the data<04:43:40.040> and<04:43:40.160> then<04:43:40.320> call<04:43:40.560> the<04:43:40.718> query<04:43:41.160> client<04:43:42.160> do 04:43:42.510 --> 04:43:42.520 align:start position:0% data and then call the query client do 04:43:42.520 --> 04:43:45.230 align:start position:0% data and then call the query client do invalidate<04:43:43.520> queries<04:43:44.240> so<04:43:44.440> if<04:43:44.560> we<04:43:44.760> update<04:43:45.080> a 04:43:45.230 --> 04:43:45.240 align:start position:0% invalidate queries so if we update a 04:43:45.240 --> 04:43:48.470 align:start position:0% invalidate queries so if we update a post<04:43:45.718> we<04:43:45.840> need<04:43:45.958> to<04:43:46.240> update<04:43:47.160> the<04:43:47.320> query<04:43:47.760> key 04:43:48.470 --> 04:43:48.480 align:start position:0% post we need to update the query key 04:43:48.480 --> 04:43:50.910 align:start position:0% post we need to update the query key under<04:43:49.480> query 04:43:50.910 --> 04:43:50.920 align:start position:0% under query 04:43:50.920 --> 04:43:54.270 align:start position:0% under query keys.<04:43:51.920> get<04:43:52.280> post<04:43:52.840> by<04:43:53.080> ID<04:43:53.718> because<04:43:53.958> we<04:43:54.080> have 04:43:54.270 --> 04:43:54.280 align:start position:0% keys. get post by ID because we have 04:43:54.280 --> 04:43:56.150 align:start position:0% keys. get post by ID because we have updated<04:43:54.718> it<04:43:55.040> and<04:43:55.160> if<04:43:55.240> you<04:43:55.400> go<04:43:55.560> to<04:43:55.680> the<04:43:55.840> Post 04:43:56.150 --> 04:43:56.160 align:start position:0% updated it and if you go to the Post 04:43:56.160 --> 04:43:59.230 align:start position:0% updated it and if you go to the Post Details<04:43:56.638> page<04:43:57.160> it<04:43:57.320> needs<04:43:57.560> to<04:43:57.680> be<04:43:58.000> updated<04:43:59.000> and 04:43:59.230 --> 04:43:59.240 align:start position:0% Details page it needs to be updated and 04:43:59.240 --> 04:44:01.868 align:start position:0% Details page it needs to be updated and we<04:43:59.320> can<04:43:59.480> now<04:43:59.718> duplicate<04:44:00.200> this 04:44:01.868 --> 04:44:01.878 align:start position:0% we can now duplicate this 04:44:01.878 --> 04:44:05.150 align:start position:0% we can now duplicate this below<04:44:02.878> this<04:44:03.080> time<04:44:03.400> we<04:44:03.520> can<04:44:03.680> call<04:44:03.920> it<04:44:04.560> use 04:44:05.150 --> 04:44:05.160 align:start position:0% below this time we can call it use 04:44:05.160 --> 04:44:06.708 align:start position:0% below this time we can call it use delete 04:44:06.708 --> 04:44:06.718 align:start position:0% delete 04:44:06.718 --> 04:44:09.230 align:start position:0% delete Post<04:44:07.718> in<04:44:07.920> this<04:44:08.160> case<04:44:08.480> we<04:44:08.560> need<04:44:08.718> to<04:44:08.878> get<04:44:09.040> two 04:44:09.230 --> 04:44:09.240 align:start position:0% Post in this case we need to get two 04:44:09.240 --> 04:44:11.830 align:start position:0% Post in this case we need to get two things<04:44:09.480> into<04:44:09.718> the<04:44:09.840> mutation<04:44:10.600> function<04:44:11.600> so 04:44:11.830 --> 04:44:11.840 align:start position:0% things into the mutation function so 04:44:11.840 --> 04:44:14.070 align:start position:0% things into the mutation function so let's<04:44:12.040> define<04:44:12.400> them<04:44:12.638> properly<04:44:13.638> it's<04:44:13.798> going<04:44:13.958> to 04:44:14.070 --> 04:44:14.080 align:start position:0% let's define them properly it's going to 04:44:14.080 --> 04:44:17.788 align:start position:0% let's define them properly it's going to be<04:44:14.200> an<04:44:14.440> object<04:44:14.958> of<04:44:15.360> post<04:44:15.798> ID<04:44:16.520> and<04:44:16.798> image 04:44:17.788 --> 04:44:17.798 align:start position:0% be an object of post ID and image 04:44:17.798 --> 04:44:21.110 align:start position:0% be an object of post ID and image ID<04:44:18.798> and<04:44:18.958> that's<04:44:19.160> going<04:44:19.320> to<04:44:19.400> be<04:44:19.560> of<04:44:19.680> a<04:44:19.920> type<04:44:20.798> post 04:44:21.110 --> 04:44:21.120 align:start position:0% ID and that's going to be of a type post 04:44:21.120 --> 04:44:24.590 align:start position:0% ID and that's going to be of a type post ID<04:44:21.480> is<04:44:21.600> a<04:44:21.760> a<04:44:21.958> type<04:44:22.160> string<04:44:23.120> and<04:44:23.440> image<04:44:23.760> ID<04:44:24.280> is<04:44:24.400> a 04:44:24.590 --> 04:44:24.600 align:start position:0% ID is a a type string and image ID is a 04:44:24.600 --> 04:44:27.628 align:start position:0% ID is a a type string and image ID is a a<04:44:24.798> type<04:44:25.000> string<04:44:25.560> as<04:44:25.920> well<04:44:26.920> and<04:44:27.080> then<04:44:27.200> we<04:44:27.360> call 04:44:27.628 --> 04:44:27.638 align:start position:0% a type string as well and then we call 04:44:27.638 --> 04:44:30.910 align:start position:0% a type string as well and then we call not<04:44:27.958> update<04:44:28.400> post<04:44:28.920> but<04:44:29.120> rather<04:44:29.440> delete 04:44:30.910 --> 04:44:30.920 align:start position:0% not update post but rather delete 04:44:30.920 --> 04:44:34.990 align:start position:0% not update post but rather delete post<04:44:31.920> coming<04:44:32.240> from<04:44:32.600> ight<04:44:33.200> API<04:44:34.200> and<04:44:34.360> and<04:44:34.480> to<04:44:34.680> it 04:44:34.990 --> 04:44:35.000 align:start position:0% post coming from ight API and and to it 04:44:35.000 --> 04:44:37.708 align:start position:0% post coming from ight API and and to it we<04:44:35.240> pass<04:44:35.440> a<04:44:35.638> post<04:44:35.920> ID<04:44:36.240> as<04:44:36.360> the<04:44:36.520> first<04:44:36.798> parameter 04:44:37.708 --> 04:44:37.718 align:start position:0% we pass a post ID as the first parameter 04:44:37.718 --> 04:44:41.150 align:start position:0% we pass a post ID as the first parameter and<04:44:37.958> image<04:44:38.280> ID<04:44:38.878> as<04:44:39.040> the<04:44:39.520> second<04:44:40.520> finally<04:44:41.040> the 04:44:41.150 --> 04:44:41.160 align:start position:0% and image ID as the second finally the 04:44:41.160 --> 04:44:44.628 align:start position:0% and image ID as the second finally the query<04:44:41.480> you<04:44:41.600> want<04:44:41.680> to<04:44:41.878> invalidate<04:44:42.600> here<04:44:43.120> is<04:44:43.920> get 04:44:44.628 --> 04:44:44.638 align:start position:0% query you want to invalidate here is get 04:44:44.638 --> 04:44:47.708 align:start position:0% query you want to invalidate here is get recent<04:44:45.520> posts<04:44:46.360> because<04:44:46.718> in<04:44:46.878> case<04:44:47.080> we<04:44:47.240> delete<04:44:47.520> a 04:44:47.708 --> 04:44:47.718 align:start position:0% recent posts because in case we delete a 04:44:47.718 --> 04:44:50.628 align:start position:0% recent posts because in case we delete a post<04:44:48.360> then<04:44:48.600> we<04:44:48.718> need<04:44:48.878> to<04:44:49.000> be<04:44:49.120> able<04:44:49.400> to<04:44:49.920> refetch 04:44:50.628 --> 04:44:50.638 align:start position:0% post then we need to be able to refetch 04:44:50.638 --> 04:44:52.910 align:start position:0% post then we need to be able to refetch all<04:44:50.798> the<04:44:50.958> posts<04:44:51.200> on<04:44:51.320> the<04:44:51.480> homepage<04:44:52.200> to<04:44:52.400> show 04:44:52.910 --> 04:44:52.920 align:start position:0% all the posts on the homepage to show 04:44:52.920 --> 04:44:55.788 align:start position:0% all the posts on the homepage to show all<04:44:53.160> the<04:44:53.320> new<04:44:53.600> posts<04:44:54.240> without<04:44:54.878> the<04:44:55.040> deleted 04:44:55.788 --> 04:44:55.798 align:start position:0% all the new posts without the deleted 04:44:55.798 --> 04:44:58.510 align:start position:0% all the new posts without the deleted one<04:44:56.798> now<04:44:56.958> that<04:44:57.120> we<04:44:57.280> have<04:44:57.480> these<04:44:57.760> options<04:44:58.440> we 04:44:58.510 --> 04:44:58.520 align:start position:0% one now that we have these options we 04:44:58.520 --> 04:45:01.590 align:start position:0% one now that we have these options we can<04:44:58.680> go<04:44:59.040> back<04:44:59.480> to<04:44:59.638> the<04:44:59.878> post<04:45:00.280> form<04:45:01.200> and<04:45:01.320> we<04:45:01.440> can 04:45:01.590 --> 04:45:01.600 align:start position:0% can go back to the post form and we can 04:45:01.600 --> 04:45:04.708 align:start position:0% can go back to the post form and we can import<04:45:02.280> all<04:45:02.480> of<04:45:02.638> these<04:45:02.958> actions<04:45:03.320> or<04:45:03.520> mutations 04:45:04.708 --> 04:45:04.718 align:start position:0% import all of these actions or mutations 04:45:04.718 --> 04:45:09.390 align:start position:0% import all of these actions or mutations from<04:45:05.120> react<04:45:05.718> query<04:45:06.718> so<04:45:07.120> right<04:45:07.360> here<04:45:08.200> below<04:45:09.040> the 04:45:09.390 --> 04:45:09.400 align:start position:0% from react query so right here below the 04:45:09.400 --> 04:45:11.910 align:start position:0% from react query so right here below the use<04:45:09.798> create<04:45:10.200> post<04:45:11.200> we<04:45:11.320> can<04:45:11.440> do<04:45:11.638> something 04:45:11.910 --> 04:45:11.920 align:start position:0% use create post we can do something 04:45:11.920 --> 04:45:15.470 align:start position:0% use create post we can do something similar<04:45:12.840> by<04:45:13.080> duplicating<04:45:13.878> this<04:45:14.080> entire<04:45:14.480> line 04:45:15.470 --> 04:45:15.480 align:start position:0% similar by duplicating this entire line 04:45:15.480 --> 04:45:17.868 align:start position:0% similar by duplicating this entire line mutate<04:45:15.958> async<04:45:16.560> in<04:45:16.798> this<04:45:17.000> case<04:45:17.240> is<04:45:17.360> going<04:45:17.520> to<04:45:17.638> be 04:45:17.868 --> 04:45:17.878 align:start position:0% mutate async in this case is going to be 04:45:17.878 --> 04:45:20.190 align:start position:0% mutate async in this case is going to be update 04:45:20.190 --> 04:45:20.200 align:start position:0% update 04:45:20.200 --> 04:45:23.830 align:start position:0% update post<04:45:21.200> is<04:45:21.520> pending<04:45:22.080> is<04:45:22.280> going<04:45:22.440> to<04:45:22.600> be<04:45:23.200> is 04:45:23.830 --> 04:45:23.840 align:start position:0% post is pending is going to be is 04:45:23.840 --> 04:45:25.270 align:start position:0% post is pending is going to be is loading 04:45:25.270 --> 04:45:25.280 align:start position:0% loading 04:45:25.280 --> 04:45:27.948 align:start position:0% loading update<04:45:26.280> and<04:45:26.480> this<04:45:26.600> is<04:45:26.718> going<04:45:26.878> to<04:45:27.000> be<04:45:27.160> use 04:45:27.948 --> 04:45:27.958 align:start position:0% update and this is going to be use 04:45:27.958 --> 04:45:30.830 align:start position:0% update and this is going to be use update<04:45:28.958> post<04:45:29.760> which<04:45:29.958> has<04:45:30.080> to<04:45:30.240> be<04:45:30.400> imported 04:45:30.830 --> 04:45:30.840 align:start position:0% update post which has to be imported 04:45:30.840 --> 04:45:32.990 align:start position:0% update post which has to be imported from<04:45:31.080> queries<04:45:31.440> and 04:45:32.990 --> 04:45:33.000 align:start position:0% from queries and 04:45:33.000 --> 04:45:35.948 align:start position:0% from queries and mutations<04:45:34.000> now<04:45:34.480> we<04:45:34.560> can<04:45:34.718> go<04:45:35.080> right<04:45:35.400> in<04:45:35.638> our 04:45:35.948 --> 04:45:35.958 align:start position:0% mutations now we can go right in our 04:45:35.958 --> 04:45:37.310 align:start position:0% mutations now we can go right in our submit 04:45:37.310 --> 04:45:37.320 align:start position:0% submit 04:45:37.320 --> 04:45:42.310 align:start position:0% submit Handler<04:45:38.320> and<04:45:38.480> we<04:45:38.600> can<04:45:38.760> check<04:45:39.600> at<04:45:39.718> the<04:45:40.400> Top<04:45:41.400> If 04:45:42.310 --> 04:45:42.320 align:start position:0% Handler and we can check at the Top If 04:45:42.320 --> 04:45:45.990 align:start position:0% Handler and we can check at the Top If post<04:45:42.878> exists<04:45:43.878> and<04:45:44.440> if<04:45:44.718> action<04:45:45.400> is<04:45:45.600> triple 04:45:45.990 --> 04:45:46.000 align:start position:0% post exists and if action is triple 04:45:46.000 --> 04:45:49.230 align:start position:0% post exists and if action is triple equal<04:45:46.280> to<04:45:46.440> the<04:45:46.638> update<04:45:47.120> with<04:45:47.280> a<04:45:47.520> capital<04:45:48.000> u<04:45:49.000> in 04:45:49.230 --> 04:45:49.240 align:start position:0% equal to the update with a capital u in 04:45:49.240 --> 04:45:53.030 align:start position:0% equal to the update with a capital u in that<04:45:49.520> case<04:45:50.080> we<04:45:50.280> say<04:45:50.560> const<04:45:51.520> updated<04:45:52.120> post<04:45:52.798> is 04:45:53.030 --> 04:45:53.040 align:start position:0% that case we say const updated post is 04:45:53.040 --> 04:45:54.788 align:start position:0% that case we say const updated post is equal 04:45:54.788 --> 04:45:54.798 align:start position:0% equal 04:45:54.798 --> 04:45:56.470 align:start position:0% equal to 04:45:56.470 --> 04:45:56.480 align:start position:0% to 04:45:56.480 --> 04:45:58.910 align:start position:0% to await<04:45:57.480> update 04:45:58.910 --> 04:45:58.920 align:start position:0% await update 04:45:58.920 --> 04:46:01.350 align:start position:0% await update post<04:45:59.920> and<04:46:00.040> then<04:46:00.160> we<04:46:00.320> need<04:46:00.440> to<04:46:00.680> pass<04:46:00.920> all<04:46:01.080> of<04:46:01.240> the 04:46:01.350 --> 04:46:01.360 align:start position:0% post and then we need to pass all of the 04:46:01.360 --> 04:46:03.948 align:start position:0% post and then we need to pass all of the options<04:46:01.718> in<04:46:01.878> it<04:46:02.520> this<04:46:02.760> update<04:46:03.160> post<04:46:03.520> is<04:46:03.680> coming 04:46:03.948 --> 04:46:03.958 align:start position:0% options in it this update post is coming 04:46:03.958 --> 04:46:06.628 align:start position:0% options in it this update post is coming from<04:46:04.360> our<04:46:04.560> react<04:46:04.958> query<04:46:05.680> and<04:46:05.878> of<04:46:06.080> course<04:46:06.440> it's 04:46:06.628 --> 04:46:06.638 align:start position:0% from our react query and of course it's 04:46:06.638 --> 04:46:10.750 align:start position:0% from our react query and of course it's doing<04:46:07.360> the<04:46:07.638> action<04:46:08.120> from<04:46:08.840> aight 04:46:10.750 --> 04:46:10.760 align:start position:0% doing the action from aight 04:46:10.760 --> 04:46:14.868 align:start position:0% doing the action from aight API<04:46:11.760> so<04:46:12.000> now<04:46:13.000> we<04:46:13.120> need<04:46:13.280> to<04:46:13.520> pass<04:46:13.920> do<04:46:14.240> do<04:46:14.480> dot 04:46:14.868 --> 04:46:14.878 align:start position:0% API so now we need to pass do do dot 04:46:14.878 --> 04:46:16.830 align:start position:0% API so now we need to pass do do dot values<04:46:15.480> meaning<04:46:15.920> everything<04:46:16.320> about<04:46:16.600> that 04:46:16.830 --> 04:46:16.840 align:start position:0% values meaning everything about that 04:46:16.840 --> 04:46:19.510 align:start position:0% values meaning everything about that post<04:46:17.400> we<04:46:17.560> also<04:46:17.798> need<04:46:17.958> to<04:46:18.160> pass<04:46:18.400> the<04:46:18.560> post<04:46:18.878> ID<04:46:19.360> of 04:46:19.510 --> 04:46:19.520 align:start position:0% post we also need to pass the post ID of 04:46:19.520 --> 04:46:22.110 align:start position:0% post we also need to pass the post ID of the<04:46:19.638> post<04:46:19.920> we're<04:46:20.120> updating<04:46:20.920> by<04:46:21.040> saying<04:46:21.400> post. 04:46:22.110 --> 04:46:22.120 align:start position:0% the post we're updating by saying post. 04:46:22.120 --> 04:46:25.990 align:start position:0% the post we're updating by saying post. dollar<04:46:22.400> sign<04:46:22.760> ID<04:46:23.760> we<04:46:23.878> can<04:46:24.080> pass<04:46:24.360> the<04:46:24.600> image<04:46:25.200> ID 04:46:25.990 --> 04:46:26.000 align:start position:0% dollar sign ID we can pass the image ID 04:46:26.000 --> 04:46:29.548 align:start position:0% dollar sign ID we can pass the image ID by<04:46:26.120> saying<04:46:26.600> post<04:46:27.280> question<04:46:27.638> mark.<04:46:28.120> image<04:46:28.558> ID 04:46:29.548 --> 04:46:29.558 align:start position:0% by saying post question mark. image ID 04:46:29.558 --> 04:46:31.990 align:start position:0% by saying post question mark. image ID as<04:46:29.718> well<04:46:29.878> as<04:46:30.040> the<04:46:30.200> image<04:46:30.600> URL<04:46:31.600> which<04:46:31.718> is<04:46:31.840> going 04:46:31.990 --> 04:46:32.000 align:start position:0% as well as the image URL which is going 04:46:32.000 --> 04:46:36.110 align:start position:0% as well as the image URL which is going to<04:46:32.120> be<04:46:32.400> post.<04:46:33.320> image<04:46:33.638> URL 04:46:36.110 --> 04:46:36.120 align:start position:0% to be post. image URL 04:46:36.120 --> 04:46:38.470 align:start position:0% to be post. image URL finally<04:46:36.798> if<04:46:36.958> we<04:46:37.160> don't<04:46:37.600> have<04:46:37.798> the<04:46:37.958> updated 04:46:38.470 --> 04:46:38.480 align:start position:0% finally if we don't have the updated 04:46:38.480 --> 04:46:41.350 align:start position:0% finally if we don't have the updated post<04:46:39.000> meaning<04:46:39.400> something<04:46:39.680> went<04:46:40.280> wrong<04:46:41.280> it 04:46:41.350 --> 04:46:41.360 align:start position:0% post meaning something went wrong it 04:46:41.360 --> 04:46:43.110 align:start position:0% post meaning something went wrong it should<04:46:41.558> say<04:46:41.760> updated 04:46:43.110 --> 04:46:43.120 align:start position:0% should say updated 04:46:43.120 --> 04:46:46.708 align:start position:0% should say updated post<04:46:44.120> then<04:46:44.360> we<04:46:44.480> can<04:46:44.680> release<04:46:45.080> a<04:46:45.320> toast<04:46:46.280> saying 04:46:46.708 --> 04:46:46.718 align:start position:0% post then we can release a toast saying 04:46:46.718 --> 04:46:49.868 align:start position:0% post then we can release a toast saying something<04:46:47.520> like<04:46:48.520> title 04:46:49.868 --> 04:46:49.878 align:start position:0% something like title 04:46:49.878 --> 04:46:53.868 align:start position:0% something like title is<04:46:50.878> please<04:46:51.240> try<04:46:51.638> again<04:46:52.638> and<04:46:52.878> if<04:46:53.000> it<04:46:53.200> succeeds 04:46:53.868 --> 04:46:53.878 align:start position:0% is please try again and if it succeeds 04:46:53.878 --> 04:46:57.270 align:start position:0% is please try again and if it succeeds we<04:46:54.000> can<04:46:54.400> return<04:46:55.760> navigate<04:46:56.760> this<04:46:56.958> time<04:46:57.120> we're 04:46:57.270 --> 04:46:57.280 align:start position:0% we can return navigate this time we're 04:46:57.280 --> 04:47:00.868 align:start position:0% we can return navigate this time we're going<04:46:57.440> to<04:46:57.600> forward<04:46:57.958> SL<04:46:58.400> poost<04:46:59.360> slash 04:47:00.868 --> 04:47:00.878 align:start position:0% going to forward SL poost slash 04:47:00.878 --> 04:47:04.270 align:start position:0% going to forward SL poost slash poost<04:47:01.878> do<04:47:02.160> doll<04:47:02.480> sign<04:47:02.680> ID<04:47:03.400> so<04:47:03.600> no<04:47:03.760> longer<04:47:04.160> are 04:47:04.270 --> 04:47:04.280 align:start position:0% poost do doll sign ID so no longer are 04:47:04.280 --> 04:47:06.390 align:start position:0% poost do doll sign ID so no longer are we<04:47:04.400> going<04:47:04.558> to<04:47:04.718> the<04:47:04.878> homepage<04:47:05.680> to<04:47:05.840> see<04:47:06.080> the<04:47:06.200> new 04:47:06.390 --> 04:47:06.400 align:start position:0% we going to the homepage to see the new 04:47:06.400 --> 04:47:08.390 align:start position:0% we going to the homepage to see the new post<04:47:06.680> we<04:47:06.840> created<04:47:07.440> we're<04:47:07.680> going<04:47:07.878> to<04:47:08.120> the 04:47:08.390 --> 04:47:08.400 align:start position:0% post we created we're going to the 04:47:08.400 --> 04:47:10.830 align:start position:0% post we created we're going to the details<04:47:08.798> of<04:47:09.000> that<04:47:09.240> page<04:47:09.680> to<04:47:09.878> see<04:47:10.280> that<04:47:10.520> it<04:47:10.638> was 04:47:10.830 --> 04:47:10.840 align:start position:0% details of that page to see that it was 04:47:10.840 --> 04:47:13.868 align:start position:0% details of that page to see that it was successfully<04:47:11.558> updated<04:47:12.558> great<04:47:13.480> because<04:47:13.718> we 04:47:13.868 --> 04:47:13.878 align:start position:0% successfully updated great because we 04:47:13.878 --> 04:47:15.788 align:start position:0% successfully updated great because we have<04:47:14.040> this<04:47:14.320> return<04:47:14.638> here<04:47:15.120> we<04:47:15.280> don't<04:47:15.520> have<04:47:15.638> to 04:47:15.788 --> 04:47:15.798 align:start position:0% have this return here we don't have to 04:47:15.798 --> 04:47:18.150 align:start position:0% have this return here we don't have to wrap<04:47:16.080> this<04:47:16.160> in<04:47:16.320> an<04:47:16.480> else<04:47:17.240> because<04:47:17.718> once<04:47:17.920> we 04:47:18.150 --> 04:47:18.160 align:start position:0% wrap this in an else because once we 04:47:18.160 --> 04:47:21.788 align:start position:0% wrap this in an else because once we update<04:47:18.958> it's<04:47:19.120> going<04:47:19.320> to<04:47:19.440> do<04:47:19.718> this<04:47:20.320> and<04:47:20.680> exit<04:47:21.680> if 04:47:21.788 --> 04:47:21.798 align:start position:0% update it's going to do this and exit if 04:47:21.798 --> 04:47:24.270 align:start position:0% update it's going to do this and exit if it's<04:47:21.958> not<04:47:22.240> update<04:47:22.878> it's<04:47:23.040> going<04:47:23.200> to<04:47:23.360> do<04:47:23.600> this 04:47:24.270 --> 04:47:24.280 align:start position:0% it's not update it's going to do this 04:47:24.280 --> 04:47:27.670 align:start position:0% it's not update it's going to do this immediately<04:47:25.320> great<04:47:26.320> so<04:47:26.558> now<04:47:26.798> if<04:47:26.920> we<04:47:27.080> save<04:47:27.400> this 04:47:27.670 --> 04:47:27.680 align:start position:0% immediately great so now if we save this 04:47:27.680 --> 04:47:29.708 align:start position:0% immediately great so now if we save this we're<04:47:27.920> successfully<04:47:28.600> doing<04:47:28.958> the<04:47:29.200> update 04:47:29.708 --> 04:47:29.718 align:start position:0% we're successfully doing the update 04:47:29.718 --> 04:47:32.070 align:start position:0% we're successfully doing the update action<04:47:30.680> so<04:47:30.878> let's<04:47:31.040> try<04:47:31.200> to<04:47:31.360> say<04:47:31.680> something 04:47:32.070 --> 04:47:32.080 align:start position:0% action so let's try to say something 04:47:32.080 --> 04:47:34.470 align:start position:0% action so let's try to say something like<04:47:32.558> let's<04:47:32.760> say<04:47:33.000> the<04:47:33.160> course<04:47:33.440> got<04:47:33.638> updated<04:47:34.240> to 04:47:34.470 --> 04:47:34.480 align:start position:0% like let's say the course got updated to 04:47:34.480 --> 04:47:36.310 align:start position:0% like let's say the course got updated to version 04:47:36.310 --> 04:47:36.320 align:start position:0% version 04:47:36.320 --> 04:47:39.230 align:start position:0% version 13.6<04:47:37.320> and<04:47:37.480> we<04:47:37.600> want<04:47:37.718> to<04:47:37.920> add<04:47:38.160> a<04:47:38.320> URL<04:47:38.878> so<04:47:39.000> we<04:47:39.120> can 04:47:39.230 --> 04:47:39.240 align:start position:0% 13.6 and we want to add a URL so we can 04:47:39.240 --> 04:47:42.830 align:start position:0% 13.6 and we want to add a URL so we can say<04:47:39.440> URL<04:47:40.120> is<04:47:40.360> JS<04:47:40.760> mastery.<04:47:41.558> proo<04:47:42.360> we<04:47:42.480> can<04:47:42.638> leave 04:47:42.830 --> 04:47:42.840 align:start position:0% say URL is JS mastery. proo we can leave 04:47:42.840 --> 04:47:44.788 align:start position:0% say URL is JS mastery. proo we can leave the<04:47:43.000> location<04:47:43.440> and<04:47:43.638> this<04:47:43.920> the<04:47:44.040> same<04:47:44.520> but<04:47:44.680> it 04:47:44.788 --> 04:47:44.798 align:start position:0% the location and this the same but it 04:47:44.798 --> 04:47:46.510 align:start position:0% the location and this the same but it says<04:47:45.040> submit<04:47:45.718> maybe<04:47:45.958> it<04:47:46.040> should<04:47:46.200> say 04:47:46.510 --> 04:47:46.520 align:start position:0% says submit maybe it should say 04:47:46.520 --> 04:47:49.150 align:start position:0% says submit maybe it should say something<04:47:46.878> else<04:47:47.520> so<04:47:47.718> if<04:47:47.798> we<04:47:48.000> go<04:47:48.240> down<04:47:48.440> to<04:47:48.600> the 04:47:49.150 --> 04:47:49.160 align:start position:0% something else so if we go down to the 04:47:49.160 --> 04:47:51.670 align:start position:0% something else so if we go down to the button<04:47:50.160> in<04:47:50.360> the<04:47:50.520> button<04:47:51.240> sometimes<04:47:51.440> we<04:47:51.558> need 04:47:51.670 --> 04:47:51.680 align:start position:0% button in the button sometimes we need 04:47:51.680 --> 04:47:53.590 align:start position:0% button in the button sometimes we need to<04:47:51.840> disable<04:47:52.280> it<04:47:52.760> when<04:47:53.000> it's<04:47:53.200> currently 04:47:53.590 --> 04:47:53.600 align:start position:0% to disable it when it's currently 04:47:53.600 --> 04:47:55.510 align:start position:0% to disable it when it's currently loading<04:47:54.280> so<04:47:54.440> we<04:47:54.520> can<04:47:54.638> give<04:47:54.760> it<04:47:54.878> a<04:47:55.040> disabled 04:47:55.510 --> 04:47:55.520 align:start position:0% loading so we can give it a disabled 04:47:55.520 --> 04:47:59.150 align:start position:0% loading so we can give it a disabled State<04:47:56.360> and<04:47:56.600> say<04:47:57.080> if<04:47:57.400> is<04:47:57.558> loading<04:47:57.958> create<04:47:58.558> or<04:47:58.920> is 04:47:59.150 --> 04:47:59.160 align:start position:0% State and say if is loading create or is 04:47:59.160 --> 04:48:01.190 align:start position:0% State and say if is loading create or is loading<04:47:59.600> update<04:48:00.280> then<04:48:00.440> we<04:48:00.520> want<04:48:00.638> to<04:48:00.760> disable 04:48:01.190 --> 04:48:01.200 align:start position:0% loading update then we want to disable 04:48:01.200 --> 04:48:02.990 align:start position:0% loading update then we want to disable the<04:48:01.320> button<04:48:01.600> so<04:48:01.798> the<04:48:01.878> user<04:48:02.200> cannot<04:48:02.520> just<04:48:02.718> mash 04:48:02.990 --> 04:48:03.000 align:start position:0% the button so the user cannot just mash 04:48:03.000 --> 04:48:04.750 align:start position:0% the button so the user cannot just mash it<04:48:03.200> multiple<04:48:03.680> times 04:48:04.750 --> 04:48:04.760 align:start position:0% it multiple times 04:48:04.760 --> 04:48:07.350 align:start position:0% it multiple times and<04:48:05.160> the<04:48:05.320> button<04:48:05.798> can<04:48:06.000> say<04:48:06.360> something<04:48:06.840> like 04:48:07.350 --> 04:48:07.360 align:start position:0% and the button can say something like 04:48:07.360 --> 04:48:09.708 align:start position:0% and the button can say something like this<04:48:08.360> if<04:48:08.480> it's<04:48:08.638> loading<04:48:09.280> and<04:48:09.440> if<04:48:09.520> it's 04:48:09.708 --> 04:48:09.718 align:start position:0% this if it's loading and if it's 04:48:09.718 --> 04:48:11.390 align:start position:0% this if it's loading and if it's disabled<04:48:10.400> the<04:48:10.520> button<04:48:10.760> should<04:48:10.958> render<04:48:11.280> the 04:48:11.390 --> 04:48:11.400 align:start position:0% disabled the button should render the 04:48:11.400 --> 04:48:14.670 align:start position:0% disabled the button should render the loader<04:48:12.120> so<04:48:12.280> we<04:48:12.360> can<04:48:12.680> say<04:48:13.680> if<04:48:14.000> is<04:48:14.240> loading 04:48:14.670 --> 04:48:14.680 align:start position:0% loader so we can say if is loading 04:48:14.680 --> 04:48:18.070 align:start position:0% loader so we can say if is loading create<04:48:15.520> or<04:48:15.840> is<04:48:16.000> loading<04:48:16.558> update<04:48:17.558> then<04:48:17.840> we<04:48:17.958> want 04:48:18.070 --> 04:48:18.080 align:start position:0% create or is loading update then we want 04:48:18.080 --> 04:48:22.868 align:start position:0% create or is loading update then we want to<04:48:18.200> Simply<04:48:19.120> return<04:48:20.120> the<04:48:20.280> loading<04:48:20.680> State<04:48:21.638> like 04:48:22.868 --> 04:48:22.878 align:start position:0% to Simply return the loading State like 04:48:22.878 --> 04:48:25.628 align:start position:0% to Simply return the loading State like so<04:48:23.878> and<04:48:24.160> if<04:48:24.280> it<04:48:24.440> is<04:48:24.600> loading<04:48:25.120> it<04:48:25.240> can<04:48:25.400> say 04:48:25.628 --> 04:48:25.638 align:start position:0% so and if it is loading it can say 04:48:25.638 --> 04:48:28.110 align:start position:0% so and if it is loading it can say something<04:48:25.920> like<04:48:26.200> post<04:48:27.200> but<04:48:27.400> it<04:48:27.520> can<04:48:27.638> be<04:48:27.798> an 04:48:28.110 --> 04:48:28.120 align:start position:0% something like post but it can be an 04:48:28.120 --> 04:48:30.390 align:start position:0% something like post but it can be an action<04:48:28.798> so<04:48:28.920> it's<04:48:29.080> going<04:48:29.240> to<04:48:29.440> either<04:48:29.718> say 04:48:30.390 --> 04:48:30.400 align:start position:0% action so it's going to either say 04:48:30.400 --> 04:48:34.510 align:start position:0% action so it's going to either say create<04:48:31.400> if<04:48:31.520> we're<04:48:31.840> creating<04:48:33.000> or 04:48:34.510 --> 04:48:34.520 align:start position:0% create if we're creating or 04:48:34.520 --> 04:48:37.230 align:start position:0% create if we're creating or update<04:48:35.320> if<04:48:35.440> we're<04:48:35.718> updating<04:48:36.680> so<04:48:36.878> let's<04:48:37.080> just 04:48:37.230 --> 04:48:37.240 align:start position:0% update if we're updating so let's just 04:48:37.240 --> 04:48:39.310 align:start position:0% update if we're updating so let's just ensure<04:48:37.718> that<04:48:37.840> on<04:48:38.000> the<04:48:38.160> create<04:48:38.558> post<04:48:39.080> we're 04:48:39.310 --> 04:48:39.320 align:start position:0% ensure that on the create post we're 04:48:39.320 --> 04:48:42.430 align:start position:0% ensure that on the create post we're properly<04:48:39.798> passing<04:48:40.240> it<04:48:41.240> here<04:48:41.558> we're<04:48:41.760> not<04:48:42.240> so<04:48:42.360> we 04:48:42.430 --> 04:48:42.440 align:start position:0% properly passing it here we're not so we 04:48:42.440 --> 04:48:45.670 align:start position:0% properly passing it here we're not so we need<04:48:42.558> to<04:48:42.760> pass<04:48:42.920> an<04:48:43.160> action<04:48:43.760> equal<04:48:44.120> to 04:48:45.670 --> 04:48:45.680 align:start position:0% need to pass an action equal to 04:48:45.680 --> 04:48:49.590 align:start position:0% need to pass an action equal to create<04:48:46.680> and<04:48:46.920> now<04:48:47.480> if<04:48:47.558> we<04:48:47.760> go<04:48:48.200> back<04:48:49.200> as<04:48:49.320> you<04:48:49.440> can 04:48:49.590 --> 04:48:49.600 align:start position:0% create and now if we go back as you can 04:48:49.600 --> 04:48:52.948 align:start position:0% create and now if we go back as you can see<04:48:50.000> on<04:48:50.280> update<04:48:50.878> we<04:48:51.000> can<04:48:51.120> see<04:48:51.400> update<04:48:51.840> post<04:48:52.840> I'm 04:48:52.948 --> 04:48:52.958 align:start position:0% see on update we can see update post I'm 04:48:52.958 --> 04:48:54.590 align:start position:0% see on update we can see update post I'm not<04:48:53.120> going<04:48:53.240> to<04:48:53.400> go<04:48:53.600> back<04:48:53.840> now<04:48:54.000> to<04:48:54.160> show<04:48:54.320> you<04:48:54.440> the 04:48:54.590 --> 04:48:54.600 align:start position:0% not going to go back now to show you the 04:48:54.600 --> 04:48:56.670 align:start position:0% not going to go back now to show you the create<04:48:55.200> but<04:48:55.440> you<04:48:55.558> can<04:48:55.760> trust<04:48:56.040> me<04:48:56.280> that<04:48:56.440> on 04:48:56.670 --> 04:48:56.680 align:start position:0% create but you can trust me that on 04:48:56.680 --> 04:48:59.350 align:start position:0% create but you can trust me that on create<04:48:57.240> it's<04:48:57.400> going<04:48:57.558> to<04:48:57.680> say<04:48:58.120> create<04:48:59.120> now 04:48:59.350 --> 04:48:59.360 align:start position:0% create it's going to say create now 04:48:59.360 --> 04:49:01.910 align:start position:0% create it's going to say create now modify<04:48:59.798> your<04:49:00.000> original<04:49:00.480> post<04:49:01.080> and<04:49:01.360> let's<04:49:01.798> give 04:49:01.910 --> 04:49:01.920 align:start position:0% modify your original post and let's give 04:49:01.920 --> 04:49:04.910 align:start position:0% modify your original post and let's give it<04:49:02.080> a<04:49:02.280> run<04:49:03.080> click<04:49:03.440> update<04:49:04.040> post<04:49:04.360> and<04:49:04.520> let's<04:49:04.718> see 04:49:04.910 --> 04:49:04.920 align:start position:0% it a run click update post and let's see 04:49:04.920 --> 04:49:09.470 align:start position:0% it a run click update post and let's see what<04:49:05.558> happens<04:49:06.558> it<04:49:06.680> says<04:49:06.920> loading<04:49:07.558> update<04:49:08.480> post 04:49:09.470 --> 04:49:09.480 align:start position:0% what happens it says loading update post 04:49:09.480 --> 04:49:11.590 align:start position:0% what happens it says loading update post and<04:49:09.680> we<04:49:09.798> got<04:49:10.040> redirected<04:49:10.840> to<04:49:11.040> the<04:49:11.240> post 04:49:11.590 --> 04:49:11.600 align:start position:0% and we got redirected to the post 04:49:11.600 --> 04:49:14.548 align:start position:0% and we got redirected to the post Details<04:49:12.120> page<04:49:12.878> exactly<04:49:13.400> as<04:49:13.520> we<04:49:13.680> wanted<04:49:14.440> just 04:49:14.548 --> 04:49:14.558 align:start position:0% Details page exactly as we wanted just 04:49:14.558 --> 04:49:16.910 align:start position:0% Details page exactly as we wanted just to<04:49:14.798> verify<04:49:15.240> that<04:49:15.360> the<04:49:15.520> post<04:49:15.878> indeed<04:49:16.440> did<04:49:16.718> get 04:49:16.910 --> 04:49:16.920 align:start position:0% to verify that the post indeed did get 04:49:16.920 --> 04:49:20.270 align:start position:0% to verify that the post indeed did get updated<04:49:17.798> we<04:49:17.920> can<04:49:18.080> go<04:49:18.240> to<04:49:18.400> our<04:49:19.040> posts<04:49:20.040> and<04:49:20.160> we 04:49:20.270 --> 04:49:20.280 align:start position:0% updated we can go to our posts and we 04:49:20.280 --> 04:49:22.990 align:start position:0% updated we can go to our posts and we can<04:49:20.400> see<04:49:20.760> if<04:49:20.920> the<04:49:21.120> caption<04:49:21.798> contains<04:49:22.360> what<04:49:22.520> we 04:49:22.990 --> 04:49:23.000 align:start position:0% can see if the caption contains what we 04:49:23.000 --> 04:49:26.590 align:start position:0% can see if the caption contains what we added<04:49:24.000> so<04:49:24.240> that's<04:49:24.440> going<04:49:24.600> to<04:49:24.718> be<04:49:24.920> in<04:49:25.120> the<04:49:25.600> data 04:49:26.590 --> 04:49:26.600 align:start position:0% added so that's going to be in the data 04:49:26.600 --> 04:49:29.390 align:start position:0% added so that's going to be in the data and<04:49:26.718> we<04:49:26.798> can<04:49:26.958> see<04:49:27.240> that<04:49:27.520> indeed<04:49:28.200> it<04:49:28.360> does<04:49:29.120> so 04:49:29.390 --> 04:49:29.400 align:start position:0% and we can see that indeed it does so 04:49:29.400 --> 04:49:32.070 align:start position:0% and we can see that indeed it does so this<04:49:29.638> is<04:49:30.080> great<04:49:30.878> so<04:49:31.160> immediately<04:49:31.680> the<04:49:31.840> next 04:49:32.070 --> 04:49:32.080 align:start position:0% this is great so immediately the next 04:49:32.080 --> 04:49:34.830 align:start position:0% this is great so immediately the next reasonable<04:49:32.680> step<04:49:33.080> is<04:49:33.200> to<04:49:33.400> implement<04:49:34.160> the<04:49:34.440> post 04:49:34.830 --> 04:49:34.840 align:start position:0% reasonable step is to implement the post 04:49:34.840 --> 04:49:37.510 align:start position:0% reasonable step is to implement the post Details<04:49:35.440> page<04:49:36.240> as<04:49:36.480> now<04:49:36.760> our<04:49:36.958> homepage<04:49:37.360> is 04:49:37.510 --> 04:49:37.520 align:start position:0% Details page as now our homepage is 04:49:37.520 --> 04:49:39.628 align:start position:0% Details page as now our homepage is looking<04:49:37.798> pretty<04:49:38.080> good<04:49:38.558> and<04:49:38.760> the<04:49:38.958> actions<04:49:39.360> are 04:49:39.628 --> 04:49:39.638 align:start position:0% looking pretty good and the actions are 04:49:39.638 --> 04:49:42.590 align:start position:0% looking pretty good and the actions are there<04:49:39.958> as<04:49:40.160> well<04:49:40.878> so<04:49:41.320> let's<04:49:41.520> focus<04:49:41.958> on<04:49:42.120> the<04:49:42.280> post 04:49:42.590 --> 04:49:42.600 align:start position:0% there as well so let's focus on the post 04:49:42.600 --> 04:49:46.430 align:start position:0% there as well so let's focus on the post Details<04:49:43.120> page<04:49:43.480> next<04:49:44.160> by<04:49:44.400> going<04:49:44.638> to<04:49:45.320> post 04:49:46.430 --> 04:49:46.440 align:start position:0% Details page next by going to post 04:49:46.440 --> 04:49:50.430 align:start position:0% Details page next by going to post details<04:49:47.440> and<04:49:47.718> implementing<04:49:48.520> its<04:49:49.040> UI<04:49:50.040> to 04:49:50.430 --> 04:49:50.440 align:start position:0% details and implementing its UI to 04:49:50.440 --> 04:49:52.670 align:start position:0% details and implementing its UI to implement<04:49:50.878> the<04:49:51.000> post<04:49:51.360> details<04:49:52.040> we<04:49:52.240> first<04:49:52.520> have 04:49:52.670 --> 04:49:52.680 align:start position:0% implement the post details we first have 04:49:52.680 --> 04:49:55.230 align:start position:0% implement the post details we first have to<04:49:52.920> fetch<04:49:53.638> the<04:49:53.840> post<04:49:54.160> details<04:49:54.840> from<04:49:55.080> the 04:49:55.230 --> 04:49:55.240 align:start position:0% to fetch the post details from the 04:49:55.240 --> 04:49:57.670 align:start position:0% to fetch the post details from the database<04:49:56.200> and<04:49:56.400> the<04:49:56.600> way<04:49:56.920> in<04:49:57.080> which<04:49:57.240> we<04:49:57.360> can<04:49:57.480> do 04:49:57.670 --> 04:49:57.680 align:start position:0% database and the way in which we can do 04:49:57.680 --> 04:50:01.510 align:start position:0% database and the way in which we can do that<04:49:58.440> is<04:49:58.878> by<04:49:59.040> saying<04:49:59.920> const 04:50:01.510 --> 04:50:01.520 align:start position:0% that is by saying const 04:50:01.520 --> 04:50:04.350 align:start position:0% that is by saying const data<04:50:02.520> which<04:50:02.680> we<04:50:02.760> can<04:50:02.920> rename<04:50:03.280> to<04:50:03.480> post 04:50:04.350 --> 04:50:04.360 align:start position:0% data which we can rename to post 04:50:04.360 --> 04:50:06.788 align:start position:0% data which we can rename to post as<04:50:04.480> well<04:50:04.638> as<04:50:04.840> is<04:50:05.040> loading<04:50:05.718> or<04:50:05.920> in<04:50:06.080> this<04:50:06.240> case<04:50:06.520> is 04:50:06.788 --> 04:50:06.798 align:start position:0% as well as is loading or in this case is 04:50:06.798 --> 04:50:08.990 align:start position:0% as well as is loading or in this case is pending<04:50:07.360> because<04:50:07.520> we're<04:50:07.718> using<04:50:08.200> react<04:50:08.638> query 04:50:08.990 --> 04:50:09.000 align:start position:0% pending because we're using react query 04:50:09.000 --> 04:50:14.990 align:start position:0% pending because we're using react query version<04:50:09.400> 5<04:50:10.240> is<04:50:10.480> equal<04:50:10.798> to<04:50:11.600> use<04:50:12.440> get<04:50:13.120> post<04:50:13.798> by<04:50:14.200> ID 04:50:14.990 --> 04:50:15.000 align:start position:0% version 5 is equal to use get post by ID 04:50:15.000 --> 04:50:17.750 align:start position:0% version 5 is equal to use get post by ID coming<04:50:15.280> from<04:50:15.558> queries<04:50:16.080> and<04:50:16.440> mutations<04:50:17.440> to 04:50:17.750 --> 04:50:17.760 align:start position:0% coming from queries and mutations to 04:50:17.760 --> 04:50:19.830 align:start position:0% coming from queries and mutations to which<04:50:18.280> we<04:50:18.400> need<04:50:18.558> to<04:50:18.718> pass<04:50:19.000> the 04:50:19.830 --> 04:50:19.840 align:start position:0% which we need to pass the 04:50:19.840 --> 04:50:23.548 align:start position:0% which we need to pass the ID<04:50:20.840> the<04:50:21.000> ID<04:50:21.558> is<04:50:21.718> coming<04:50:22.000> from<04:50:22.200> use<04:50:22.558> perams<04:50:23.400> so 04:50:23.548 --> 04:50:23.558 align:start position:0% ID the ID is coming from use perams so 04:50:23.558 --> 04:50:27.628 align:start position:0% ID the ID is coming from use perams so we<04:50:23.680> can<04:50:23.840> immediately<04:50:24.718> import<04:50:25.718> use<04:50:26.638> perams 04:50:27.628 --> 04:50:27.638 align:start position:0% we can immediately import use perams 04:50:27.638 --> 04:50:30.430 align:start position:0% we can immediately import use perams which<04:50:27.798> is<04:50:28.000> coming<04:50:28.280> from<04:50:28.638> react<04:50:29.080> router<04:50:29.480> Dom 04:50:30.430 --> 04:50:30.440 align:start position:0% which is coming from react router Dom 04:50:30.440 --> 04:50:34.470 align:start position:0% which is coming from react router Dom and<04:50:30.558> then<04:50:30.718> we<04:50:30.798> can<04:50:30.920> say<04:50:31.200> const<04:50:31.958> ID<04:50:32.840> is<04:50:33.120> equal<04:50:33.440> to 04:50:34.470 --> 04:50:34.480 align:start position:0% and then we can say const ID is equal to 04:50:34.480 --> 04:50:38.430 align:start position:0% and then we can say const ID is equal to use<04:50:35.120> for<04:50:35.760> Rams<04:50:36.760> and<04:50:37.000> that<04:50:37.200> ID<04:50:37.760> can<04:50:38.160> sometimes 04:50:38.430 --> 04:50:38.440 align:start position:0% use for Rams and that ID can sometimes 04:50:38.440 --> 04:50:41.110 align:start position:0% use for Rams and that ID can sometimes be<04:50:38.718> an<04:50:38.878> empty<04:50:39.240> string<04:50:40.000> like<04:50:40.160> so<04:50:40.638> in<04:50:40.798> case<04:50:41.000> we 04:50:41.110 --> 04:50:41.120 align:start position:0% be an empty string like so in case we 04:50:41.120 --> 04:50:43.310 align:start position:0% be an empty string like so in case we didn't<04:50:41.320> get<04:50:41.480> fetch<04:50:41.680> it<04:50:41.798> from<04:50:41.958> the<04:50:42.320> perams 04:50:43.310 --> 04:50:43.320 align:start position:0% didn't get fetch it from the perams 04:50:43.320 --> 04:50:46.470 align:start position:0% didn't get fetch it from the perams great<04:50:44.080> so<04:50:44.320> now<04:50:44.558> we<04:50:44.680> have<04:50:44.798> the<04:50:44.958> F<04:50:45.360> data<04:50:46.120> let's<04:50:46.360> go 04:50:46.470 --> 04:50:46.480 align:start position:0% great so now we have the F data let's go 04:50:46.480 --> 04:50:49.750 align:start position:0% great so now we have the F data let's go ahead<04:50:46.920> and<04:50:47.080> use<04:50:47.320> it<04:50:47.718> within<04:50:47.958> our<04:50:48.520> UI<04:50:49.520> right 04:50:49.750 --> 04:50:49.760 align:start position:0% ahead and use it within our UI right 04:50:49.760 --> 04:50:52.110 align:start position:0% ahead and use it within our UI right here<04:50:50.280> we<04:50:50.400> can<04:50:50.600> wrap<04:50:51.040> everything<04:50:51.320> in<04:50:51.440> a<04:50:51.638> div 04:50:52.110 --> 04:50:52.120 align:start position:0% here we can wrap everything in a div 04:50:52.120 --> 04:50:55.788 align:start position:0% here we can wrap everything in a div that<04:50:52.280> has<04:50:52.440> a<04:50:52.760> class<04:50:53.160> name<04:50:53.760> equal<04:50:54.080> to<04:50:54.600> postore 04:50:55.788 --> 04:50:55.798 align:start position:0% that has a class name equal to postore 04:50:55.798 --> 04:50:57.830 align:start position:0% that has a class name equal to postore details<04:50:56.798> Das 04:50:57.830 --> 04:50:57.840 align:start position:0% details Das 04:50:57.840 --> 04:51:00.230 align:start position:0% details Das container<04:50:58.840> inside<04:50:59.120> of<04:50:59.280> this<04:50:59.520> div<04:50:59.958> we<04:51:00.040> can 04:51:00.230 --> 04:51:00.240 align:start position:0% container inside of this div we can 04:51:00.240 --> 04:51:02.628 align:start position:0% container inside of this div we can check<04:51:00.638> if<04:51:00.840> we<04:51:01.000> are<04:51:01.320> currently<04:51:01.718> loading<04:51:02.400> so<04:51:02.558> we 04:51:02.628 --> 04:51:02.638 align:start position:0% check if we are currently loading so we 04:51:02.638 --> 04:51:05.910 align:start position:0% check if we are currently loading so we can<04:51:02.798> say<04:51:03.120> if<04:51:03.480> is<04:51:04.200> pending<04:51:05.200> in<04:51:05.400> that<04:51:05.600> case<04:51:05.798> we 04:51:05.910 --> 04:51:05.920 align:start position:0% can say if is pending in that case we 04:51:05.920 --> 04:51:08.548 align:start position:0% can say if is pending in that case we want<04:51:06.040> to<04:51:06.360> return<04:51:06.958> a<04:51:07.160> self-closing<04:51:08.080> loader 04:51:08.548 --> 04:51:08.558 align:start position:0% want to return a self-closing loader 04:51:08.558 --> 04:51:10.590 align:start position:0% want to return a self-closing loader component<04:51:09.360> which<04:51:09.520> we<04:51:09.600> can<04:51:09.840> import<04:51:10.320> from 04:51:10.590 --> 04:51:10.600 align:start position:0% component which we can import from 04:51:10.600 --> 04:51:13.788 align:start position:0% component which we can import from components<04:51:11.240> loader<04:51:12.240> else<04:51:12.840> we<04:51:12.920> can<04:51:13.240> return<04:51:13.558> a 04:51:13.788 --> 04:51:13.798 align:start position:0% components loader else we can return a 04:51:13.798 --> 04:51:17.708 align:start position:0% components loader else we can return a div<04:51:14.680> that<04:51:14.920> has<04:51:15.240> a<04:51:15.520> class<04:51:15.920> name<04:51:16.680> equal<04:51:17.000> to 04:51:17.708 --> 04:51:17.718 align:start position:0% div that has a class name equal to 04:51:17.718 --> 04:51:21.270 align:start position:0% div that has a class name equal to postore<04:51:18.718> details<04:51:19.638> dcard<04:51:20.638> this<04:51:20.760> is<04:51:20.878> going<04:51:21.040> to 04:51:21.270 --> 04:51:21.280 align:start position:0% postore details dcard this is going to 04:51:21.280 --> 04:51:23.910 align:start position:0% postore details dcard this is going to create<04:51:21.638> this<04:51:21.920> rectangle<04:51:22.480> that<04:51:22.600> you<04:51:22.680> can<04:51:22.920> see 04:51:23.910 --> 04:51:23.920 align:start position:0% create this rectangle that you can see 04:51:23.920 --> 04:51:26.030 align:start position:0% create this rectangle that you can see within<04:51:24.200> it<04:51:24.480> we<04:51:24.558> can<04:51:24.760> immediately<04:51:25.280> render<04:51:25.878> the 04:51:26.030 --> 04:51:26.040 align:start position:0% within it we can immediately render the 04:51:26.040 --> 04:51:28.708 align:start position:0% within it we can immediately render the Creator<04:51:26.480> image<04:51:27.360> as<04:51:27.480> a<04:51:27.600> matter<04:51:27.920> of<04:51:28.120> fact<04:51:28.440> a<04:51:28.558> lot 04:51:28.708 --> 04:51:28.718 align:start position:0% Creator image as a matter of fact a lot 04:51:28.718 --> 04:51:30.990 align:start position:0% Creator image as a matter of fact a lot of<04:51:28.920> things<04:51:29.440> from<04:51:29.760> the<04:51:29.920> homepage<04:51:30.638> which<04:51:30.798> we<04:51:30.878> can 04:51:30.990 --> 04:51:31.000 align:start position:0% of things from the homepage which we can 04:51:31.000 --> 04:51:33.390 align:start position:0% of things from the homepage which we can see<04:51:31.320> right<04:51:31.558> here<04:51:32.040> like<04:51:32.280> the<04:51:32.520> Creator<04:51:33.040> image 04:51:33.390 --> 04:51:33.400 align:start position:0% see right here like the Creator image 04:51:33.400 --> 04:51:35.230 align:start position:0% see right here like the Creator image and<04:51:33.520> all<04:51:33.718> all<04:51:33.798> of<04:51:33.958> these<04:51:34.160> details<04:51:34.878> can<04:51:35.040> be 04:51:35.230 --> 04:51:35.240 align:start position:0% and all all of these details can be 04:51:35.240 --> 04:51:38.788 align:start position:0% and all all of these details can be taken<04:51:35.558> from<04:51:35.840> there<04:51:36.480> so<04:51:36.798> let's<04:51:37.080> go<04:51:37.280> to<04:51:37.558> our<04:51:37.958> home 04:51:38.788 --> 04:51:38.798 align:start position:0% taken from there so let's go to our home 04:51:38.798 --> 04:51:40.788 align:start position:0% taken from there so let's go to our home and<04:51:38.878> then<04:51:39.000> we're<04:51:39.080> going<04:51:39.200> to<04:51:39.320> go<04:51:39.440> to<04:51:39.600> the<04:51:39.798> post 04:51:40.788 --> 04:51:40.798 align:start position:0% and then we're going to go to the post 04:51:40.798 --> 04:51:44.470 align:start position:0% and then we're going to go to the post card<04:51:41.798> and<04:51:42.080> we<04:51:42.160> can<04:51:42.480> copy<04:51:43.400> this<04:51:43.760> div<04:51:44.320> that 04:51:44.470 --> 04:51:44.480 align:start position:0% card and we can copy this div that 04:51:44.480 --> 04:51:46.670 align:start position:0% card and we can copy this div that contains<04:51:44.920> the<04:51:45.080> link<04:51:46.000> with<04:51:46.200> all<04:51:46.360> of<04:51:46.520> the 04:51:46.670 --> 04:51:46.680 align:start position:0% contains the link with all of the 04:51:46.680 --> 04:51:50.310 align:start position:0% contains the link with all of the profile<04:51:47.280> details<04:51:48.280> so<04:51:48.480> let's<04:51:48.760> copy<04:51:49.000> it<04:51:49.920> all<04:51:50.200> the 04:51:50.310 --> 04:51:50.320 align:start position:0% profile details so let's copy it all the 04:51:50.320 --> 04:51:53.510 align:start position:0% profile details so let's copy it all the way<04:51:50.520> to<04:51:51.000> here<04:51:52.000> and<04:51:52.160> then<04:51:52.320> we<04:51:52.440> can<04:51:52.718> paste<04:51:53.000> it 04:51:53.510 --> 04:51:53.520 align:start position:0% way to here and then we can paste it 04:51:53.520 --> 04:51:56.430 align:start position:0% way to here and then we can paste it right<04:51:53.718> here<04:51:53.958> within<04:51:54.360> post<04:51:55.160> details<04:51:56.160> instead 04:51:56.430 --> 04:51:56.440 align:start position:0% right here within post details instead 04:51:56.440 --> 04:51:58.110 align:start position:0% right here within post details instead of<04:51:56.600> this<04:51:56.760> image<04:51:57.000> that<04:51:57.160> we<04:51:57.280> just 04:51:58.110 --> 04:51:58.120 align:start position:0% of this image that we just 04:51:58.120 --> 04:52:01.390 align:start position:0% of this image that we just added<04:51:59.120> there<04:51:59.320> we<04:51:59.520> go<04:51:59.798> I<04:51:59.878> can<04:52:00.040> indent<04:52:00.400> it 04:52:01.390 --> 04:52:01.400 align:start position:0% added there we go I can indent it 04:52:01.400 --> 04:52:04.430 align:start position:0% added there we go I can indent it properly<04:52:02.400> we<04:52:02.520> have<04:52:02.638> to<04:52:02.878> import<04:52:03.320> link<04:52:04.080> coming 04:52:04.430 --> 04:52:04.440 align:start position:0% properly we have to import link coming 04:52:04.440 --> 04:52:07.110 align:start position:0% properly we have to import link coming from<04:52:04.840> react<04:52:05.240> router<04:52:05.638> Dom<04:52:06.360> so<04:52:06.558> let's<04:52:06.760> get<04:52:06.878> it 04:52:07.110 --> 04:52:07.120 align:start position:0% from react router Dom so let's get it 04:52:07.120 --> 04:52:07.910 align:start position:0% from react router Dom so let's get it right 04:52:07.910 --> 04:52:07.920 align:start position:0% right 04:52:07.920 --> 04:52:10.990 align:start position:0% right here<04:52:08.920> we<04:52:09.040> can<04:52:09.200> also<04:52:09.440> notice<04:52:09.760> that<04:52:10.040> post<04:52:10.760> is 04:52:10.990 --> 04:52:11.000 align:start position:0% here we can also notice that post is 04:52:11.000 --> 04:52:12.190 align:start position:0% here we can also notice that post is possibly 04:52:12.190 --> 04:52:12.200 align:start position:0% possibly 04:52:12.200 --> 04:52:14.230 align:start position:0% possibly undefined<04:52:13.200> so<04:52:13.400> whenever<04:52:13.718> we're<04:52:13.920> talking 04:52:14.230 --> 04:52:14.240 align:start position:0% undefined so whenever we're talking 04:52:14.240 --> 04:52:16.070 align:start position:0% undefined so whenever we're talking about<04:52:14.400> a<04:52:14.600> post<04:52:15.000> we<04:52:15.080> have<04:52:15.200> to<04:52:15.360> add<04:52:15.520> a<04:52:15.760> question 04:52:16.070 --> 04:52:16.080 align:start position:0% about a post we have to add a question 04:52:16.080 --> 04:52:20.190 align:start position:0% about a post we have to add a question mark<04:52:16.600> after<04:52:17.400> so<04:52:17.680> question<04:52:17.958> mark<04:52:18.360> here<04:52:19.360> here<04:52:19.958> as 04:52:20.190 --> 04:52:20.200 align:start position:0% mark after so question mark here here as 04:52:20.200 --> 04:52:23.548 align:start position:0% mark after so question mark here here as well<04:52:21.080> and<04:52:21.480> here<04:52:22.000> with<04:52:22.200> the<04:52:22.360> location<04:52:23.280> and<04:52:23.440> we 04:52:23.548 --> 04:52:23.558 align:start position:0% well and here with the location and we 04:52:23.558 --> 04:52:25.788 align:start position:0% well and here with the location and we have<04:52:23.680> to<04:52:23.878> import<04:52:24.280> the<04:52:24.480> format<04:52:24.958> date<04:52:25.558> right 04:52:25.788 --> 04:52:25.798 align:start position:0% have to import the format date right 04:52:25.798 --> 04:52:29.390 align:start position:0% have to import the format date right here<04:52:26.718> now<04:52:27.120> if<04:52:27.240> we<04:52:27.360> go<04:52:27.718> back<04:52:28.718> to<04:52:28.920> the<04:52:29.040> post 04:52:29.390 --> 04:52:29.400 align:start position:0% here now if we go back to the post 04:52:29.400 --> 04:52:31.470 align:start position:0% here now if we go back to the post details<04:52:30.080> you<04:52:30.200> can<04:52:30.320> see<04:52:30.600> we<04:52:30.760> have<04:52:31.000> this<04:52:31.320> the 04:52:31.470 --> 04:52:31.480 align:start position:0% details you can see we have this the 04:52:31.480 --> 04:52:35.628 align:start position:0% details you can see we have this the real<04:52:32.000> JSM<04:52:32.958> this<04:52:33.200> is<04:52:33.878> great<04:52:34.878> but<04:52:35.040> in<04:52:35.240> this<04:52:35.440> case 04:52:35.628 --> 04:52:35.638 align:start position:0% real JSM this is great but in this case 04:52:35.638 --> 04:52:37.910 align:start position:0% real JSM this is great but in this case we<04:52:35.718> want<04:52:35.878> to<04:52:36.000> show<04:52:36.240> it<04:52:36.558> after<04:52:36.878> the<04:52:37.120> post<04:52:37.680> so<04:52:37.798> we 04:52:37.910 --> 04:52:37.920 align:start position:0% we want to show it after the post so we 04:52:37.920 --> 04:52:41.030 align:start position:0% we want to show it after the post so we can<04:52:38.080> go<04:52:38.360> above<04:52:39.200> in<04:52:39.360> the<04:52:39.520> post<04:52:39.798> details<04:52:40.280> card 04:52:41.030 --> 04:52:41.040 align:start position:0% can go above in the post details card 04:52:41.040 --> 04:52:42.910 align:start position:0% can go above in the post details card and<04:52:41.200> immediately<04:52:41.840> here<04:52:42.280> render<04:52:42.760> a 04:52:42.910 --> 04:52:42.920 align:start position:0% and immediately here render a 04:52:42.920 --> 04:52:44.510 align:start position:0% and immediately here render a self-closing 04:52:44.510 --> 04:52:44.520 align:start position:0% self-closing 04:52:44.520 --> 04:52:47.030 align:start position:0% self-closing image<04:52:45.520> that's<04:52:45.718> going<04:52:45.878> to<04:52:46.040> have<04:52:46.200> a<04:52:46.400> source 04:52:47.030 --> 04:52:47.040 align:start position:0% image that's going to have a source 04:52:47.040 --> 04:52:51.750 align:start position:0% image that's going to have a source equal<04:52:47.680> to<04:52:48.680> post<04:52:49.160> question<04:52:49.440> mark.<04:52:50.080> image<04:52:50.760> URL 04:52:51.750 --> 04:52:51.760 align:start position:0% equal to post question mark. image URL 04:52:51.760 --> 04:52:54.948 align:start position:0% equal to post question mark. image URL with<04:52:51.920> an<04:52:52.080> ALT<04:52:52.440> tag<04:52:52.680> of<04:52:53.200> Creator<04:52:54.200> and<04:52:54.360> a<04:52:54.638> class 04:52:54.948 --> 04:52:54.958 align:start position:0% with an ALT tag of Creator and a class 04:52:54.958 --> 04:53:00.310 align:start position:0% with an ALT tag of Creator and a class name<04:52:55.400> equal<04:52:55.718> to<04:52:56.760> postore<04:52:57.760> details<04:52:58.600> D<04:52:59.200> IMG<04:53:00.200> and 04:53:00.310 --> 04:53:00.320 align:start position:0% name equal to postore details D IMG and 04:53:00.320 --> 04:53:01.510 align:start position:0% name equal to postore details D IMG and this<04:53:00.440> is<04:53:00.558> not<04:53:00.680> going<04:53:00.840> to<04:53:00.920> be<04:53:01.040> Creator<04:53:01.400> it's 04:53:01.510 --> 04:53:01.520 align:start position:0% this is not going to be Creator it's 04:53:01.520 --> 04:53:04.750 align:start position:0% this is not going to be Creator it's going<04:53:01.680> to<04:53:01.798> be<04:53:01.958> the<04:53:02.200> actual<04:53:02.878> post 04:53:04.750 --> 04:53:04.760 align:start position:0% going to be the actual post 04:53:04.760 --> 04:53:06.590 align:start position:0% going to be the actual post there<04:53:04.920> we<04:53:05.080> go<04:53:05.400> so<04:53:05.558> now<04:53:05.680> we<04:53:05.798> can<04:53:05.878> see<04:53:06.080> the<04:53:06.240> post 04:53:06.590 --> 04:53:06.600 align:start position:0% there we go so now we can see the post 04:53:06.600 --> 04:53:09.230 align:start position:0% there we go so now we can see the post and<04:53:06.718> then<04:53:06.840> we<04:53:06.958> can<04:53:07.080> see<04:53:07.360> who<04:53:07.638> created<04:53:08.200> the<04:53:08.360> post 04:53:09.230 --> 04:53:09.240 align:start position:0% and then we can see who created the post 04:53:09.240 --> 04:53:11.590 align:start position:0% and then we can see who created the post we<04:53:09.360> can<04:53:09.558> rename<04:53:10.000> this<04:53:10.200> div<04:53:10.878> that<04:53:11.040> contains<04:53:11.440> the 04:53:11.590 --> 04:53:11.600 align:start position:0% we can rename this div that contains the 04:53:11.600 --> 04:53:14.548 align:start position:0% we can rename this div that contains the link<04:53:12.400> into 04:53:14.548 --> 04:53:14.558 align:start position:0% link into 04:53:14.558 --> 04:53:17.310 align:start position:0% link into postore<04:53:15.760> detailsinfo 04:53:17.310 --> 04:53:17.320 align:start position:0% postore detailsinfo 04:53:17.320 --> 04:53:20.350 align:start position:0% postore detailsinfo there<04:53:18.320> we<04:53:18.520> go<04:53:19.040> and<04:53:19.160> then<04:53:19.320> we<04:53:19.400> can<04:53:19.600> wrap<04:53:19.840> it<04:53:19.958> all 04:53:20.350 --> 04:53:20.360 align:start position:0% there we go and then we can wrap it all 04:53:20.360 --> 04:53:23.030 align:start position:0% there we go and then we can wrap it all in<04:53:20.600> another<04:53:21.000> div<04:53:22.000> this<04:53:22.200> div<04:53:22.480> is<04:53:22.600> going<04:53:22.760> to<04:53:22.920> have 04:53:23.030 --> 04:53:23.040 align:start position:0% in another div this div is going to have 04:53:23.040 --> 04:53:27.190 align:start position:0% in another div this div is going to have a<04:53:23.280> class<04:53:23.638> name<04:53:24.200> equal<04:53:24.520> to<04:53:25.120> flex<04:53:26.080> between<04:53:27.080> as 04:53:27.190 --> 04:53:27.200 align:start position:0% a class name equal to flex between as 04:53:27.200 --> 04:53:28.708 align:start position:0% a class name equal to flex between as well<04:53:27.400> as 04:53:28.708 --> 04:53:28.718 align:start position:0% well as 04:53:28.718 --> 04:53:31.230 align:start position:0% well as w-o<04:53:29.718> and<04:53:29.920> now<04:53:30.240> we'll<04:53:30.440> have<04:53:30.558> to<04:53:30.680> put<04:53:30.920> all<04:53:31.040> of 04:53:31.230 --> 04:53:31.240 align:start position:0% w-o and now we'll have to put all of 04:53:31.240 --> 04:53:33.190 align:start position:0% w-o and now we'll have to put all of these<04:53:31.480> details<04:53:31.878> on<04:53:32.000> the<04:53:32.160> left<04:53:32.440> side<04:53:32.920> and<04:53:33.040> then 04:53:33.190 --> 04:53:33.200 align:start position:0% these details on the left side and then 04:53:33.200 --> 04:53:35.510 align:start position:0% these details on the left side and then the<04:53:33.320> button<04:53:33.520> butons<04:53:33.920> on<04:53:34.040> the<04:53:34.240> right<04:53:34.480> side<04:53:35.240> so 04:53:35.510 --> 04:53:35.520 align:start position:0% the button butons on the right side so 04:53:35.520 --> 04:53:38.190 align:start position:0% the button butons on the right side so let's<04:53:35.760> do<04:53:36.040> just<04:53:36.360> that<04:53:37.360> within<04:53:37.680> this<04:53:37.840> div<04:53:38.120> we 04:53:38.190 --> 04:53:38.200 align:start position:0% let's do just that within this div we 04:53:38.200 --> 04:53:40.510 align:start position:0% let's do just that within this div we can<04:53:38.360> put<04:53:38.520> the<04:53:38.680> link<04:53:39.240> that<04:53:39.440> points<04:53:39.798> to<04:53:40.080> the 04:53:40.510 --> 04:53:40.520 align:start position:0% can put the link that points to the 04:53:40.520 --> 04:53:43.750 align:start position:0% can put the link that points to the Creator<04:53:41.200> image<04:53:42.200> and<04:53:42.400> that<04:53:42.558> link<04:53:43.040> can<04:53:43.240> wrap 04:53:43.750 --> 04:53:43.760 align:start position:0% Creator image and that link can wrap 04:53:43.760 --> 04:53:46.990 align:start position:0% Creator image and that link can wrap everything<04:53:44.440> all<04:53:44.840> the<04:53:45.000> way<04:53:45.760> to<04:53:46.040> the<04:53:46.160> end<04:53:46.760> right 04:53:46.990 --> 04:53:47.000 align:start position:0% everything all the way to the end right 04:53:47.000 --> 04:53:49.510 align:start position:0% everything all the way to the end right here<04:53:47.760> and<04:53:47.920> we<04:53:48.040> can<04:53:48.160> remove<04:53:48.520> these<04:53:48.760> characters 04:53:49.510 --> 04:53:49.520 align:start position:0% here and we can remove these characters 04:53:49.520 --> 04:53:51.948 align:start position:0% here and we can remove these characters that<04:53:49.600> I<04:53:49.718> don't<04:53:49.958> need<04:53:50.638> so<04:53:50.840> now<04:53:51.040> if<04:53:51.160> we<04:53:51.320> save<04:53:51.558> it 04:53:51.948 --> 04:53:51.958 align:start position:0% that I don't need so now if we save it 04:53:51.958 --> 04:53:54.390 align:start position:0% that I don't need so now if we save it you<04:53:52.080> can<04:53:52.200> see<04:53:52.400> the<04:53:52.520> real<04:53:52.798> JSM<04:53:53.280> fits<04:53:53.600> nicely<04:53:54.280> and 04:53:54.390 --> 04:53:54.400 align:start position:0% you can see the real JSM fits nicely and 04:53:54.400 --> 04:53:58.430 align:start position:0% you can see the real JSM fits nicely and we<04:53:54.520> can<04:53:54.760> put<04:53:55.040> this<04:53:55.638> link<04:53:56.718> within<04:53:57.718> this<04:53:57.878> new<04:53:58.120> div 04:53:58.430 --> 04:53:58.440 align:start position:0% we can put this link within this new div 04:53:58.440 --> 04:54:01.590 align:start position:0% we can put this link within this new div that<04:53:58.558> we<04:53:58.680> have<04:53:58.840> created<04:53:59.760> with<04:53:59.920> a<04:54:00.120> flex 04:54:01.590 --> 04:54:01.600 align:start position:0% that we have created with a flex 04:54:01.600 --> 04:54:04.030 align:start position:0% that we have created with a flex between<04:54:02.600> there<04:54:02.760> we<04:54:02.920> go 04:54:04.030 --> 04:54:04.040 align:start position:0% between there we go 04:54:04.040 --> 04:54:06.390 align:start position:0% between there we go of<04:54:04.200> course<04:54:04.638> this<04:54:04.840> link<04:54:05.320> will<04:54:05.558> have<04:54:05.680> to<04:54:05.920> have<04:54:06.160> a 04:54:06.390 --> 04:54:06.400 align:start position:0% of course this link will have to have a 04:54:06.400 --> 04:54:10.110 align:start position:0% of course this link will have to have a class<04:54:06.760> name<04:54:07.440> equal<04:54:07.760> to<04:54:08.600> flex<04:54:09.440> so<04:54:09.638> that<04:54:09.840> all<04:54:09.958> of 04:54:10.110 --> 04:54:10.120 align:start position:0% class name equal to flex so that all of 04:54:10.120 --> 04:54:12.310 align:start position:0% class name equal to flex so that all of these<04:54:10.280> elements<04:54:10.718> appear<04:54:11.000> in<04:54:11.120> a<04:54:11.280> row<04:54:12.160> it's 04:54:12.310 --> 04:54:12.320 align:start position:0% these elements appear in a row it's 04:54:12.320 --> 04:54:15.270 align:start position:0% these elements appear in a row it's going<04:54:12.480> to<04:54:12.638> have<04:54:12.920> items<04:54:13.400> Das<04:54:13.638> Center<04:54:14.558> and<04:54:14.798> a<04:54:15.040> gap 04:54:15.270 --> 04:54:15.280 align:start position:0% going to have items Das Center and a gap 04:54:15.280 --> 04:54:16.150 align:start position:0% going to have items Das Center and a gap of 04:54:16.150 --> 04:54:16.160 align:start position:0% of 04:54:16.160 --> 04:54:19.868 align:start position:0% of three<04:54:17.160> and<04:54:17.400> now<04:54:17.760> we<04:54:17.878> can<04:54:18.080> go<04:54:18.440> below<04:54:19.000> this<04:54:19.200> link 04:54:19.868 --> 04:54:19.878 align:start position:0% three and now we can go below this link 04:54:19.878 --> 04:54:21.990 align:start position:0% three and now we can go below this link and<04:54:20.000> we<04:54:20.120> can<04:54:20.280> create<04:54:20.798> those<04:54:21.160> actions<04:54:21.760> that<04:54:21.920> we 04:54:21.990 --> 04:54:22.000 align:start position:0% and we can create those actions that we 04:54:22.000 --> 04:54:24.548 align:start position:0% and we can create those actions that we should<04:54:22.200> have<04:54:22.360> on<04:54:22.520> the<04:54:22.680> right<04:54:23.080> side<04:54:24.080> if<04:54:24.200> at<04:54:24.360> any 04:54:24.548 --> 04:54:24.558 align:start position:0% should have on the right side if at any 04:54:24.558 --> 04:54:26.190 align:start position:0% should have on the right side if at any point<04:54:24.840> something<04:54:25.160> breaks<04:54:25.520> or<04:54:25.718> doesn't<04:54:25.958> look 04:54:26.190 --> 04:54:26.200 align:start position:0% point something breaks or doesn't look 04:54:26.200 --> 04:54:28.070 align:start position:0% point something breaks or doesn't look the<04:54:26.320> same<04:54:26.718> I<04:54:26.798> know<04:54:27.000> we<04:54:27.280> switched<04:54:27.680> a<04:54:27.760> lot<04:54:27.920> of 04:54:28.070 --> 04:54:28.080 align:start position:0% the same I know we switched a lot of 04:54:28.080 --> 04:54:30.230 align:start position:0% the same I know we switched a lot of code<04:54:28.400> here<04:54:29.160> you<04:54:29.280> can<04:54:29.440> go<04:54:29.558> to<04:54:29.680> the<04:54:29.798> finished 04:54:30.230 --> 04:54:30.240 align:start position:0% code here you can go to the finished 04:54:30.240 --> 04:54:32.548 align:start position:0% code here you can go to the finished project<04:54:30.638> GitHub<04:54:31.000> repository<04:54:31.798> and<04:54:32.040> find<04:54:32.360> the 04:54:32.548 --> 04:54:32.558 align:start position:0% project GitHub repository and find the 04:54:32.558 --> 04:54:35.430 align:start position:0% project GitHub repository and find the post<04:54:32.878> Details<04:54:33.280> page<04:54:33.638> page<04:54:34.638> now<04:54:34.920> below<04:54:35.240> this 04:54:35.430 --> 04:54:35.440 align:start position:0% post Details page page now below this 04:54:35.440 --> 04:54:37.628 align:start position:0% post Details page page now below this link<04:54:35.840> we<04:54:35.958> can<04:54:36.120> create<04:54:36.480> another<04:54:36.798> div<04:54:37.440> that's 04:54:37.628 --> 04:54:37.638 align:start position:0% link we can create another div that's 04:54:37.638 --> 04:54:40.910 align:start position:0% link we can create another div that's going<04:54:37.798> to<04:54:38.080> have<04:54:38.320> a<04:54:38.600> class<04:54:38.920> name<04:54:39.520> equal<04:54:39.840> to<04:54:40.040> flex 04:54:40.910 --> 04:54:40.920 align:start position:0% going to have a class name equal to flex 04:54:40.920 --> 04:54:43.708 align:start position:0% going to have a class name equal to flex Center<04:54:41.920> as<04:54:42.040> well<04:54:42.160> as<04:54:42.320> a<04:54:42.520> gap<04:54:42.798> of 04:54:43.708 --> 04:54:43.718 align:start position:0% Center as well as a gap of 04:54:43.718 --> 04:54:46.350 align:start position:0% Center as well as a gap of four<04:54:44.718> within<04:54:45.000> it<04:54:45.320> we<04:54:45.400> can<04:54:45.600> create<04:54:45.958> another 04:54:46.350 --> 04:54:46.360 align:start position:0% four within it we can create another 04:54:46.360 --> 04:54:48.788 align:start position:0% four within it we can create another link<04:54:47.360> this<04:54:47.520> link<04:54:47.878> is<04:54:48.000> going<04:54:48.160> to<04:54:48.280> render<04:54:48.638> the 04:54:48.788 --> 04:54:48.798 align:start position:0% link this link is going to render the 04:54:48.798 --> 04:54:52.150 align:start position:0% link this link is going to render the edit<04:54:49.080> image<04:54:49.760> so<04:54:50.000> let's<04:54:50.200> say<04:54:50.798> image<04:54:51.798> is<04:54:51.958> going 04:54:52.150 --> 04:54:52.160 align:start position:0% edit image so let's say image is going 04:54:52.160 --> 04:54:57.708 align:start position:0% edit image so let's say image is going to<04:54:52.320> point<04:54:52.638> to<04:54:53.240> Source<04:54:54.240> SL<04:54:54.638> assets<04:54:55.638> SL<04:54:56.120> ions<04:54:57.120> SL 04:54:57.708 --> 04:54:57.718 align:start position:0% to point to Source SL assets SL ions SL 04:54:57.718 --> 04:54:59.350 align:start position:0% to point to Source SL assets SL ions SL edit. 04:54:59.350 --> 04:54:59.360 align:start position:0% edit. 04:54:59.360 --> 04:55:02.230 align:start position:0% edit. SVG<04:55:00.360> and<04:55:00.520> of<04:55:00.680> course<04:55:01.160> if<04:55:01.280> it's<04:55:01.440> a<04:55:01.558> link<04:55:02.000> we<04:55:02.160> have 04:55:02.230 --> 04:55:02.240 align:start position:0% SVG and of course if it's a link we have 04:55:02.240 --> 04:55:04.270 align:start position:0% SVG and of course if it's a link we have to<04:55:02.360> give<04:55:02.480> it<04:55:02.600> a<04:55:02.718> two<04:55:03.000> property<04:55:03.760> it's<04:55:03.920> going<04:55:04.080> to 04:55:04.270 --> 04:55:04.280 align:start position:0% to give it a two property it's going to 04:55:04.280 --> 04:55:06.590 align:start position:0% to give it a two property it's going to go<04:55:04.400> to<04:55:04.600> forward<04:55:05.000> slash<04:55:05.520> we<04:55:05.638> have<04:55:05.760> to<04:55:05.878> make<04:55:06.000> it 04:55:06.590 --> 04:55:06.600 align:start position:0% go to forward slash we have to make it 04:55:06.600 --> 04:55:09.190 align:start position:0% go to forward slash we have to make it Dynamic<04:55:07.600> update 04:55:09.190 --> 04:55:09.200 align:start position:0% Dynamic update 04:55:09.200 --> 04:55:10.788 align:start position:0% Dynamic update dpost 04:55:10.788 --> 04:55:10.798 align:start position:0% dpost 04:55:10.798 --> 04:55:15.110 align:start position:0% dpost slost<04:55:11.798> question<04:55:12.160> mark.<04:55:13.160> dollar<04:55:13.558> sign<04:55:13.958> ID<04:55:14.958> and 04:55:15.110 --> 04:55:15.120 align:start position:0% slost question mark. dollar sign ID and 04:55:15.120 --> 04:55:17.948 align:start position:0% slost question mark. dollar sign ID and there<04:55:15.240> we<04:55:15.400> go<04:55:15.638> we<04:55:15.760> have<04:55:15.878> a<04:55:16.040> huge<04:55:16.360> edit<04:55:16.958> button 04:55:17.948 --> 04:55:17.958 align:start position:0% there we go we have a huge edit button 04:55:17.958 --> 04:55:20.350 align:start position:0% there we go we have a huge edit button we<04:55:18.200> only<04:55:18.480> want<04:55:18.638> to<04:55:18.798> show<04:55:19.160> this<04:55:19.718> if<04:55:19.920> the<04:55:20.080> person 04:55:20.350 --> 04:55:20.360 align:start position:0% we only want to show this if the person 04:55:20.360 --> 04:55:23.230 align:start position:0% we only want to show this if the person that<04:55:20.558> created<04:55:20.958> it<04:55:21.400> is<04:55:21.638> the<04:55:21.840> author<04:55:22.638> so<04:55:23.000> we<04:55:23.080> need 04:55:23.230 --> 04:55:23.240 align:start position:0% that created it is the author so we need 04:55:23.240 --> 04:55:25.070 align:start position:0% that created it is the author so we need to<04:55:23.480> again<04:55:23.840> know<04:55:24.200> who<04:55:24.360> is<04:55:24.520> the<04:55:24.638> currently 04:55:25.070 --> 04:55:25.080 align:start position:0% to again know who is the currently 04:55:25.080 --> 04:55:27.910 align:start position:0% to again know who is the currently logged<04:55:25.400> in<04:55:25.558> user<04:55:26.520> to<04:55:26.680> know<04:55:27.000> that<04:55:27.440> we<04:55:27.520> can<04:55:27.638> say 04:55:27.910 --> 04:55:27.920 align:start position:0% logged in user to know that we can say 04:55:27.920 --> 04:55:33.708 align:start position:0% logged in user to know that we can say const<04:55:28.840> user<04:55:29.520> is<04:55:29.718> equal<04:55:30.040> to<04:55:30.878> use<04:55:31.600> user<04:55:32.400> context 04:55:33.708 --> 04:55:33.718 align:start position:0% const user is equal to use user context 04:55:33.718 --> 04:55:36.430 align:start position:0% const user is equal to use user context and<04:55:33.840> we<04:55:33.920> can<04:55:34.120> import<04:55:34.440> it<04:55:34.878> and<04:55:35.040> now<04:55:35.200> we<04:55:35.320> have<04:55:35.520> the 04:55:36.430 --> 04:55:36.440 align:start position:0% and we can import it and now we have the 04:55:36.440 --> 04:55:40.190 align:start position:0% and we can import it and now we have the user<04:55:37.440> so<04:55:37.600> we<04:55:37.680> can<04:55:37.878> go<04:55:38.120> back<04:55:38.558> down<04:55:39.558> and<04:55:39.760> to<04:55:40.000> this 04:55:40.190 --> 04:55:40.200 align:start position:0% user so we can go back down and to this 04:55:40.200 --> 04:55:43.830 align:start position:0% user so we can go back down and to this link<04:55:41.000> we<04:55:41.120> can<04:55:41.320> apply<04:55:41.718> a<04:55:41.958> class<04:55:42.360> name<04:55:43.360> saying 04:55:43.830 --> 04:55:43.840 align:start position:0% link we can apply a class name saying 04:55:43.840 --> 04:55:49.470 align:start position:0% link we can apply a class name saying that<04:55:44.240> if<04:55:45.080> user.<04:55:46.080> ID<04:55:46.958> is<04:55:47.200> not<04:55:47.638> equal<04:55:48.000> to<04:55:48.840> post 04:55:49.470 --> 04:55:49.480 align:start position:0% that if user. ID is not equal to post 04:55:49.480 --> 04:55:51.670 align:start position:0% that if user. ID is not equal to post question<04:55:49.840> mark. 04:55:51.670 --> 04:55:51.680 align:start position:0% question mark. 04:55:51.680 --> 04:55:55.548 align:start position:0% question mark. creator.<04:55:52.680> dollar<04:55:53.000> sign<04:55:53.638> ID<04:55:54.638> in<04:55:54.878> that<04:55:55.160> case<04:55:55.440> we 04:55:55.548 --> 04:55:55.558 align:start position:0% creator. dollar sign ID in that case we 04:55:55.558 --> 04:55:57.670 align:start position:0% creator. dollar sign ID in that case we want<04:55:55.718> to<04:55:55.878> make<04:55:56.040> it<04:55:56.440> hidden<04:55:56.920> so<04:55:57.160> completely 04:55:57.670 --> 04:55:57.680 align:start position:0% want to make it hidden so completely 04:55:57.680 --> 04:55:59.910 align:start position:0% want to make it hidden so completely hide<04:55:57.878> it<04:55:58.600> in<04:55:58.798> this<04:55:58.958> case<04:55:59.120> it's<04:55:59.280> still<04:55:59.558> there 04:55:59.910 --> 04:55:59.920 align:start position:0% hide it in this case it's still there 04:55:59.920 --> 04:56:02.868 align:start position:0% hide it in this case it's still there because<04:56:00.160> we<04:56:00.360> created<04:56:00.760> it<04:56:01.600> then<04:56:02.040> this<04:56:02.280> image 04:56:02.868 --> 04:56:02.878 align:start position:0% because we created it then this image 04:56:02.878 --> 04:56:07.070 align:start position:0% because we created it then this image has<04:56:03.040> to<04:56:03.440> have<04:56:03.718> a<04:56:04.000> width<04:56:04.680> of<04:56:04.920> about<04:56:05.638> 24<04:56:06.638> and<04:56:06.798> a 04:56:07.070 --> 04:56:07.080 align:start position:0% has to have a width of about 24 and a 04:56:07.080 --> 04:56:11.868 align:start position:0% has to have a width of about 24 and a height<04:56:07.480> of<04:56:07.958> 24<04:56:08.958> and<04:56:09.200> an<04:56:09.360> Al<04:56:09.718> tag<04:56:10.040> of<04:56:10.680> edit<04:56:11.680> it's 04:56:11.868 --> 04:56:11.878 align:start position:0% height of 24 and an Al tag of edit it's 04:56:11.878 --> 04:56:14.030 align:start position:0% height of 24 and an Al tag of edit it's much<04:56:12.080> smaller<04:56:12.638> we<04:56:12.760> should<04:56:13.000> also<04:56:13.320> make<04:56:13.638> this 04:56:14.030 --> 04:56:14.040 align:start position:0% much smaller we should also make this 04:56:14.040 --> 04:56:16.430 align:start position:0% much smaller we should also make this profile<04:56:14.400> photo<04:56:14.760> smaller<04:56:15.360> as<04:56:15.558> well<04:56:16.040> so<04:56:16.240> let's 04:56:16.430 --> 04:56:16.440 align:start position:0% profile photo smaller as well so let's 04:56:16.440 --> 04:56:20.670 align:start position:0% profile photo smaller as well so let's go<04:56:16.600> to<04:56:16.798> the<04:56:17.400> Creator<04:56:18.400> and<04:56:18.600> we<04:56:18.718> can<04:56:18.878> make<04:56:19.040> it<04:56:19.680> W8 04:56:20.670 --> 04:56:20.680 align:start position:0% go to the Creator and we can make it W8 04:56:20.680 --> 04:56:24.270 align:start position:0% go to the Creator and we can make it W8 and<04:56:21.000> H<04:56:21.520> can<04:56:21.760> be<04:56:22.280> 8<04:56:22.840> as 04:56:24.270 --> 04:56:24.280 align:start position:0% and H can be 8 as 04:56:24.280 --> 04:56:28.310 align:start position:0% and H can be 8 as well<04:56:25.280> but<04:56:25.480> on<04:56:25.718> large<04:56:26.120> devices<04:56:26.878> W<04:56:27.320> can<04:56:27.440> be<04:56:27.600> 12 04:56:28.310 --> 04:56:28.320 align:start position:0% well but on large devices W can be 12 04:56:28.320 --> 04:56:31.750 align:start position:0% well but on large devices W can be 12 and<04:56:28.520> age<04:56:28.840> can<04:56:29.000> be<04:56:29.400> 12<04:56:30.400> and<04:56:30.600> if<04:56:30.718> we<04:56:30.878> save<04:56:31.120> it<04:56:31.638> we 04:56:31.750 --> 04:56:31.760 align:start position:0% and age can be 12 and if we save it we 04:56:31.760 --> 04:56:34.830 align:start position:0% and age can be 12 and if we save it we have<04:56:31.878> to<04:56:32.000> say<04:56:32.200> on<04:56:32.440> large<04:56:32.798> devices<04:56:33.480> H<04:56:33.760> is<04:56:33.958> 12 04:56:34.830 --> 04:56:34.840 align:start position:0% have to say on large devices H is 12 04:56:34.840 --> 04:56:37.390 align:start position:0% have to say on large devices H is 12 there<04:56:35.000> we<04:56:35.160> go<04:56:35.480> that's<04:56:35.680> looking<04:56:36.160> better<04:56:37.160> and 04:56:37.390 --> 04:56:37.400 align:start position:0% there we go that's looking better and 04:56:37.400 --> 04:56:40.390 align:start position:0% there we go that's looking better and now<04:56:37.840> alongside<04:56:38.840> this<04:56:39.080> edit<04:56:39.600> we<04:56:39.760> also<04:56:40.000> want<04:56:40.160> to 04:56:40.390 --> 04:56:40.400 align:start position:0% now alongside this edit we also want to 04:56:40.400 --> 04:56:41.708 align:start position:0% now alongside this edit we also want to add<04:56:40.638> another 04:56:41.708 --> 04:56:41.718 align:start position:0% add another 04:56:41.718 --> 04:56:44.590 align:start position:0% add another button<04:56:42.718> but<04:56:42.958> this<04:56:43.160> time<04:56:43.558> the<04:56:43.718> button<04:56:44.280> is<04:56:44.440> going 04:56:44.590 --> 04:56:44.600 align:start position:0% button but this time the button is going 04:56:44.600 --> 04:56:48.230 align:start position:0% button but this time the button is going to<04:56:44.798> be<04:56:45.160> for 04:56:48.230 --> 04:56:48.240 align:start position:0% 04:56:48.240 --> 04:56:52.150 align:start position:0% delete<04:56:49.240> so<04:56:49.440> we<04:56:49.520> can<04:56:49.680> say<04:56:49.958> on<04:56:50.680> click<04:56:51.680> we<04:56:51.798> want<04:56:51.958> to 04:56:52.150 --> 04:56:52.160 align:start position:0% delete so we can say on click we want to 04:56:52.160 --> 04:56:56.590 align:start position:0% delete so we can say on click we want to call<04:56:52.680> a<04:56:52.878> handle<04:56:53.638> delete<04:56:54.958> post<04:56:55.958> and<04:56:56.200> we<04:56:56.360> have<04:56:56.440> to 04:56:56.590 --> 04:56:56.600 align:start position:0% call a handle delete post and we have to 04:56:56.600 --> 04:56:59.708 align:start position:0% call a handle delete post and we have to declare<04:56:57.000> that<04:56:57.240> function<04:56:57.558> of<04:56:57.718> course<04:56:58.400> const 04:56:59.708 --> 04:56:59.718 align:start position:0% declare that function of course const 04:56:59.718 --> 04:57:03.708 align:start position:0% declare that function of course const handle<04:57:00.840> delete<04:57:01.840> post<04:57:02.558> for<04:57:02.760> now<04:57:02.958> it<04:57:03.400> be<04:57:03.558> an 04:57:03.708 --> 04:57:03.718 align:start position:0% handle delete post for now it be an 04:57:03.718 --> 04:57:05.548 align:start position:0% handle delete post for now it be an empty<04:57:04.280> callback 04:57:05.548 --> 04:57:05.558 align:start position:0% empty callback 04:57:05.558 --> 04:57:08.350 align:start position:0% empty callback function<04:57:06.558> it's<04:57:06.840> also<04:57:07.200> going<04:57:07.360> to<04:57:07.638> have<04:57:07.920> a 04:57:08.350 --> 04:57:08.360 align:start position:0% function it's also going to have a 04:57:08.360 --> 04:57:11.470 align:start position:0% function it's also going to have a variant<04:57:09.360> equal<04:57:09.638> to<04:57:09.958> ghost<04:57:10.958> it's<04:57:11.160> going<04:57:11.360> to 04:57:11.470 --> 04:57:11.480 align:start position:0% variant equal to ghost it's going to 04:57:11.480 --> 04:57:14.190 align:start position:0% variant equal to ghost it's going to have<04:57:11.600> a<04:57:11.798> class<04:57:12.160> name<04:57:12.798> equal<04:57:13.080> to 04:57:14.190 --> 04:57:14.200 align:start position:0% have a class name equal to 04:57:14.200 --> 04:57:19.270 align:start position:0% have a class name equal to ghostcore<04:57:15.200> details<04:57:16.080> D<04:57:16.680> deletor<04:57:17.840> BTN<04:57:18.840> and<04:57:19.040> it 04:57:19.270 --> 04:57:19.280 align:start position:0% ghostcore details D deletor BTN and it 04:57:19.280 --> 04:57:21.990 align:start position:0% ghostcore details D deletor BTN and it has<04:57:19.440> to<04:57:19.600> have<04:57:19.798> the<04:57:20.040> same<04:57:20.680> class<04:57:21.160> right<04:57:21.360> here<04:57:21.718> to 04:57:21.990 --> 04:57:22.000 align:start position:0% has to have the same class right here to 04:57:22.000 --> 04:57:24.510 align:start position:0% has to have the same class right here to hide<04:57:22.240> it<04:57:22.558> if<04:57:22.680> we're<04:57:22.920> not<04:57:23.200> the<04:57:23.360> current<04:57:23.680> Creator 04:57:24.510 --> 04:57:24.520 align:start position:0% hide it if we're not the current Creator 04:57:24.520 --> 04:57:27.310 align:start position:0% hide it if we're not the current Creator so<04:57:24.798> let's<04:57:25.080> copy<04:57:25.480> this<04:57:25.760> right<04:57:25.958> here<04:57:26.718> turn<04:57:27.040> this 04:57:27.310 --> 04:57:27.320 align:start position:0% so let's copy this right here turn this 04:57:27.320 --> 04:57:29.948 align:start position:0% so let's copy this right here turn this into<04:57:27.558> a<04:57:27.718> dynamic<04:57:28.280> template 04:57:29.948 --> 04:57:29.958 align:start position:0% into a dynamic template 04:57:29.958 --> 04:57:32.190 align:start position:0% into a dynamic template string<04:57:30.958> and<04:57:31.080> then<04:57:31.240> we<04:57:31.320> can<04:57:31.520> paste<04:57:31.760> it<04:57:32.000> right 04:57:32.190 --> 04:57:32.200 align:start position:0% string and then we can paste it right 04:57:32.200 --> 04:57:34.110 align:start position:0% string and then we can paste it right here 04:57:34.110 --> 04:57:34.120 align:start position:0% here 04:57:34.120 --> 04:57:36.190 align:start position:0% here finally<04:57:34.718> within<04:57:35.000> the<04:57:35.160> button<04:57:35.638> we<04:57:35.760> can<04:57:35.878> render 04:57:36.190 --> 04:57:36.200 align:start position:0% finally within the button we can render 04:57:36.200 --> 04:57:37.070 align:start position:0% finally within the button we can render an 04:57:37.070 --> 04:57:37.080 align:start position:0% an 04:57:37.080 --> 04:57:39.590 align:start position:0% an image<04:57:38.080> and<04:57:38.280> this<04:57:38.480> image<04:57:38.798> is<04:57:38.958> going<04:57:39.120> to<04:57:39.280> have<04:57:39.440> a 04:57:39.590 --> 04:57:39.600 align:start position:0% image and this image is going to have a 04:57:39.600 --> 04:57:44.948 align:start position:0% image and this image is going to have a source<04:57:40.200> equal<04:57:40.520> to<04:57:40.840> for/<04:57:41.840> assets<04:57:42.840> SL<04:57:43.400> ions<04:57:44.400> SL 04:57:44.948 --> 04:57:44.958 align:start position:0% source equal to for/ assets SL ions SL 04:57:44.958 --> 04:57:49.270 align:start position:0% source equal to for/ assets SL ions SL delete.<04:57:46.400> SVG<04:57:47.400> with<04:57:47.558> an<04:57:47.798> ALT<04:57:48.160> tag<04:57:48.440> of 04:57:49.270 --> 04:57:49.280 align:start position:0% delete. SVG with an ALT tag of 04:57:49.280 --> 04:57:54.270 align:start position:0% delete. SVG with an ALT tag of delete<04:57:50.280> a<04:57:50.520> width<04:57:51.080> of<04:57:51.280> 24<04:57:52.280> and<04:57:52.520> a<04:57:52.798> height<04:57:53.240> of<04:57:53.400> 24 04:57:54.270 --> 04:57:54.280 align:start position:0% delete a width of 24 and a height of 24 04:57:54.280 --> 04:57:57.350 align:start position:0% delete a width of 24 and a height of 24 as<04:57:54.520> well<04:57:55.360> and<04:57:55.558> there<04:57:55.680> we<04:57:55.840> go<04:57:56.280> now<04:57:56.480> we<04:57:56.558> can<04:57:56.718> see 04:57:57.350 --> 04:57:57.360 align:start position:0% as well and there we go now we can see 04:57:57.360 --> 04:57:59.948 align:start position:0% as well and there we go now we can see both<04:57:57.680> of<04:57:57.920> these<04:57:58.638> we<04:57:58.760> can<04:57:58.920> also<04:57:59.160> lower<04:57:59.558> the<04:57:59.760> Gap 04:57:59.948 --> 04:57:59.958 align:start position:0% both of these we can also lower the Gap 04:57:59.958 --> 04:58:02.708 align:start position:0% both of these we can also lower the Gap a<04:58:00.120> bit<04:58:00.480> maybe<04:58:00.840> Gap<04:58:01.040> two<04:58:01.600> is<04:58:01.760> going<04:58:01.920> to<04:58:02.080> be<04:58:02.360> fine 04:58:02.708 --> 04:58:02.718 align:start position:0% a bit maybe Gap two is going to be fine 04:58:02.718 --> 04:58:05.190 align:start position:0% a bit maybe Gap two is going to be fine or<04:58:02.920> even<04:58:03.400> one<04:58:03.840> looks<04:58:04.160> good<04:58:04.600> what<04:58:04.718> if<04:58:04.798> you<04:58:04.920> do<04:58:05.040> it 04:58:05.190 --> 04:58:05.200 align:start position:0% or even one looks good what if you do it 04:58:05.200 --> 04:58:07.910 align:start position:0% or even one looks good what if you do it with<04:58:05.360> no<04:58:05.638> Gap<04:58:06.600> there<04:58:06.760> we<04:58:06.920> go<04:58:07.240> even<04:58:07.520> without<04:58:07.718> a 04:58:07.910 --> 04:58:07.920 align:start position:0% with no Gap there we go even without a 04:58:07.920 --> 04:58:10.190 align:start position:0% with no Gap there we go even without a gap<04:58:08.200> it's<04:58:08.400> looking<04:58:08.760> good<04:58:09.400> and<04:58:09.558> if<04:58:09.638> you<04:58:09.798> expand 04:58:10.190 --> 04:58:10.200 align:start position:0% gap it's looking good and if you expand 04:58:10.200 --> 04:58:12.910 align:start position:0% gap it's looking good and if you expand it<04:58:10.840> keep<04:58:11.040> in<04:58:11.240> mind<04:58:11.520> it<04:58:11.638> still<04:58:11.878> looks<04:58:12.200> good<04:58:12.680> on 04:58:12.910 --> 04:58:12.920 align:start position:0% it keep in mind it still looks good on 04:58:12.920 --> 04:58:16.390 align:start position:0% it keep in mind it still looks good on all<04:58:13.480> different<04:58:14.120> devices<04:58:15.120> this<04:58:15.360> is 04:58:16.390 --> 04:58:16.400 align:start position:0% all different devices this is 04:58:16.400 --> 04:58:18.750 align:start position:0% all different devices this is wonderful<04:58:17.400> now<04:58:17.600> don't<04:58:17.798> delete<04:58:18.080> the<04:58:18.200> poe<04:58:18.558> just 04:58:18.750 --> 04:58:18.760 align:start position:0% wonderful now don't delete the poe just 04:58:18.760 --> 04:58:20.510 align:start position:0% wonderful now don't delete the poe just yet<04:58:19.080> we<04:58:19.240> still<04:58:19.440> have<04:58:19.558> to<04:58:19.680> add<04:58:19.840> a<04:58:20.000> caption<04:58:20.360> in 04:58:20.510 --> 04:58:20.520 align:start position:0% yet we still have to add a caption in 04:58:20.520 --> 04:58:23.230 align:start position:0% yet we still have to add a caption in more<04:58:20.798> details<04:58:21.760> so<04:58:21.958> let's<04:58:22.240> go<04:58:22.520> below<04:58:23.040> this 04:58:23.230 --> 04:58:23.240 align:start position:0% more details so let's go below this 04:58:23.240 --> 04:58:25.670 align:start position:0% more details so let's go below this button<04:58:23.798> and<04:58:24.000> Below<04:58:24.360> two<04:58:24.558> more 04:58:25.670 --> 04:58:25.680 align:start position:0% button and Below two more 04:58:25.680 --> 04:58:29.310 align:start position:0% button and Below two more divs<04:58:26.680> and<04:58:26.798> then<04:58:27.000> here<04:58:27.480> we<04:58:27.558> can<04:58:27.718> create<04:58:28.000> an<04:58:28.200> HR<04:58:29.160> a 04:58:29.310 --> 04:58:29.320 align:start position:0% divs and then here we can create an HR a 04:58:29.320 --> 04:58:32.270 align:start position:0% divs and then here we can create an HR a horizontal<04:58:29.920> line<04:58:30.680> with<04:58:30.878> a<04:58:31.160> class<04:58:31.520> name<04:58:31.958> equal 04:58:32.270 --> 04:58:32.280 align:start position:0% horizontal line with a class name equal 04:58:32.280 --> 04:58:34.430 align:start position:0% horizontal line with a class name equal to<04:58:32.480> border 04:58:34.430 --> 04:58:34.440 align:start position:0% to border 04:58:34.440 --> 04:58:37.990 align:start position:0% to border w-<04:58:35.160> full<04:58:35.760> and<04:58:35.958> border<04:58:36.360> colar<04:58:36.798> of<04:58:37.000> Border<04:58:37.600> D 04:58:37.990 --> 04:58:38.000 align:start position:0% w- full and border colar of Border D 04:58:38.000 --> 04:58:40.430 align:start position:0% w- full and border colar of Border D dark<04:58:38.520> of<04:58:38.798> 4<04:58:39.320> over 04:58:40.430 --> 04:58:40.440 align:start position:0% dark of 4 over 04:58:40.440 --> 04:58:42.708 align:start position:0% dark of 4 over 80<04:58:41.440> if<04:58:41.558> we<04:58:41.718> save<04:58:41.920> it<04:58:42.080> you<04:58:42.160> should<04:58:42.320> be<04:58:42.440> able<04:58:42.600> to 04:58:42.708 --> 04:58:42.718 align:start position:0% 80 if we save it you should be able to 04:58:42.718 --> 04:58:44.788 align:start position:0% 80 if we save it you should be able to see<04:58:43.000> a<04:58:43.160> really<04:58:43.440> unnoticeable<04:58:44.200> line<04:58:44.600> that's 04:58:44.788 --> 04:58:44.798 align:start position:0% see a really unnoticeable line that's 04:58:44.798 --> 04:58:47.350 align:start position:0% see a really unnoticeable line that's going<04:58:44.958> to<04:58:45.120> create<04:58:45.360> some<04:58:46.040> spacing<04:58:47.040> and<04:58:47.160> then 04:58:47.350 --> 04:58:47.360 align:start position:0% going to create some spacing and then 04:58:47.360 --> 04:58:49.670 align:start position:0% going to create some spacing and then below<04:58:47.958> we<04:58:48.080> can<04:58:48.320> copy<04:58:48.718> everything<04:58:49.120> we<04:58:49.280> already 04:58:49.670 --> 04:58:49.680 align:start position:0% below we can copy everything we already 04:58:49.680 --> 04:58:51.830 align:start position:0% below we can copy everything we already had<04:58:50.160> from<04:58:50.440> a<04:58:50.680> post 04:58:51.830 --> 04:58:51.840 align:start position:0% had from a post 04:58:51.840 --> 04:58:54.910 align:start position:0% had from a post card<04:58:52.840> not<04:58:53.160> the<04:58:53.320> Creator<04:58:53.798> things<04:58:54.280> but<04:58:54.520> rather 04:58:54.910 --> 04:58:54.920 align:start position:0% card not the Creator things but rather 04:58:54.920 --> 04:58:57.510 align:start position:0% card not the Creator things but rather all<04:58:55.080> of<04:58:55.240> the<04:58:55.400> post<04:58:55.798> tags<04:58:56.240> the<04:58:56.360> post<04:58:56.718> caption 04:58:57.510 --> 04:58:57.520 align:start position:0% all of the post tags the post caption 04:58:57.520 --> 04:59:00.910 align:start position:0% all of the post tags the post caption and<04:58:57.798> more<04:58:58.680> so<04:58:58.878> let's<04:58:59.040> simply<04:58:59.360> copy<04:58:59.638> this<04:58:59.920> div 04:59:00.910 --> 04:59:00.920 align:start position:0% and more so let's simply copy this div 04:59:00.920 --> 04:59:03.708 align:start position:0% and more so let's simply copy this div that<04:59:01.080> contains<04:59:01.718> the<04:59:01.920> post<04:59:02.240> caption<04:59:03.360> it's<04:59:03.558> just 04:59:03.708 --> 04:59:03.718 align:start position:0% that contains the post caption it's just 04:59:03.718 --> 04:59:06.110 align:start position:0% that contains the post caption it's just this<04:59:03.920> small<04:59:04.200> one<04:59:04.480> right<04:59:04.680> here<04:59:05.600> we<04:59:05.718> can<04:59:05.920> paste 04:59:06.110 --> 04:59:06.120 align:start position:0% this small one right here we can paste 04:59:06.120 --> 04:59:08.548 align:start position:0% this small one right here we can paste it<04:59:06.320> below<04:59:06.680> the 04:59:08.548 --> 04:59:08.558 align:start position:0% it below the 04:59:08.558 --> 04:59:12.110 align:start position:0% it below the HR<04:59:09.558> indent<04:59:09.958> it<04:59:10.440> properly<04:59:11.440> and<04:59:11.718> everywhere 04:59:12.110 --> 04:59:12.120 align:start position:0% HR indent it properly and everywhere 04:59:12.120 --> 04:59:13.948 align:start position:0% HR indent it properly and everywhere where<04:59:12.240> we're<04:59:12.400> saying<04:59:12.760> post<04:59:13.280> we<04:59:13.400> can<04:59:13.558> add<04:59:13.760> a 04:59:13.948 --> 04:59:13.958 align:start position:0% where we're saying post we can add a 04:59:13.958 --> 04:59:16.430 align:start position:0% where we're saying post we can add a question<04:59:14.240> mark<04:59:14.718> as<04:59:14.920> well<04:59:15.480> and<04:59:15.638> there<04:59:15.760> we<04:59:15.920> go<04:59:16.280> we 04:59:16.430 --> 04:59:16.440 align:start position:0% question mark as well and there we go we 04:59:16.440 --> 04:59:19.190 align:start position:0% question mark as well and there we go we have<04:59:16.638> this<04:59:16.798> wonderful<04:59:17.878> caption<04:59:18.878> we<04:59:19.080> can 04:59:19.190 --> 04:59:19.200 align:start position:0% have this wonderful caption we can 04:59:19.200 --> 04:59:21.590 align:start position:0% have this wonderful caption we can change<04:59:19.440> this<04:59:19.558> tiing<04:59:20.000> a<04:59:20.120> bit<04:59:20.520> from<04:59:20.760> this<04:59:20.920> div<04:59:21.440> by 04:59:21.590 --> 04:59:21.600 align:start position:0% change this tiing a bit from this div by 04:59:21.600 --> 04:59:27.150 align:start position:0% change this tiing a bit from this div by giving<04:59:21.840> it<04:59:22.000> a<04:59:22.200> flex<04:59:23.120> Flex<04:59:23.638> Das<04:59:23.920> Co<04:59:24.760> Flex<04:59:25.400> D1<04:59:26.400> w- 04:59:27.150 --> 04:59:27.160 align:start position:0% giving it a flex Flex Das Co Flex D1 w- 04:59:27.160 --> 04:59:31.750 align:start position:0% giving it a flex Flex Das Co Flex D1 w- full<04:59:28.040> small-<04:59:29.040> medium<04:59:30.040> and<04:59:30.280> on<04:59:30.520> large<04:59:30.878> devices 04:59:31.750 --> 04:59:31.760 align:start position:0% full small- medium and on large devices 04:59:31.760 --> 04:59:33.990 align:start position:0% full small- medium and on large devices base-<04:59:32.520> regular 04:59:33.990 --> 04:59:34.000 align:start position:0% base- regular 04:59:34.000 --> 04:59:35.590 align:start position:0% base- regular there<04:59:34.160> we<04:59:34.360> go<04:59:34.638> that's<04:59:34.840> going<04:59:34.958> to<04:59:35.160> position<04:59:35.480> it 04:59:35.590 --> 04:59:35.600 align:start position:0% there we go that's going to position it 04:59:35.600 --> 04:59:37.788 align:start position:0% there we go that's going to position it a<04:59:35.718> bit<04:59:35.920> better<04:59:36.760> and<04:59:37.000> finally<04:59:37.440> we<04:59:37.558> need<04:59:37.680> to 04:59:37.788 --> 04:59:37.798 align:start position:0% a bit better and finally we need to 04:59:37.798 --> 04:59:40.230 align:start position:0% a bit better and finally we need to render<04:59:38.120> the<04:59:38.280> post<04:59:38.638> stats<04:59:39.240> so<04:59:39.400> let's<04:59:39.638> go<04:59:39.840> below 04:59:40.230 --> 04:59:40.240 align:start position:0% render the post stats so let's go below 04:59:40.240 --> 04:59:43.470 align:start position:0% render the post stats so let's go below this<04:59:40.680> div<04:59:41.680> create<04:59:42.080> another<04:59:42.440> div<04:59:43.120> that's<04:59:43.320> going 04:59:43.470 --> 04:59:43.480 align:start position:0% this div create another div that's going 04:59:43.480 --> 04:59:47.230 align:start position:0% this div create another div that's going to<04:59:43.760> have<04:59:44.120> a<04:59:44.440> class<04:59:44.958> name<04:59:45.958> equal<04:59:46.280> to 04:59:47.230 --> 04:59:47.240 align:start position:0% to have a class name equal to 04:59:47.240 --> 04:59:50.670 align:start position:0% to have a class name equal to w-o<04:59:48.240> and<04:59:48.440> within<04:59:48.798> there<04:59:49.200> we<04:59:49.320> can<04:59:49.480> render<04:59:50.320> a 04:59:50.670 --> 04:59:50.680 align:start position:0% w-o and within there we can render a 04:59:50.680 --> 04:59:54.030 align:start position:0% w-o and within there we can render a post<04:59:51.480> stats<04:59:52.160> self-closing<04:59:53.000> component<04:59:53.920> which 04:59:54.030 --> 04:59:54.040 align:start position:0% post stats self-closing component which 04:59:54.040 --> 04:59:56.470 align:start position:0% post stats self-closing component which we<04:59:54.200> have<04:59:54.320> to<04:59:54.600> import<04:59:55.200> from<04:59:55.480> components<04:59:55.958> shared 04:59:56.470 --> 04:59:56.480 align:start position:0% we have to import from components shared 04:59:56.480 --> 04:59:57.470 align:start position:0% we have to import from components shared post 04:59:57.470 --> 04:59:57.480 align:start position:0% post 04:59:57.480 --> 05:00:02.948 align:start position:0% post stats<04:59:58.480> with<04:59:58.638> a<04:59:59.160> post<05:00:00.160> is<05:00:00.440> equal<05:00:00.798> to<05:00:01.558> post<05:00:02.558> a<05:00:02.718> use 05:00:02.948 --> 05:00:02.958 align:start position:0% stats with a post is equal to post a use 05:00:02.958 --> 05:00:06.868 align:start position:0% stats with a post is equal to post a use user<05:00:03.200> ID<05:00:03.840> equal<05:00:04.160> to<05:00:04.360> user.<05:00:05.240> ID<05:00:06.240> in<05:00:06.440> this<05:00:06.600> case 05:00:06.868 --> 05:00:06.878 align:start position:0% user ID equal to user. ID in this case 05:00:06.878 --> 05:00:08.868 align:start position:0% user ID equal to user. ID in this case it<05:00:07.040> complains<05:00:07.558> that<05:00:07.680> a<05:00:07.878> post<05:00:08.280> could<05:00:08.558> possibly 05:00:08.868 --> 05:00:08.878 align:start position:0% it complains that a post could possibly 05:00:08.878 --> 05:00:11.390 align:start position:0% it complains that a post could possibly be<05:00:09.040> undefined<05:00:09.760> so<05:00:09.920> we<05:00:10.040> can<05:00:10.160> say<05:00:10.480> post<05:00:10.958> or<05:00:11.240> an 05:00:11.390 --> 05:00:11.400 align:start position:0% be undefined so we can say post or an 05:00:11.400 --> 05:00:14.230 align:start position:0% be undefined so we can say post or an empty<05:00:11.798> object<05:00:12.360> so<05:00:12.558> it<05:00:12.680> doesn't<05:00:13.000> break<05:00:13.920> oh<05:00:14.120> but 05:00:14.230 --> 05:00:14.240 align:start position:0% empty object so it doesn't break oh but 05:00:14.240 --> 05:00:15.948 align:start position:0% empty object so it doesn't break oh but the<05:00:14.400> structure<05:00:14.760> of<05:00:14.878> an<05:00:15.000> empty<05:00:15.320> object<05:00:15.600> is<05:00:15.760> not 05:00:15.948 --> 05:00:15.958 align:start position:0% the structure of an empty object is not 05:00:15.958 --> 05:00:17.948 align:start position:0% the structure of an empty object is not the<05:00:16.160> same<05:00:16.760> as<05:00:16.920> the<05:00:17.040> structure<05:00:17.440> that<05:00:17.558> it<05:00:17.638> should 05:00:17.948 --> 05:00:17.958 align:start position:0% the same as the structure that it should 05:00:17.958 --> 05:00:20.750 align:start position:0% the same as the structure that it should have<05:00:18.520> so<05:00:18.680> in<05:00:18.798> the<05:00:19.000> post<05:00:19.320> stats<05:00:20.080> we<05:00:20.200> can<05:00:20.360> declare 05:00:20.750 --> 05:00:20.760 align:start position:0% have so in the post stats we can declare 05:00:20.760 --> 05:00:23.708 align:start position:0% have so in the post stats we can declare the<05:00:20.958> post<05:00:21.798> as<05:00:22.440> optional<05:00:23.120> maybe<05:00:23.360> it's<05:00:23.520> not 05:00:23.708 --> 05:00:23.718 align:start position:0% the post as optional maybe it's not 05:00:23.718 --> 05:00:25.868 align:start position:0% the post as optional maybe it's not going<05:00:23.798> to<05:00:23.958> be<05:00:24.200> there<05:00:24.958> but<05:00:25.160> then<05:00:25.400> it<05:00:25.558> lets<05:00:25.760> us 05:00:25.868 --> 05:00:25.878 align:start position:0% going to be there but then it lets us 05:00:25.878 --> 05:00:28.190 align:start position:0% going to be there but then it lets us know<05:00:26.400> please<05:00:26.798> add<05:00:27.160> question<05:00:27.400> marks<05:00:27.840> so<05:00:28.080> the 05:00:28.190 --> 05:00:28.200 align:start position:0% know please add question marks so the 05:00:28.200 --> 05:00:30.750 align:start position:0% know please add question marks so the app<05:00:28.440> doesn't<05:00:28.718> break<05:00:29.400> so<05:00:29.600> that's<05:00:29.840> exactly<05:00:30.400> what 05:00:30.750 --> 05:00:30.760 align:start position:0% app doesn't break so that's exactly what 05:00:30.760 --> 05:00:33.030 align:start position:0% app doesn't break so that's exactly what I'm<05:00:30.878> going<05:00:31.000> to<05:00:31.280> do<05:00:32.280> I'm<05:00:32.360> going<05:00:32.480> to<05:00:32.600> add<05:00:32.718> a 05:00:33.030 --> 05:00:33.040 align:start position:0% I'm going to do I'm going to add a 05:00:33.040 --> 05:00:35.670 align:start position:0% I'm going to do I'm going to add a question<05:00:33.280> mark<05:00:33.718> whenever<05:00:34.360> post<05:00:34.798> is 05:00:35.670 --> 05:00:35.680 align:start position:0% question mark whenever post is 05:00:35.680 --> 05:00:38.190 align:start position:0% question mark whenever post is mentioned<05:00:36.680> oh<05:00:37.000> but<05:00:37.200> then<05:00:37.360> it's<05:00:37.558> complaining 05:00:38.190 --> 05:00:38.200 align:start position:0% mentioned oh but then it's complaining 05:00:38.200 --> 05:00:41.230 align:start position:0% mentioned oh but then it's complaining that<05:00:38.440> we<05:00:38.680> actually<05:00:39.080> need<05:00:39.320> to<05:00:39.680> pass<05:00:40.400> a<05:00:40.600> post<05:00:40.920> ID 05:00:41.230 --> 05:00:41.240 align:start position:0% that we actually need to pass a post ID 05:00:41.240 --> 05:00:43.830 align:start position:0% that we actually need to pass a post ID to<05:00:41.360> the<05:00:41.480> save<05:00:41.878> post<05:00:42.638> so<05:00:42.920> I'm<05:00:43.040> going<05:00:43.120> to<05:00:43.400> add 05:00:43.830 --> 05:00:43.840 align:start position:0% to the save post so I'm going to add 05:00:43.840 --> 05:00:47.310 align:start position:0% to the save post so I'm going to add right<05:00:44.040> here<05:00:44.480> or<05:00:44.798> an<05:00:44.958> empty<05:00:45.718> string<05:00:46.718> or<05:00:47.160> an 05:00:47.310 --> 05:00:47.320 align:start position:0% right here or an empty string or an 05:00:47.320 --> 05:00:50.548 align:start position:0% right here or an empty string or an empty<05:00:47.600> string<05:00:48.000> as<05:00:48.160> well<05:00:48.680> and<05:00:48.958> now<05:00:49.320> we<05:00:49.440> are<05:00:49.680> good 05:00:50.548 --> 05:00:50.558 align:start position:0% empty string as well and now we are good 05:00:50.558 --> 05:00:52.990 align:start position:0% empty string as well and now we are good so<05:00:50.718> if<05:00:50.798> we<05:00:50.958> go<05:00:51.240> back<05:00:52.120> now<05:00:52.320> we<05:00:52.440> have<05:00:52.558> the<05:00:52.718> post 05:00:52.990 --> 05:00:53.000 align:start position:0% so if we go back now we have the post 05:00:53.000 --> 05:00:54.510 align:start position:0% so if we go back now we have the post stats<05:00:53.320> and<05:00:53.440> you<05:00:53.520> can<05:00:53.600> see<05:00:53.798> the<05:00:53.920> likes<05:00:54.320> and 05:00:54.510 --> 05:00:54.520 align:start position:0% stats and you can see the likes and 05:00:54.520 --> 05:00:57.548 align:start position:0% stats and you can see the likes and saves<05:00:55.040> as<05:00:55.240> well<05:00:55.440> on<05:00:55.600> the<05:00:55.760> bottom<05:00:56.760> this<05:00:57.120> is<05:00:57.240> a 05:00:57.548 --> 05:00:57.558 align:start position:0% saves as well on the bottom this is a 05:00:57.558 --> 05:01:00.910 align:start position:0% saves as well on the bottom this is a real<05:00:58.400> post<05:00:58.840> Details<05:00:59.440> page<05:01:00.120> looking<05:01:00.600> really 05:01:00.910 --> 05:01:00.920 align:start position:0% real post Details page looking really 05:01:00.920 --> 05:01:02.910 align:start position:0% real post Details page looking really similar<05:01:01.440> as<05:01:01.558> it<05:01:01.680> does<05:01:02.000> on<05:01:02.160> the<05:01:02.280> original 05:01:02.910 --> 05:01:02.920 align:start position:0% similar as it does on the original 05:01:02.920 --> 05:01:04.868 align:start position:0% similar as it does on the original Instagram<05:01:03.360> application<05:01:04.200> keep<05:01:04.360> in<05:01:04.520> mind<05:01:04.760> that 05:01:04.868 --> 05:01:04.878 align:start position:0% Instagram application keep in mind that 05:01:04.878 --> 05:01:07.190 align:start position:0% Instagram application keep in mind that you<05:01:04.958> can<05:01:05.120> go<05:01:05.280> to<05:01:05.440> the<05:01:05.600> edit<05:01:06.280> which<05:01:06.400> is<05:01:06.600> great 05:01:07.190 --> 05:01:07.200 align:start position:0% you can go to the edit which is great 05:01:07.200 --> 05:01:08.628 align:start position:0% you can go to the edit which is great and<05:01:07.320> you<05:01:07.400> can<05:01:07.558> also<05:01:07.760> delete<05:01:08.120> it<05:01:08.360> which<05:01:08.480> we're 05:01:08.628 --> 05:01:08.638 align:start position:0% and you can also delete it which we're 05:01:08.638 --> 05:01:11.548 align:start position:0% and you can also delete it which we're not<05:01:08.840> going<05:01:08.920> to<05:01:09.080> do<05:01:09.240> for<05:01:09.440> now<05:01:10.080> but<05:01:10.520> this<05:01:10.920> is 05:01:11.548 --> 05:01:11.558 align:start position:0% not going to do for now but this is 05:01:11.558 --> 05:01:14.150 align:start position:0% not going to do for now but this is wonderful<05:01:12.558> and<05:01:12.798> later<05:01:13.080> on<05:01:13.360> once<05:01:13.520> we<05:01:13.680> have<05:01:13.840> more 05:01:14.150 --> 05:01:14.160 align:start position:0% wonderful and later on once we have more 05:01:14.160 --> 05:01:16.548 align:start position:0% wonderful and later on once we have more posts<05:01:14.600> we're<05:01:14.760> going<05:01:14.920> to<05:01:15.280> also<05:01:15.680> Implement 05:01:16.548 --> 05:01:16.558 align:start position:0% posts we're going to also Implement 05:01:16.558 --> 05:01:18.868 align:start position:0% posts we're going to also Implement other<05:01:16.920> post<05:01:17.320> recommendations<05:01:18.320> right<05:01:18.520> here 05:01:18.868 --> 05:01:18.878 align:start position:0% other post recommendations right here 05:01:18.878 --> 05:01:20.830 align:start position:0% other post recommendations right here below<05:01:19.280> this<05:01:19.400> one<05:01:19.798> so<05:01:19.958> you<05:01:20.080> can<05:01:20.240> scroll<05:01:20.638> through 05:01:20.830 --> 05:01:20.840 align:start position:0% below this one so you can scroll through 05:01:20.840 --> 05:01:22.948 align:start position:0% below this one so you can scroll through the<05:01:21.040> app<05:01:21.360> and<05:01:21.558> find<05:01:21.920> all<05:01:22.160> the<05:01:22.320> post<05:01:22.638> that<05:01:22.718> you 05:01:22.948 --> 05:01:22.958 align:start position:0% the app and find all the post that you 05:01:22.958 --> 05:01:25.548 align:start position:0% the app and find all the post that you like<05:01:23.958> but<05:01:24.240> with<05:01:24.400> that<05:01:24.558> said<05:01:24.760> we're<05:01:25.000> making 05:01:25.548 --> 05:01:25.558 align:start position:0% like but with that said we're making 05:01:25.558 --> 05:01:28.350 align:start position:0% like but with that said we're making amazing<05:01:26.200> progress<05:01:27.120> we<05:01:27.280> have<05:01:27.440> the 05:01:28.350 --> 05:01:28.360 align:start position:0% amazing progress we have the 05:01:28.360 --> 05:01:32.110 align:start position:0% amazing progress we have the homepage<05:01:29.360> we<05:01:29.558> have<05:01:29.840> the<05:01:30.200> create<05:01:30.638> post<05:01:31.040> page<05:01:31.920> we 05:01:32.110 --> 05:01:32.120 align:start position:0% homepage we have the create post page we 05:01:32.120 --> 05:01:34.708 align:start position:0% homepage we have the create post page we also<05:01:32.480> have<05:01:32.680> the<05:01:32.878> the<05:01:33.040> edit<05:01:33.400> page<05:01:34.120> we<05:01:34.240> can<05:01:34.480> like 05:01:34.708 --> 05:01:34.718 align:start position:0% also have the the edit page we can like 05:01:34.718 --> 05:01:38.110 align:start position:0% also have the the edit page we can like and<05:01:34.958> unlike<05:01:35.798> save<05:01:36.200> and<05:01:36.638> unsave<05:01:37.638> as<05:01:37.798> well<05:01:37.958> as 05:01:38.110 --> 05:01:38.120 align:start position:0% and unlike save and unsave as well as 05:01:38.120 --> 05:01:41.788 align:start position:0% and unlike save and unsave as well as visit<05:01:38.400> the<05:01:38.558> post<05:01:39.200> details<05:01:40.200> this<05:01:40.440> is<05:01:40.798> amazing 05:01:41.788 --> 05:01:41.798 align:start position:0% visit the post details this is amazing 05:01:41.798 --> 05:01:43.910 align:start position:0% visit the post details this is amazing so<05:01:42.080> let's<05:01:42.280> go<05:01:42.440> ahead<05:01:42.718> and<05:01:42.958> focus<05:01:43.440> on<05:01:43.638> the 05:01:43.910 --> 05:01:43.920 align:start position:0% so let's go ahead and focus on the 05:01:43.920 --> 05:01:46.430 align:start position:0% so let's go ahead and focus on the second<05:01:44.320> major<05:01:44.760> page<05:01:44.958> of<05:01:45.120> our<05:01:45.360> app<05:01:46.080> which<05:01:46.200> is 05:01:46.430 --> 05:01:46.440 align:start position:0% second major page of our app which is 05:01:46.440 --> 05:01:49.390 align:start position:0% second major page of our app which is the<05:01:46.878> explore<05:01:47.520> page<05:01:48.520> here<05:01:48.878> we're<05:01:49.040> going<05:01:49.160> to 05:01:49.390 --> 05:01:49.400 align:start position:0% the explore page here we're going to 05:01:49.400 --> 05:01:51.948 align:start position:0% the explore page here we're going to expand<05:01:49.840> it<05:01:50.080> further<05:01:50.840> so<05:01:51.120> no<05:01:51.320> longer<05:01:51.680> it<05:01:51.798> will 05:01:51.948 --> 05:01:51.958 align:start position:0% expand it further so no longer it will 05:01:51.958 --> 05:01:53.910 align:start position:0% expand it further so no longer it will only<05:01:52.200> be<05:01:52.360> a<05:01:52.520> home<05:01:52.920> where<05:01:53.040> we<05:01:53.160> fetch<05:01:53.400> the<05:01:53.520> latest 05:01:53.910 --> 05:01:53.920 align:start position:0% only be a home where we fetch the latest 05:01:53.920 --> 05:01:55.750 align:start position:0% only be a home where we fetch the latest post<05:01:54.520> we're<05:01:54.638> going<05:01:54.760> to<05:01:54.920> have<05:01:55.080> some<05:01:55.280> search 05:01:55.750 --> 05:01:55.760 align:start position:0% post we're going to have some search 05:01:55.760 --> 05:01:57.390 align:start position:0% post we're going to have some search Logic<05:01:56.280> we're<05:01:56.400> going<05:01:56.520> to<05:01:56.638> have<05:01:56.840> the<05:01:57.040> infinite 05:01:57.390 --> 05:01:57.400 align:start position:0% Logic we're going to have the infinite 05:01:57.400 --> 05:02:01.830 align:start position:0% Logic we're going to have the infinite scroll<05:01:57.878> logic<05:01:58.718> and<05:01:59.120> a<05:01:59.360> lot<05:02:00.080> more<05:02:01.080> so<05:02:01.440> let's<05:02:01.680> get 05:02:01.830 --> 05:02:01.840 align:start position:0% scroll logic and a lot more so let's get 05:02:01.840 --> 05:02:04.350 align:start position:0% scroll logic and a lot more so let's get started<05:02:02.400> with<05:02:02.600> a<05:02:02.878> explore<05:02:03.280> next<05:02:03.920> by<05:02:04.080> putting 05:02:04.350 --> 05:02:04.360 align:start position:0% started with a explore next by putting 05:02:04.360 --> 05:02:06.910 align:start position:0% started with a explore next by putting this<05:02:04.480> to<05:02:04.638> the<05:02:04.878> side<05:02:05.558> and<05:02:05.680> then<05:02:05.920> opening<05:02:06.638> the 05:02:06.910 --> 05:02:06.920 align:start position:0% this to the side and then opening the 05:02:06.920 --> 05:02:10.628 align:start position:0% this to the side and then opening the explore<05:02:08.040> page<05:02:09.040> to<05:02:09.400> get<05:02:09.680> started<05:02:10.240> with<05:02:10.400> our 05:02:10.628 --> 05:02:10.638 align:start position:0% explore page to get started with our 05:02:10.638 --> 05:02:13.030 align:start position:0% explore page to get started with our explore<05:02:11.200> page<05:02:11.798> we<05:02:11.920> can<05:02:12.120> first<05:02:12.558> wrap 05:02:13.030 --> 05:02:13.040 align:start position:0% explore page we can first wrap 05:02:13.040 --> 05:02:15.390 align:start position:0% explore page we can first wrap everything<05:02:13.718> in<05:02:13.958> a<05:02:14.200> div<05:02:14.718> that's<05:02:14.878> going<05:02:15.080> to<05:02:15.240> have 05:02:15.390 --> 05:02:15.400 align:start position:0% everything in a div that's going to have 05:02:15.400 --> 05:02:19.510 align:start position:0% everything in a div that's going to have a<05:02:15.680> class<05:02:16.080> name<05:02:16.798> equal<05:02:17.160> to<05:02:17.680> explore<05:02:18.480> Das 05:02:19.510 --> 05:02:19.520 align:start position:0% a class name equal to explore Das 05:02:19.520 --> 05:02:21.910 align:start position:0% a class name equal to explore Das container<05:02:20.520> then<05:02:20.920> within<05:02:21.200> it<05:02:21.480> we<05:02:21.558> can<05:02:21.718> have 05:02:21.910 --> 05:02:21.920 align:start position:0% container then within it we can have 05:02:21.920 --> 05:02:24.150 align:start position:0% container then within it we can have another<05:02:22.240> div<05:02:22.840> that's<05:02:23.000> going<05:02:23.160> to<05:02:23.400> have<05:02:23.558> a<05:02:23.798> class 05:02:24.150 --> 05:02:24.160 align:start position:0% another div that's going to have a class 05:02:24.160 --> 05:02:27.750 align:start position:0% another div that's going to have a class name<05:02:24.798> equal<05:02:25.120> to<05:02:25.798> explore<05:02:26.638> Das 05:02:27.750 --> 05:02:27.760 align:start position:0% name equal to explore Das 05:02:27.760 --> 05:02:30.270 align:start position:0% name equal to explore Das inore 05:02:30.270 --> 05:02:30.280 align:start position:0% inore 05:02:30.280 --> 05:02:32.590 align:start position:0% inore container<05:02:31.280> within<05:02:31.760> that<05:02:31.958> one<05:02:32.240> we're<05:02:32.360> going<05:02:32.480> to 05:02:32.590 --> 05:02:32.600 align:start position:0% container within that one we're going to 05:02:32.600 --> 05:02:33.868 align:start position:0% container within that one we're going to have<05:02:32.840> have<05:02:33.040> an 05:02:33.868 --> 05:02:33.878 align:start position:0% have have an 05:02:33.878 --> 05:02:38.670 align:start position:0% have have an H2<05:02:34.878> this<05:02:35.080> H2<05:02:35.718> is<05:02:35.840> going<05:02:36.000> to<05:02:36.160> say<05:02:36.520> search<05:02:37.680> posts 05:02:38.670 --> 05:02:38.680 align:start position:0% H2 this H2 is going to say search posts 05:02:38.680 --> 05:02:40.868 align:start position:0% H2 this H2 is going to say search posts and<05:02:38.920> it's<05:02:39.080> going<05:02:39.240> to<05:02:39.400> have<05:02:39.520> a<05:02:39.718> class<05:02:40.080> name 05:02:40.868 --> 05:02:40.878 align:start position:0% and it's going to have a class name 05:02:40.878 --> 05:02:45.990 align:start position:0% and it's going to have a class name equal<05:02:41.200> to<05:02:41.558> H3<05:02:42.520> D<05:02:42.840> bold<05:02:43.680> on<05:02:43.920> medium<05:02:44.400> devices<05:02:45.120> H2 05:02:45.990 --> 05:02:46.000 align:start position:0% equal to H3 D bold on medium devices H2 05:02:46.000 --> 05:02:50.788 align:start position:0% equal to H3 D bold on medium devices H2 Das<05:02:46.360> bold<05:02:47.360> and<05:02:47.680> w-<05:02:48.520> full<05:02:49.520> now<05:02:49.920> right<05:02:50.120> below<05:02:50.480> it 05:02:50.788 --> 05:02:50.798 align:start position:0% Das bold and w- full now right below it 05:02:50.798 --> 05:02:53.230 align:start position:0% Das bold and w- full now right below it we<05:02:50.920> can<05:02:51.120> have<05:02:51.280> a<05:02:51.480> div<05:02:52.240> that's<05:02:52.440> going<05:02:52.600> to<05:02:52.798> have<05:02:53.000> a 05:02:53.230 --> 05:02:53.240 align:start position:0% we can have a div that's going to have a 05:02:53.240 --> 05:02:57.910 align:start position:0% we can have a div that's going to have a class<05:02:53.638> name<05:02:54.558> equal<05:02:54.878> to<05:02:55.360> flex<05:02:56.360> gap<05:02:56.718> of<05:02:56.920> one 05:02:57.910 --> 05:02:57.920 align:start position:0% class name equal to flex gap of one 05:02:57.920 --> 05:02:59.628 align:start position:0% class name equal to flex gap of one padding<05:02:58.320> X<05:02:58.680> of 05:02:59.628 --> 05:02:59.638 align:start position:0% padding X of 05:02:59.638 --> 05:03:05.628 align:start position:0% padding X of four<05:03:00.638> w-<05:03:01.400> full<05:03:02.200> rounded<05:03:03.000> -<05:03:03.360> LG<05:03:04.320> and<05:03:04.558> a<05:03:04.760> BG<05:03:05.280> of 05:03:05.628 --> 05:03:05.638 align:start position:0% four w- full rounded - LG and a BG of 05:03:05.638 --> 05:03:08.750 align:start position:0% four w- full rounded - LG and a BG of dark<05:03:05.958> 4<05:03:06.840> we<05:03:06.958> are<05:03:07.120> now<05:03:07.360> starting<05:03:07.680> to<05:03:07.878> form<05:03:08.558> the 05:03:08.750 --> 05:03:08.760 align:start position:0% dark 4 we are now starting to form the 05:03:08.760 --> 05:03:11.430 align:start position:0% dark 4 we are now starting to form the UI<05:03:09.120> for<05:03:09.280> our<05:03:09.480> search<05:03:10.280> so<05:03:10.558> let's<05:03:10.840> render<05:03:11.240> an 05:03:11.430 --> 05:03:11.440 align:start position:0% UI for our search so let's render an 05:03:11.440 --> 05:03:14.230 align:start position:0% UI for our search so let's render an image<05:03:12.440> and<05:03:12.718> that<05:03:12.920> image<05:03:13.320> is<05:03:13.480> going<05:03:13.680> to<05:03:13.878> have<05:03:14.040> a 05:03:14.230 --> 05:03:14.240 align:start position:0% image and that image is going to have a 05:03:14.240 --> 05:03:19.590 align:start position:0% image and that image is going to have a source<05:03:14.958> equal<05:03:15.240> to<05:03:15.840> SL<05:03:16.480> assets<05:03:17.480> slash<05:03:18.120> ions<05:03:19.120> SL 05:03:19.590 --> 05:03:19.600 align:start position:0% source equal to SL assets slash ions SL 05:03:19.600 --> 05:03:20.868 align:start position:0% source equal to SL assets slash ions SL search. 05:03:20.868 --> 05:03:20.878 align:start position:0% search. 05:03:20.878 --> 05:03:24.030 align:start position:0% search. SVG<05:03:21.878> there<05:03:22.040> we<05:03:22.240> go<05:03:23.040> and<05:03:23.240> then<05:03:23.520> we<05:03:23.638> can<05:03:23.760> give<05:03:23.878> it 05:03:24.030 --> 05:03:24.040 align:start position:0% SVG there we go and then we can give it 05:03:24.040 --> 05:03:27.990 align:start position:0% SVG there we go and then we can give it a<05:03:24.240> width<05:03:24.600> of<05:03:24.840> 24<05:03:25.798> and<05:03:26.000> a<05:03:26.280> height<05:03:26.638> of<05:03:26.878> 24<05:03:27.798> and 05:03:27.990 --> 05:03:28.000 align:start position:0% a width of 24 and a height of 24 and 05:03:28.000 --> 05:03:31.628 align:start position:0% a width of 24 and a height of 24 and then<05:03:28.200> I'll<05:03:28.558> tag<05:03:28.958> off<05:03:29.680> search<05:03:30.680> finally<05:03:31.360> let's 05:03:31.628 --> 05:03:31.638 align:start position:0% then I'll tag off search finally let's 05:03:31.638 --> 05:03:33.230 align:start position:0% then I'll tag off search finally let's create<05:03:31.878> an<05:03:32.080> input 05:03:33.230 --> 05:03:33.240 align:start position:0% create an input 05:03:33.240 --> 05:03:35.470 align:start position:0% create an input this<05:03:33.440> is<05:03:33.600> going<05:03:33.760> to<05:03:33.920> be<05:03:34.080> a<05:03:34.240> self-closing<05:03:35.080> input 05:03:35.470 --> 05:03:35.480 align:start position:0% this is going to be a self-closing input 05:03:35.480 --> 05:03:38.310 align:start position:0% this is going to be a self-closing input component<05:03:36.240> coming<05:03:36.520> from<05:03:36.798> components<05:03:37.520> UI 05:03:38.310 --> 05:03:38.320 align:start position:0% component coming from components UI 05:03:38.320 --> 05:03:41.030 align:start position:0% component coming from components UI input<05:03:39.320> it's<05:03:39.480> going<05:03:39.638> to<05:03:39.798> have<05:03:39.958> a<05:03:40.160> type<05:03:40.638> is<05:03:40.798> equal 05:03:41.030 --> 05:03:41.040 align:start position:0% input it's going to have a type is equal 05:03:41.040 --> 05:03:44.670 align:start position:0% input it's going to have a type is equal to<05:03:41.400> text<05:03:42.400> a<05:03:43.120> placeholder<05:03:44.120> that's<05:03:44.360> going<05:03:44.520> to 05:03:44.670 --> 05:03:44.680 align:start position:0% to text a placeholder that's going to 05:03:44.680 --> 05:03:49.390 align:start position:0% to text a placeholder that's going to say<05:03:45.760> search<05:03:46.760> a<05:03:47.040> class<05:03:47.400> name<05:03:48.000> equal<05:03:48.320> to<05:03:48.638> explore 05:03:49.390 --> 05:03:49.400 align:start position:0% say search a class name equal to explore 05:03:49.400 --> 05:03:51.070 align:start position:0% say search a class name equal to explore Das 05:03:51.070 --> 05:03:51.080 align:start position:0% Das 05:03:51.080 --> 05:03:54.150 align:start position:0% Das search<05:03:52.080> and<05:03:52.280> of<05:03:52.440> course<05:03:53.000> what<05:03:53.240> would<05:03:53.558> an<05:03:53.760> input 05:03:54.150 --> 05:03:54.160 align:start position:0% search and of course what would an input 05:03:54.160 --> 05:03:56.830 align:start position:0% search and of course what would an input be<05:03:54.680> without<05:03:55.000> a<05:03:55.320> value<05:03:56.120> which<05:03:56.280> is<05:03:56.360> going<05:03:56.638> to<05:03:56.718> be 05:03:56.830 --> 05:03:56.840 align:start position:0% be without a value which is going to be 05:03:56.840 --> 05:03:59.470 align:start position:0% be without a value which is going to be a<05:03:56.958> use<05:03:57.280> state<05:03:57.680> right<05:03:57.840> here<05:03:57.958> on<05:03:58.240> top<05:03:59.000> so<05:03:59.160> we<05:03:59.280> can 05:03:59.470 --> 05:03:59.480 align:start position:0% a use state right here on top so we can 05:03:59.480 --> 05:04:02.708 align:start position:0% a use state right here on top so we can use<05:03:59.798> a<05:04:00.040> state<05:04:00.360> snippet<05:04:01.360> and<05:04:01.558> we<05:04:01.638> can<05:04:01.840> call<05:04:02.120> it 05:04:02.708 --> 05:04:02.718 align:start position:0% use a state snippet and we can call it 05:04:02.718 --> 05:04:07.150 align:start position:0% use a state snippet and we can call it search<05:04:03.760> value<05:04:04.760> set<05:04:05.120> search<05:04:05.520> value<05:04:06.040> as<05:04:06.240> well 05:04:07.150 --> 05:04:07.160 align:start position:0% search value set search value as well 05:04:07.160 --> 05:04:08.670 align:start position:0% search value set search value as well and<05:04:07.320> then<05:04:07.480> at<05:04:07.600> the<05:04:07.798> start<05:04:08.080> it's<05:04:08.240> going<05:04:08.400> to<05:04:08.520> be 05:04:08.670 --> 05:04:08.680 align:start position:0% and then at the start it's going to be 05:04:08.680 --> 05:04:10.990 align:start position:0% and then at the start it's going to be set<05:04:08.878> to<05:04:09.000> an<05:04:09.120> empty<05:04:09.480> string<05:04:10.320> and<05:04:10.600> we<05:04:10.680> of<05:04:10.798> course 05:04:10.990 --> 05:04:11.000 align:start position:0% set to an empty string and we of course 05:04:11.000 --> 05:04:14.990 align:start position:0% set to an empty string and we of course have<05:04:11.120> to<05:04:11.320> import<05:04:12.040> use<05:04:12.520> State<05:04:13.360> coming<05:04:13.718> from 05:04:14.990 --> 05:04:15.000 align:start position:0% have to import use State coming from 05:04:15.000 --> 05:04:18.910 align:start position:0% have to import use State coming from react<05:04:16.000> now<05:04:16.240> we<05:04:16.360> can<05:04:16.558> use<05:04:16.958> this<05:04:17.638> search<05:04:18.160> value 05:04:18.910 --> 05:04:18.920 align:start position:0% react now we can use this search value 05:04:18.920 --> 05:04:21.948 align:start position:0% react now we can use this search value right<05:04:19.200> here<05:04:20.200> and<05:04:20.680> the<05:04:20.840> input<05:04:21.320> also<05:04:21.600> needs 05:04:21.948 --> 05:04:21.958 align:start position:0% right here and the input also needs 05:04:21.958 --> 05:04:24.110 align:start position:0% right here and the input also needs something<05:04:22.240> to<05:04:22.440> modify<05:04:22.958> that<05:04:23.200> value<05:04:23.840> which<05:04:24.000> is 05:04:24.110 --> 05:04:24.120 align:start position:0% something to modify that value which is 05:04:24.120 --> 05:04:27.230 align:start position:0% something to modify that value which is going<05:04:24.280> to<05:04:24.440> be<05:04:24.600> an<05:04:24.798> onchange 05:04:27.230 --> 05:04:27.240 align:start position:0% going to be an onchange 05:04:27.240 --> 05:04:30.030 align:start position:0% going to be an onchange Handler<05:04:28.240> this<05:04:28.440> onchange<05:04:29.280> is<05:04:29.440> going<05:04:29.558> to<05:04:29.718> get<05:04:29.840> an 05:04:30.030 --> 05:04:30.040 align:start position:0% Handler this onchange is going to get an 05:04:30.040 --> 05:04:32.628 align:start position:0% Handler this onchange is going to get an event<05:04:30.798> and<05:04:31.040> it's<05:04:31.240> going<05:04:31.400> to<05:04:31.638> set<05:04:32.000> search<05:04:32.360> value 05:04:32.628 --> 05:04:32.638 align:start position:0% event and it's going to set search value 05:04:32.638 --> 05:04:36.350 align:start position:0% event and it's going to set search value value<05:04:33.080> to<05:04:33.240> be<05:04:33.440> equal<05:04:33.718> to<05:04:34.120> e.<05:04:34.840> target.<05:04:35.840> value 05:04:36.350 --> 05:04:36.360 align:start position:0% value to be equal to e. target. value 05:04:36.360 --> 05:04:38.390 align:start position:0% value to be equal to e. target. value like<05:04:36.558> so<05:04:37.040> so<05:04:37.200> we<05:04:37.320> can<05:04:37.480> immediately<05:04:38.040> get<05:04:38.240> the 05:04:38.390 --> 05:04:38.400 align:start position:0% like so so we can immediately get the 05:04:38.400 --> 05:04:41.390 align:start position:0% like so so we can immediately get the value<05:04:39.000> and<05:04:39.120> then<05:04:39.280> modify<05:04:39.760> it<05:04:40.760> now<05:04:41.000> let's<05:04:41.160> go 05:04:41.390 --> 05:04:41.400 align:start position:0% value and then modify it now let's go 05:04:41.400 --> 05:04:44.270 align:start position:0% value and then modify it now let's go two<05:04:41.680> devs<05:04:42.360> below<05:04:43.360> and<05:04:43.480> then<05:04:43.760> there<05:04:44.000> we<05:04:44.120> can 05:04:44.270 --> 05:04:44.280 align:start position:0% two devs below and then there we can 05:04:44.280 --> 05:04:46.350 align:start position:0% two devs below and then there we can start<05:04:44.638> creating<05:04:45.200> the<05:04:45.638> what<05:04:45.798> is<05:04:45.958> about<05:04:46.160> to 05:04:46.350 --> 05:04:46.360 align:start position:0% start creating the what is about to 05:04:46.360 --> 05:04:50.310 align:start position:0% start creating the what is about to become<05:04:46.878> the<05:04:47.558> popular<05:04:48.558> the<05:04:48.718> explore<05:04:49.200> page<05:04:50.000> so 05:04:50.310 --> 05:04:50.320 align:start position:0% become the popular the explore page so 05:04:50.320 --> 05:04:52.990 align:start position:0% become the popular the explore page so let's<05:04:50.558> give<05:04:50.718> this<05:04:50.920> div<05:04:51.200> a<05:04:51.440> class<05:04:51.840> name<05:04:52.680> equal 05:04:52.990 --> 05:04:53.000 align:start position:0% let's give this div a class name equal 05:04:53.000 --> 05:04:55.990 align:start position:0% let's give this div a class name equal to<05:04:54.120> flex<05:04:55.120> Das 05:04:55.990 --> 05:04:56.000 align:start position:0% to flex Das 05:04:56.000 --> 05:05:01.470 align:start position:0% to flex Das between<05:04:57.000> w-<05:04:57.798> full<05:04:58.080> for<05:04:58.280> full<05:04:58.638> width<05:04:59.638> Max<05:05:00.160> DW 05:05:01.470 --> 05:05:01.480 align:start position:0% between w- full for full width Max DW 05:05:01.480 --> 05:05:03.430 align:start position:0% between w- full for full width Max DW d5xl 05:05:03.430 --> 05:05:03.440 align:start position:0% d5xl 05:05:03.440 --> 05:05:05.708 align:start position:0% d5xl and<05:05:03.680> margin<05:05:04.120> top<05:05:04.360> of<05:05:04.520> 16<05:05:05.000> to<05:05:05.200> divide<05:05:05.480> it<05:05:05.600> from 05:05:05.708 --> 05:05:05.718 align:start position:0% and margin top of 16 to divide it from 05:05:05.718 --> 05:05:08.350 align:start position:0% and margin top of 16 to divide it from the<05:05:05.840> search<05:05:06.558> and<05:05:06.718> margin<05:05:07.160> bottom<05:05:07.480> of 05:05:08.350 --> 05:05:08.360 align:start position:0% the search and margin bottom of 05:05:08.360 --> 05:05:11.510 align:start position:0% the search and margin bottom of seven<05:05:09.360> in<05:05:09.638> there<05:05:10.040> we<05:05:10.160> can<05:05:10.320> have<05:05:10.520> an<05:05:10.638> H3<05:05:11.320> that's 05:05:11.510 --> 05:05:11.520 align:start position:0% seven in there we can have an H3 that's 05:05:11.520 --> 05:05:14.110 align:start position:0% seven in there we can have an H3 that's going<05:05:11.680> to<05:05:11.798> be<05:05:12.000> similar<05:05:12.360> to<05:05:12.520> this<05:05:12.798> H2<05:05:13.798> and<05:05:14.000> we're 05:05:14.110 --> 05:05:14.120 align:start position:0% going to be similar to this H2 and we're 05:05:14.120 --> 05:05:17.270 align:start position:0% going to be similar to this H2 and we're going<05:05:14.240> to<05:05:14.360> change<05:05:14.638> the<05:05:14.840> styling<05:05:15.638> to<05:05:15.840> be<05:05:16.080> body- 05:05:17.270 --> 05:05:17.280 align:start position:0% going to change the styling to be body- 05:05:17.280 --> 05:05:21.310 align:start position:0% going to change the styling to be body- bold<05:05:18.280> as<05:05:18.440> Wells<05:05:18.680> on<05:05:18.798> medium<05:05:19.360> devices<05:05:20.360> H3<05:05:21.080> Das 05:05:21.310 --> 05:05:21.320 align:start position:0% bold as Wells on medium devices H3 Das 05:05:21.320 --> 05:05:24.708 align:start position:0% bold as Wells on medium devices H3 Das bold<05:05:22.080> and<05:05:22.200> we<05:05:22.320> can<05:05:22.440> change<05:05:22.680> it<05:05:22.840> to<05:05:23.400> H3<05:05:24.400> there<05:05:24.558> we 05:05:24.708 --> 05:05:24.718 align:start position:0% bold and we can change it to H3 there we 05:05:24.718 --> 05:05:27.270 align:start position:0% bold and we can change it to H3 there we go<05:05:25.480> instead<05:05:25.760> of<05:05:25.878> search<05:05:26.200> posts<05:05:26.840> it's<05:05:27.000> going<05:05:27.120> to 05:05:27.270 --> 05:05:27.280 align:start position:0% go instead of search posts it's going to 05:05:27.280 --> 05:05:29.788 align:start position:0% go instead of search posts it's going to say<05:05:27.798> popular 05:05:29.788 --> 05:05:29.798 align:start position:0% say popular 05:05:29.798 --> 05:05:33.070 align:start position:0% say popular today<05:05:30.798> right<05:05:31.040> below<05:05:31.360> it<05:05:32.200> we<05:05:32.320> can<05:05:32.480> can<05:05:32.600> create<05:05:32.920> a 05:05:33.070 --> 05:05:33.080 align:start position:0% today right below it we can can create a 05:05:33.080 --> 05:05:35.590 align:start position:0% today right below it we can can create a new<05:05:33.360> div<05:05:34.280> that's<05:05:34.480> going<05:05:34.638> to<05:05:34.840> have<05:05:35.000> a<05:05:35.280> class 05:05:35.590 --> 05:05:35.600 align:start position:0% new div that's going to have a class 05:05:35.600 --> 05:05:39.990 align:start position:0% new div that's going to have a class name<05:05:36.320> equal<05:05:36.600> to<05:05:36.878> flex<05:05:37.798> Das<05:05:38.440> Center<05:05:39.440> gap<05:05:39.680> of 05:05:39.990 --> 05:05:40.000 align:start position:0% name equal to flex Das Center gap of 05:05:40.000 --> 05:05:44.030 align:start position:0% name equal to flex Das Center gap of three<05:05:41.000> background<05:05:41.480> of<05:05:41.760> dark<05:05:42.360> three<05:05:43.200> rounded 05:05:44.030 --> 05:05:44.040 align:start position:0% three background of dark three rounded 05:05:44.040 --> 05:05:47.788 align:start position:0% three background of dark three rounded Das<05:05:44.480> excl<05:05:45.480> padding<05:05:45.840> X<05:05:46.080> of<05:05:46.280> four<05:05:47.080> padding<05:05:47.440> y<05:05:47.638> of 05:05:47.788 --> 05:05:47.798 align:start position:0% Das excl padding X of four padding y of 05:05:47.798 --> 05:05:51.310 align:start position:0% Das excl padding X of four padding y of two<05:05:48.520> and<05:05:48.718> cursor<05:05:49.320> Das<05:05:49.920> pointer<05:05:50.920> this<05:05:51.040> is<05:05:51.160> going 05:05:51.310 --> 05:05:51.320 align:start position:0% two and cursor Das pointer this is going 05:05:51.320 --> 05:05:54.470 align:start position:0% two and cursor Das pointer this is going to<05:05:51.440> be<05:05:51.600> a<05:05:51.798> button<05:05:52.280> to<05:05:52.520> filter<05:05:53.080> our<05:05:53.360> posts<05:05:54.320> so 05:05:54.470 --> 05:05:54.480 align:start position:0% to be a button to filter our posts so 05:05:54.480 --> 05:05:56.628 align:start position:0% to be a button to filter our posts so let's<05:05:54.680> create<05:05:54.878> a<05:05:55.040> P<05:05:55.320> tag<05:05:55.718> that's<05:05:55.920> going<05:05:56.080> to<05:05:56.200> say 05:05:56.628 --> 05:05:56.638 align:start position:0% let's create a P tag that's going to say 05:05:56.638 --> 05:06:00.030 align:start position:0% let's create a P tag that's going to say all<05:05:57.480> at<05:05:57.600> the<05:05:57.760> start<05:05:58.040> we're<05:05:58.200> filtering<05:05:58.680> by<05:05:59.040> all 05:06:00.030 --> 05:06:00.040 align:start position:0% all at the start we're filtering by all 05:06:00.040 --> 05:06:02.628 align:start position:0% all at the start we're filtering by all we<05:06:00.160> can<05:06:00.320> give<05:06:00.440> it<05:06:00.558> a<05:06:00.760> class<05:06:01.120> name<05:06:01.840> equal<05:06:02.160> to 05:06:02.628 --> 05:06:02.638 align:start position:0% we can give it a class name equal to 05:06:02.638 --> 05:06:06.590 align:start position:0% we can give it a class name equal to small<05:06:03.638> medium<05:06:04.638> on<05:06:04.840> medium<05:06:05.280> devices<05:06:05.958> base 05:06:06.590 --> 05:06:06.600 align:start position:0% small medium on medium devices base 05:06:06.600 --> 05:06:11.868 align:start position:0% small medium on medium devices base medium<05:06:07.600> and<05:06:07.920> text-<05:06:09.000> light-2<05:06:10.000> for<05:06:10.440> the<05:06:10.878> color 05:06:11.868 --> 05:06:11.878 align:start position:0% medium and text- light-2 for the color 05:06:11.878 --> 05:06:14.110 align:start position:0% medium and text- light-2 for the color below<05:06:12.280> this<05:06:12.480> P<05:06:12.760> tag<05:06:13.120> we<05:06:13.240> can<05:06:13.400> render<05:06:13.920> a 05:06:14.110 --> 05:06:14.120 align:start position:0% below this P tag we can render a 05:06:14.120 --> 05:06:16.708 align:start position:0% below this P tag we can render a self-closing<05:06:15.040> image<05:06:15.400> tag<05:06:16.160> that's<05:06:16.360> going<05:06:16.520> to 05:06:16.708 --> 05:06:16.718 align:start position:0% self-closing image tag that's going to 05:06:16.718 --> 05:06:22.590 align:start position:0% self-closing image tag that's going to have<05:06:16.840> a<05:06:17.040> source<05:06:17.878> equal<05:06:18.520> to<05:06:19.520> SL<05:06:20.080> assets<05:06:21.080> SL<05:06:21.600> ions 05:06:22.590 --> 05:06:22.600 align:start position:0% have a source equal to SL assets SL ions 05:06:22.600 --> 05:06:24.670 align:start position:0% have a source equal to SL assets SL ions SL<05:06:23.080> filter. 05:06:24.670 --> 05:06:24.680 align:start position:0% SL filter. 05:06:24.680 --> 05:06:28.350 align:start position:0% SL filter. SVG<05:06:25.680> it's<05:06:25.840> going<05:06:26.000> to<05:06:26.120> have<05:06:26.240> a<05:06:26.520> width<05:06:26.920> of<05:06:27.120> 20<05:06:28.040> a 05:06:28.350 --> 05:06:28.360 align:start position:0% SVG it's going to have a width of 20 a 05:06:28.360 --> 05:06:33.510 align:start position:0% SVG it's going to have a width of 20 a height<05:06:28.958> of<05:06:29.200> 20<05:06:30.120> and<05:06:30.558> an<05:06:30.718> Al<05:06:31.080> tag<05:06:31.558> of<05:06:31.958> filter 05:06:33.510 --> 05:06:33.520 align:start position:0% height of 20 and an Al tag of filter 05:06:33.520 --> 05:06:35.430 align:start position:0% height of 20 and an Al tag of filter there<05:06:33.680> we<05:06:33.878> go<05:06:34.200> so<05:06:34.400> now<05:06:34.638> this<05:06:34.760> is<05:06:34.920> looking 05:06:35.430 --> 05:06:35.440 align:start position:0% there we go so now this is looking 05:06:35.440 --> 05:06:38.150 align:start position:0% there we go so now this is looking really<05:06:35.798> good<05:06:36.520> and<05:06:36.718> now<05:06:37.120> we<05:06:37.200> can<05:06:37.360> go<05:06:37.558> two<05:06:37.798> divs 05:06:38.150 --> 05:06:38.160 align:start position:0% really good and now we can go two divs 05:06:38.160 --> 05:06:40.350 align:start position:0% really good and now we can go two divs below<05:06:38.680> and<05:06:38.798> we<05:06:38.920> can<05:06:39.040> show<05:06:39.280> the<05:06:39.480> results<05:06:40.080> of 05:06:40.350 --> 05:06:40.360 align:start position:0% below and we can show the results of 05:06:40.360 --> 05:06:42.670 align:start position:0% below and we can show the results of what's<05:06:40.600> popular<05:06:40.958> today<05:06:41.878> so<05:06:42.040> let's<05:06:42.240> create<05:06:42.520> a 05:06:42.670 --> 05:06:42.680 align:start position:0% what's popular today so let's create a 05:06:42.680 --> 05:06:44.590 align:start position:0% what's popular today so let's create a new<05:06:42.920> Dev<05:06:43.400> that's<05:06:43.558> going<05:06:43.718> to<05:06:43.878> have<05:06:44.000> a<05:06:44.240> class 05:06:44.590 --> 05:06:44.600 align:start position:0% new Dev that's going to have a class 05:06:44.600 --> 05:06:51.030 align:start position:0% new Dev that's going to have a class name<05:06:45.160> equal<05:06:45.480> to<05:06:46.480> flex<05:06:47.520> flex-wrap<05:06:48.958> gap<05:06:49.958> of<05:06:50.320> nine 05:06:51.030 --> 05:06:51.040 align:start position:0% name equal to flex flex-wrap gap of nine 05:06:51.040 --> 05:06:55.030 align:start position:0% name equal to flex flex-wrap gap of nine between<05:06:51.480> each<05:06:51.798> post<05:06:52.480> a<05:06:52.718> W-4<05:06:53.638> for<05:06:53.840> full<05:06:54.160> width 05:06:55.030 --> 05:06:55.040 align:start position:0% between each post a W-4 for full width 05:06:55.040 --> 05:06:59.750 align:start position:0% between each post a W-4 for full width and<05:06:55.280> a<05:06:55.480> Max<05:06:55.878> W<05:06:56.440> of<05:06:56.680> 5<05:06:57.360> XEL<05:06:58.360> now<05:06:58.600> inside<05:06:58.958> of<05:06:59.160> here 05:06:59.750 --> 05:06:59.760 align:start position:0% and a Max W of 5 XEL now inside of here 05:06:59.760 --> 05:07:01.750 align:start position:0% and a Max W of 5 XEL now inside of here we<05:06:59.878> should<05:07:00.120> figure<05:07:00.440> out<05:07:00.958> if<05:07:01.160> we<05:07:01.240> should<05:07:01.440> show 05:07:01.750 --> 05:07:01.760 align:start position:0% we should figure out if we should show 05:07:01.760 --> 05:07:05.150 align:start position:0% we should figure out if we should show no<05:07:02.040> post<05:07:02.360> post<05:07:02.798> or<05:07:03.040> if<05:07:03.160> we<05:07:03.280> should<05:07:03.480> show<05:07:03.840> old 05:07:05.150 --> 05:07:05.160 align:start position:0% no post post or if we should show old 05:07:05.160 --> 05:07:07.470 align:start position:0% no post post or if we should show old posts<05:07:06.160> so<05:07:06.360> let's<05:07:06.558> create<05:07:06.798> some<05:07:07.000> variables 05:07:07.470 --> 05:07:07.480 align:start position:0% posts so let's create some variables 05:07:07.480 --> 05:07:09.110 align:start position:0% posts so let's create some variables that<05:07:07.558> are<05:07:07.680> going<05:07:07.760> to<05:07:07.878> help<05:07:08.240> decide<05:07:08.798> what<05:07:08.920> to 05:07:09.110 --> 05:07:09.120 align:start position:0% that are going to help decide what to 05:07:09.120 --> 05:07:13.750 align:start position:0% that are going to help decide what to show<05:07:10.120> we<05:07:10.240> can<05:07:10.440> say<05:07:10.718> const<05:07:11.558> should 05:07:13.750 --> 05:07:13.760 align:start position:0% show we can say const should 05:07:13.760 --> 05:07:17.628 align:start position:0% show we can say const should show<05:07:14.760> search<05:07:16.040> results<05:07:17.040> and<05:07:17.200> that's<05:07:17.360> going<05:07:17.520> to 05:07:17.628 --> 05:07:17.638 align:start position:0% show search results and that's going to 05:07:17.638 --> 05:07:21.230 align:start position:0% show search results and that's going to be<05:07:17.840> equal<05:07:18.080> to<05:07:18.638> if<05:07:18.840> search<05:07:19.360> value<05:07:20.160> is<05:07:20.480> not<05:07:20.958> equal 05:07:21.230 --> 05:07:21.240 align:start position:0% be equal to if search value is not equal 05:07:21.240 --> 05:07:23.470 align:start position:0% be equal to if search value is not equal to<05:07:21.360> an<05:07:21.480> empty<05:07:21.798> string<05:07:22.520> then<05:07:22.760> yes<05:07:23.160> it<05:07:23.280> should 05:07:23.470 --> 05:07:23.480 align:start position:0% to an empty string then yes it should 05:07:23.480 --> 05:07:28.190 align:start position:0% to an empty string then yes it should show<05:07:23.718> search<05:07:24.280> results<05:07:25.280> then<05:07:25.958> const 05:07:28.190 --> 05:07:28.200 align:start position:0% show search results then const 05:07:28.200 --> 05:07:31.868 align:start position:0% show search results then const should<05:07:29.200> show<05:07:30.040> posts<05:07:30.958> it's<05:07:31.120> going<05:07:31.280> to<05:07:31.440> be<05:07:31.600> equal 05:07:31.868 --> 05:07:31.878 align:start position:0% should show posts it's going to be equal 05:07:31.878 --> 05:07:36.510 align:start position:0% should show posts it's going to be equal to<05:07:32.600> if<05:07:32.760> it's<05:07:33.000> no<05:07:33.638> should<05:07:34.400> show<05:07:35.400> search<05:07:35.798> results 05:07:36.510 --> 05:07:36.520 align:start position:0% to if it's no should show search results 05:07:36.520 --> 05:07:38.310 align:start position:0% to if it's no should show search results I<05:07:36.600> think<05:07:36.718> I<05:07:36.878> misspelled<05:07:37.320> it<05:07:37.440> show<05:07:37.718> show<05:07:38.200> it 05:07:38.310 --> 05:07:38.320 align:start position:0% I think I misspelled it show show it 05:07:38.320 --> 05:07:41.708 align:start position:0% I think I misspelled it show show it should<05:07:38.440> have<05:07:38.600> been<05:07:39.040> should<05:07:39.958> show<05:07:40.958> so<05:07:41.160> if<05:07:41.320> no 05:07:41.708 --> 05:07:41.718 align:start position:0% should have been should show so if no 05:07:41.718 --> 05:07:44.948 align:start position:0% should have been should show so if no should<05:07:41.920> show<05:07:42.400> search<05:07:42.958> results<05:07:43.958> and<05:07:44.638> if<05:07:44.798> we 05:07:44.948 --> 05:07:44.958 align:start position:0% should show search results and if we 05:07:44.958 --> 05:07:47.310 align:start position:0% should show search results and if we have<05:07:45.400> posts<05:07:46.400> so<05:07:46.600> later<05:07:46.840> on<05:07:47.000> we're<05:07:47.120> going<05:07:47.240> to 05:07:47.310 --> 05:07:47.320 align:start position:0% have posts so later on we're going to 05:07:47.320 --> 05:07:51.230 align:start position:0% have posts so later on we're going to have<05:07:47.440> an<05:07:47.558> array<05:07:47.840> of<05:07:48.040> post<05:07:48.680> cons<05:07:49.120> post<05:07:49.400> is<05:07:49.558> an 05:07:51.230 --> 05:07:51.240 align:start position:0% have an array of post cons post is an 05:07:51.240 --> 05:07:54.150 align:start position:0% have an array of post cons post is an array<05:07:52.240> and<05:07:52.360> then<05:07:52.480> we'll<05:07:52.680> be<05:07:52.798> able<05:07:53.000> to<05:07:53.200> say<05:07:53.600> if 05:07:54.150 --> 05:07:54.160 align:start position:0% array and then we'll be able to say if 05:07:54.160 --> 05:07:59.868 align:start position:0% array and then we'll be able to say if posts.<05:07:55.440> pages.<05:07:56.440> every<05:07:56.920> page<05:07:57.920> has<05:07:58.120> an<05:07:58.878> item 05:07:59.868 --> 05:07:59.878 align:start position:0% posts. pages. every page has an item 05:07:59.878 --> 05:08:04.110 align:start position:0% posts. pages. every page has an item where<05:08:00.280> an<05:08:00.520> item.<05:08:01.360> documents<05:08:02.280> do<05:08:02.840> length<05:08:03.840> is 05:08:04.110 --> 05:08:04.120 align:start position:0% where an item. documents do length is 05:08:04.120 --> 05:08:05.150 align:start position:0% where an item. documents do length is greater 05:08:05.150 --> 05:08:05.160 align:start position:0% greater 05:08:05.160 --> 05:08:08.470 align:start position:0% greater than<05:08:06.200> zero<05:08:07.200> that<05:08:07.320> means<05:08:07.600> that<05:08:07.760> we<05:08:07.920> do<05:08:08.200> have 05:08:08.470 --> 05:08:08.480 align:start position:0% than zero that means that we do have 05:08:08.480 --> 05:08:10.590 align:start position:0% than zero that means that we do have posts<05:08:09.160> but<05:08:09.360> again<05:08:09.600> this<05:08:09.718> is<05:08:09.878> just<05:08:10.000> a<05:08:10.240> fake 05:08:10.590 --> 05:08:10.600 align:start position:0% posts but again this is just a fake 05:08:10.600 --> 05:08:12.430 align:start position:0% posts but again this is just a fake array<05:08:11.240> soon<05:08:11.520> enough<05:08:11.760> we're<05:08:11.878> going<05:08:12.000> to<05:08:12.160> fix 05:08:12.430 --> 05:08:12.440 align:start position:0% array soon enough we're going to fix 05:08:12.440 --> 05:08:14.868 align:start position:0% array soon enough we're going to fix this<05:08:13.200> but<05:08:13.400> these<05:08:13.558> two<05:08:13.798> Boolean<05:08:14.280> variables 05:08:14.868 --> 05:08:14.878 align:start position:0% this but these two Boolean variables 05:08:14.878 --> 05:08:16.830 align:start position:0% this but these two Boolean variables should<05:08:15.160> allow<05:08:15.440> us<05:08:15.558> to<05:08:15.760> know<05:08:16.240> what<05:08:16.400> we<05:08:16.520> need<05:08:16.638> to 05:08:16.830 --> 05:08:16.840 align:start position:0% should allow us to know what we need to 05:08:16.840 --> 05:08:19.910 align:start position:0% should allow us to know what we need to display<05:08:17.558> so<05:08:17.840> right<05:08:18.000> here<05:08:18.280> below<05:08:19.040> we<05:08:19.160> can<05:08:19.360> say 05:08:19.910 --> 05:08:19.920 align:start position:0% display so right here below we can say 05:08:19.920 --> 05:08:22.830 align:start position:0% display so right here below we can say if<05:08:20.680> should<05:08:21.240> show<05:08:21.878> search 05:08:22.830 --> 05:08:22.840 align:start position:0% if should show search 05:08:22.840 --> 05:08:25.390 align:start position:0% if should show search results<05:08:23.840> then<05:08:24.400> we<05:08:24.520> can<05:08:24.638> do<05:08:24.760> a<05:08:24.878> Turner 05:08:25.390 --> 05:08:25.400 align:start position:0% results then we can do a Turner 05:08:25.400 --> 05:08:28.030 align:start position:0% results then we can do a Turner operation<05:08:26.400> and<05:08:26.520> then<05:08:26.680> we<05:08:26.760> can<05:08:26.920> show<05:08:27.240> a<05:08:27.480> new 05:08:28.030 --> 05:08:28.040 align:start position:0% operation and then we can show a new 05:08:28.040 --> 05:08:32.430 align:start position:0% operation and then we can show a new search<05:08:28.680> results<05:08:29.440> component<05:08:30.440> like<05:08:30.760> this<05:08:31.760> else 05:08:32.430 --> 05:08:32.440 align:start position:0% search results component like this else 05:08:32.440 --> 05:08:36.070 align:start position:0% search results component like this else we<05:08:32.520> can<05:08:32.680> check<05:08:33.000> if<05:08:33.320> should<05:08:33.958> show<05:08:34.840> posts<05:08:35.840> then 05:08:36.070 --> 05:08:36.080 align:start position:0% we can check if should show posts then 05:08:36.080 --> 05:08:38.750 align:start position:0% we can check if should show posts then we<05:08:36.200> can<05:08:36.320> do<05:08:36.440> a<05:08:36.600> P<05:08:36.840> tag<05:08:37.160> here<05:08:37.400> and<05:08:37.558> say<05:08:37.840> end<05:08:38.360> off 05:08:38.750 --> 05:08:38.760 align:start position:0% we can do a P tag here and say end off 05:08:38.760 --> 05:08:41.190 align:start position:0% we can do a P tag here and say end off posts<05:08:39.400> because<05:08:39.638> we<05:08:39.760> have<05:08:39.920> came<05:08:40.200> to<05:08:40.360> the<05:08:40.520> bottom 05:08:41.190 --> 05:08:41.200 align:start position:0% posts because we have came to the bottom 05:08:41.200 --> 05:08:44.990 align:start position:0% posts because we have came to the bottom and<05:08:41.360> we<05:08:41.440> can<05:08:41.600> give<05:08:41.680> it<05:08:41.798> a<05:08:42.040> class<05:08:42.360> name<05:08:42.798> of<05:08:43.520> text 05:08:44.990 --> 05:08:45.000 align:start position:0% and we can give it a class name of text 05:08:45.000 --> 05:08:49.990 align:start position:0% and we can give it a class name of text dl-4<05:08:46.000> margin<05:08:46.440> top<05:08:46.718> of<05:08:46.878> 10<05:08:47.798> text-<05:08:48.680> Center<05:08:49.680> and 05:08:49.990 --> 05:08:50.000 align:start position:0% dl-4 margin top of 10 text- Center and 05:08:50.000 --> 05:08:53.750 align:start position:0% dl-4 margin top of 10 text- Center and w-<05:08:50.760> full<05:08:51.760> and<05:08:52.040> finally<05:08:52.840> we<05:08:52.958> can<05:08:53.160> render<05:08:53.600> the 05:08:53.750 --> 05:08:53.760 align:start position:0% w- full and finally we can render the 05:08:53.760 --> 05:08:57.548 align:start position:0% w- full and finally we can render the posts<05:08:54.240> so<05:08:54.400> we<05:08:54.480> can<05:08:54.600> say<05:08:54.920> posts.<05:08:55.920> pages.<05:08:56.920> map 05:08:57.548 --> 05:08:57.558 align:start position:0% posts so we can say posts. pages. map 05:08:57.558 --> 05:08:59.868 align:start position:0% posts so we can say posts. pages. map here<05:08:57.680> we<05:08:57.840> Rend<05:08:58.080> it<05:08:58.240> through<05:08:58.440> all<05:08:58.600> the<05:08:58.878> pages 05:08:59.868 --> 05:08:59.878 align:start position:0% here we Rend it through all the pages 05:08:59.878 --> 05:09:02.190 align:start position:0% here we Rend it through all the pages where<05:09:00.000> we<05:09:00.160> get<05:09:00.400> each<05:09:00.638> individual<05:09:01.240> item<05:09:01.920> and 05:09:02.190 --> 05:09:02.200 align:start position:0% where we get each individual item and 05:09:02.200 --> 05:09:05.150 align:start position:0% where we get each individual item and and<05:09:02.360> an<05:09:02.798> index<05:09:03.798> and<05:09:04.080> we<05:09:04.400> return<05:09:04.840> something 05:09:05.150 --> 05:09:05.160 align:start position:0% and an index and we return something 05:09:05.160 --> 05:09:09.150 align:start position:0% and an index and we return something known<05:09:05.440> as<05:09:05.558> a<05:09:05.798> grid<05:09:06.760> post<05:09:07.878> list<05:09:08.878> this<05:09:08.958> is 05:09:09.150 --> 05:09:09.160 align:start position:0% known as a grid post list this is 05:09:09.160 --> 05:09:11.030 align:start position:0% known as a grid post list this is another<05:09:09.440> component<05:09:09.840> that<05:09:09.958> we<05:09:10.160> don't<05:09:10.440> yet<05:09:10.718> have 05:09:11.030 --> 05:09:11.040 align:start position:0% another component that we don't yet have 05:09:11.040 --> 05:09:12.868 align:start position:0% another component that we don't yet have so<05:09:11.200> it's<05:09:11.320> going<05:09:11.480> to<05:09:11.638> result<05:09:12.000> in<05:09:12.120> an<05:09:12.320> error 05:09:12.868 --> 05:09:12.878 align:start position:0% so it's going to result in an error 05:09:12.878 --> 05:09:16.670 align:start position:0% so it's going to result in an error right<05:09:13.160> now<05:09:14.160> but<05:09:14.400> we<05:09:14.520> can<05:09:14.798> pass<05:09:15.040> it<05:09:15.400> a<05:09:15.638> key<05:09:16.320> equal 05:09:16.670 --> 05:09:16.680 align:start position:0% right now but we can pass it a key equal 05:09:16.680 --> 05:09:20.470 align:start position:0% right now but we can pass it a key equal to<05:09:17.680> something<05:09:18.000> like<05:09:18.480> page- 05:09:20.470 --> 05:09:20.480 align:start position:0% to something like page- 05:09:20.480 --> 05:09:23.510 align:start position:0% to something like page- index<05:09:21.480> as<05:09:21.600> well<05:09:21.760> as<05:09:22.040> posts<05:09:22.638> which<05:09:22.760> is<05:09:22.920> equal<05:09:23.200> to 05:09:23.510 --> 05:09:23.520 align:start position:0% index as well as posts which is equal to 05:09:23.520 --> 05:09:26.350 align:start position:0% index as well as posts which is equal to item.<05:09:24.360> documents<05:09:25.160> so<05:09:25.440> posts<05:09:25.840> on<05:09:26.080> that 05:09:26.350 --> 05:09:26.360 align:start position:0% item. documents so posts on that 05:09:26.360 --> 05:09:28.430 align:start position:0% item. documents so posts on that specific<05:09:26.878> page<05:09:27.718> and<05:09:27.878> now<05:09:28.040> of<05:09:28.200> course 05:09:28.430 --> 05:09:28.440 align:start position:0% specific page and now of course 05:09:28.440 --> 05:09:29.868 align:start position:0% specific page and now of course everything<05:09:28.718> is<05:09:28.878> breaking<05:09:29.400> because<05:09:29.638> we<05:09:29.760> have 05:09:29.868 --> 05:09:29.878 align:start position:0% everything is breaking because we have 05:09:29.878 --> 05:09:32.150 align:start position:0% everything is breaking because we have to<05:09:30.040> create<05:09:30.440> two<05:09:30.718> new<05:09:31.000> components<05:09:31.680> search 05:09:32.150 --> 05:09:32.160 align:start position:0% to create two new components search 05:09:32.160 --> 05:09:34.910 align:start position:0% to create two new components search results<05:09:32.600> and<05:09:32.840> GD<05:09:33.200> post<05:09:33.520> list<05:09:34.200> so<05:09:34.520> let's<05:09:34.718> do 05:09:34.910 --> 05:09:34.920 align:start position:0% results and GD post list so let's do 05:09:34.920 --> 05:09:38.510 align:start position:0% results and GD post list so let's do that<05:09:35.240> immediately<05:09:36.240> by<05:09:36.440> going<05:09:36.718> to<05:09:37.440> components 05:09:38.510 --> 05:09:38.520 align:start position:0% that immediately by going to components 05:09:38.520 --> 05:09:44.948 align:start position:0% that immediately by going to components shared<05:09:39.600> search<05:09:41.040> results.<05:09:42.040> TSX<05:09:43.040> where<05:09:43.160> we<05:09:43.320> run 05:09:44.948 --> 05:09:44.958 align:start position:0% shared search results. TSX where we run 05:09:44.958 --> 05:09:47.708 align:start position:0% shared search results. TSX where we run rafc<05:09:45.958> as<05:09:46.160> well 05:09:47.708 --> 05:09:47.718 align:start position:0% rafc as well 05:09:47.718 --> 05:09:53.310 align:start position:0% rafc as well as<05:09:48.718> grid<05:09:49.680> poost<05:09:50.400> list.<05:09:51.360> TSX<05:09:52.320> where<05:09:52.440> we<05:09:52.558> run 05:09:53.310 --> 05:09:53.320 align:start position:0% as grid poost list. TSX where we run 05:09:53.320 --> 05:09:57.070 align:start position:0% as grid poost list. TSX where we run rafc<05:09:54.480> again<05:09:55.480> now<05:09:55.680> we<05:09:55.798> can<05:09:56.120> import<05:09:56.718> both<05:09:56.920> of 05:09:57.070 --> 05:09:57.080 align:start position:0% rafc again now we can import both of 05:09:57.080 --> 05:10:00.548 align:start position:0% rafc again now we can import both of these<05:09:57.360> components<05:09:58.360> right 05:10:00.548 --> 05:10:00.558 align:start position:0% these components right 05:10:00.558 --> 05:10:04.150 align:start position:0% these components right here<05:10:01.558> but<05:10:01.798> if<05:10:02.160> we<05:10:02.280> go<05:10:02.480> a<05:10:02.600> bit<05:10:02.878> above<05:10:03.718> and<05:10:03.878> then 05:10:04.150 --> 05:10:04.160 align:start position:0% here but if we go a bit above and then 05:10:04.160 --> 05:10:06.868 align:start position:0% here but if we go a bit above and then comment<05:10:04.600> out<05:10:05.320> these<05:10:05.718> posts<05:10:06.360> because<05:10:06.718> right 05:10:06.868 --> 05:10:06.878 align:start position:0% comment out these posts because right 05:10:06.878 --> 05:10:09.470 align:start position:0% comment out these posts because right now<05:10:07.280> this<05:10:07.520> breaks<05:10:08.320> because<05:10:08.718> the<05:10:08.878> pages<05:10:09.200> don't 05:10:09.470 --> 05:10:09.480 align:start position:0% now this breaks because the pages don't 05:10:09.480 --> 05:10:11.590 align:start position:0% now this breaks because the pages don't exist<05:10:09.760> on<05:10:09.958> posts<05:10:10.638> so<05:10:10.840> maybe<05:10:11.040> we<05:10:11.160> can<05:10:11.320> add 05:10:11.590 --> 05:10:11.600 align:start position:0% exist on posts so maybe we can add 05:10:11.600 --> 05:10:13.190 align:start position:0% exist on posts so maybe we can add question<05:10:11.840> marks<05:10:12.240> right<05:10:12.400> here<05:10:12.558> to<05:10:12.760> make<05:10:13.000> this 05:10:13.190 --> 05:10:13.200 align:start position:0% question marks right here to make this 05:10:13.200 --> 05:10:15.708 align:start position:0% question marks right here to make this work<05:10:13.840> for<05:10:14.080> now<05:10:14.360> that's<05:10:14.600> not<05:10:14.798> going<05:10:14.958> to<05:10:15.160> work<05:10:15.520> so 05:10:15.708 --> 05:10:15.718 align:start position:0% work for now that's not going to work so 05:10:15.718 --> 05:10:17.670 align:start position:0% work for now that's not going to work so we<05:10:15.798> can<05:10:16.000> comment<05:10:16.320> it<05:10:16.480> out<05:10:16.958> and<05:10:17.120> the<05:10:17.240> reason<05:10:17.558> why 05:10:17.670 --> 05:10:17.680 align:start position:0% we can comment it out and the reason why 05:10:17.680 --> 05:10:19.990 align:start position:0% we can comment it out and the reason why it's<05:10:17.840> not<05:10:18.080> working<05:10:18.718> is<05:10:19.000> because<05:10:19.680> these 05:10:19.990 --> 05:10:20.000 align:start position:0% it's not working is because these 05:10:20.000 --> 05:10:22.628 align:start position:0% it's not working is because these variables<05:10:20.480> are<05:10:20.680> not<05:10:20.920> working<05:10:21.600> as<05:10:21.798> the<05:10:21.958> pages 05:10:22.628 --> 05:10:22.638 align:start position:0% variables are not working as the pages 05:10:22.638 --> 05:10:25.150 align:start position:0% variables are not working as the pages don't<05:10:23.000> exist<05:10:23.400> under<05:10:23.840> posts<05:10:24.638> so<05:10:24.798> we<05:10:24.920> can 05:10:25.150 --> 05:10:25.160 align:start position:0% don't exist under posts so we can 05:10:25.160 --> 05:10:28.030 align:start position:0% don't exist under posts so we can comment<05:10:25.718> all<05:10:26.320> of<05:10:26.558> that<05:10:26.840> out<05:10:27.360> and<05:10:27.480> we're<05:10:27.718> left 05:10:28.030 --> 05:10:28.040 align:start position:0% comment all of that out and we're left 05:10:28.040 --> 05:10:30.830 align:start position:0% comment all of that out and we're left with<05:10:28.160> the<05:10:28.280> base<05:10:29.040> structure<05:10:30.040> of<05:10:30.200> course<05:10:30.680> the 05:10:30.830 --> 05:10:30.840 align:start position:0% with the base structure of course the 05:10:30.840 --> 05:10:32.948 align:start position:0% with the base structure of course the next<05:10:31.080> meaningful<05:10:31.558> thing<05:10:31.680> to<05:10:31.798> do<05:10:32.440> is<05:10:32.600> to 05:10:32.948 --> 05:10:32.958 align:start position:0% next meaningful thing to do is to 05:10:32.958 --> 05:10:35.788 align:start position:0% next meaningful thing to do is to actually<05:10:33.480> fetch<05:10:34.240> real<05:10:34.760> posts<05:10:35.320> that<05:10:35.480> we<05:10:35.600> can 05:10:35.788 --> 05:10:35.798 align:start position:0% actually fetch real posts that we can 05:10:35.798 --> 05:10:38.070 align:start position:0% actually fetch real posts that we can explore<05:10:36.638> and<05:10:36.798> then<05:10:37.000> implement<05:10:37.360> the<05:10:37.520> search<05:10:37.878> as 05:10:38.070 --> 05:10:38.080 align:start position:0% explore and then implement the search as 05:10:38.080 --> 05:10:40.948 align:start position:0% explore and then implement the search as well<05:10:39.000> so<05:10:39.320> let's<05:10:39.558> go<05:10:39.680> ahead<05:10:40.040> and<05:10:40.200> let's<05:10:40.480> focus 05:10:40.948 --> 05:10:40.958 align:start position:0% well so let's go ahead and let's focus 05:10:40.958 --> 05:10:44.270 align:start position:0% well so let's go ahead and let's focus on<05:10:41.400> getting<05:10:41.680> the<05:10:41.878> post<05:10:42.280> for<05:10:42.558> our<05:10:42.798> explore<05:10:43.360> page 05:10:44.270 --> 05:10:44.280 align:start position:0% on getting the post for our explore page 05:10:44.280 --> 05:10:46.150 align:start position:0% on getting the post for our explore page and<05:10:44.558> don't<05:10:44.798> forget<05:10:45.280> that<05:10:45.400> in<05:10:45.520> the<05:10:45.680> explore 05:10:46.150 --> 05:10:46.160 align:start position:0% and don't forget that in the explore 05:10:46.160 --> 05:10:48.510 align:start position:0% and don't forget that in the explore page<05:10:46.638> we<05:10:46.798> have<05:10:47.040> this<05:10:47.360> wonderful<05:10:48.120> infinite 05:10:48.510 --> 05:10:48.520 align:start position:0% page we have this wonderful infinite 05:10:48.520 --> 05:10:50.670 align:start position:0% page we have this wonderful infinite scroll<05:10:49.200> so<05:10:49.320> you'll<05:10:49.600> always<05:10:49.920> be<05:10:50.080> able<05:10:50.320> to<05:10:50.480> get 05:10:50.670 --> 05:10:50.680 align:start position:0% scroll so you'll always be able to get 05:10:50.680 --> 05:10:54.430 align:start position:0% scroll so you'll always be able to get new<05:10:50.958> content<05:10:51.798> as<05:10:52.040> you<05:10:52.240> scroll<05:10:52.878> down<05:10:53.878> so<05:10:54.240> let's 05:10:54.430 --> 05:10:54.440 align:start position:0% new content as you scroll down so let's 05:10:54.440 --> 05:10:57.670 align:start position:0% new content as you scroll down so let's go<05:10:54.558> ahead<05:10:54.878> and<05:10:55.120> Implement<05:10:55.718> that<05:10:56.120> fetch<05:10:56.718> posts 05:10:57.670 --> 05:10:57.680 align:start position:0% go ahead and Implement that fetch posts 05:10:57.680 --> 05:10:59.510 align:start position:0% go ahead and Implement that fetch posts you<05:10:57.840> know<05:10:58.040> the<05:10:58.160> drill<05:10:58.638> we<05:10:58.840> first<05:10:59.080> have<05:10:59.200> to<05:10:59.360> go 05:10:59.510 --> 05:10:59.520 align:start position:0% you know the drill we first have to go 05:10:59.520 --> 05:11:03.030 align:start position:0% you know the drill we first have to go to<05:10:59.718> the<05:10:59.920> API<05:11:00.638> app<05:11:01.000> right<05:11:02.120> and<05:11:02.320> to<05:11:02.480> create<05:11:02.840> this 05:11:03.030 --> 05:11:03.040 align:start position:0% to the API app right and to create this 05:11:03.040 --> 05:11:06.350 align:start position:0% to the API app right and to create this function<05:11:03.600> we<05:11:03.718> can<05:11:03.878> create<05:11:04.120> an<05:11:04.400> export<05:11:05.320> async 05:11:06.350 --> 05:11:06.360 align:start position:0% function we can create an export async 05:11:06.360 --> 05:11:10.230 align:start position:0% function we can create an export async function<05:11:07.360> get<05:11:08.040> infinite<05:11:09.000> posts<05:11:10.000> of<05:11:10.120> course 05:11:10.230 --> 05:11:10.240 align:start position:0% function get infinite posts of course 05:11:10.240 --> 05:11:12.788 align:start position:0% function get infinite posts of course we're<05:11:10.400> missing<05:11:10.680> an<05:11:10.840> N<05:11:11.200> right<05:11:11.440> here<05:11:12.400> and<05:11:12.638> it's 05:11:12.788 --> 05:11:12.798 align:start position:0% we're missing an N right here and it's 05:11:12.798 --> 05:11:16.190 align:start position:0% we're missing an N right here and it's going<05:11:12.958> to<05:11:13.200> accept<05:11:13.920> an<05:11:14.240> object<05:11:14.798> called<05:11:15.480> page 05:11:16.190 --> 05:11:16.200 align:start position:0% going to accept an object called page 05:11:16.200 --> 05:11:19.110 align:start position:0% going to accept an object called page peram<05:11:17.200> which<05:11:17.320> is<05:11:17.480> going<05:11:17.638> to<05:11:17.840> essentially<05:11:18.400> be 05:11:19.110 --> 05:11:19.120 align:start position:0% peram which is going to essentially be 05:11:19.120 --> 05:11:22.990 align:start position:0% peram which is going to essentially be page<05:11:19.400> per<05:11:19.680> Ram<05:11:20.240> of<05:11:20.400> a<05:11:20.638> type<05:11:21.480> number<05:11:22.480> inside<05:11:22.798> of 05:11:22.990 --> 05:11:23.000 align:start position:0% page per Ram of a type number inside of 05:11:23.000 --> 05:11:24.990 align:start position:0% page per Ram of a type number inside of here<05:11:23.200> we<05:11:23.280> want<05:11:23.440> to<05:11:23.600> define<05:11:24.000> the<05:11:24.160> queries<05:11:24.878> which 05:11:24.990 --> 05:11:25.000 align:start position:0% here we want to define the queries which 05:11:25.000 --> 05:11:27.390 align:start position:0% here we want to define the queries which we<05:11:25.120> want<05:11:25.200> to<05:11:25.360> fetch<05:11:25.638> the<05:11:25.760> post<05:11:26.320> by<05:11:27.000> so<05:11:27.200> we<05:11:27.280> can 05:11:27.390 --> 05:11:27.400 align:start position:0% we want to fetch the post by so we can 05:11:27.400 --> 05:11:31.070 align:start position:0% we want to fetch the post by so we can say<05:11:27.680> const<05:11:28.360> queries<05:11:29.240> of<05:11:29.400> a<05:11:29.638> type<05:11:30.160> array<05:11:30.878> with 05:11:31.070 --> 05:11:31.080 align:start position:0% say const queries of a type array with 05:11:31.080 --> 05:11:32.510 align:start position:0% say const queries of a type array with any<05:11:31.280> kind<05:11:31.440> of<05:11:31.600> content 05:11:32.510 --> 05:11:32.520 align:start position:0% any kind of content 05:11:32.520 --> 05:11:36.230 align:start position:0% any kind of content is<05:11:32.718> equal<05:11:33.040> to<05:11:33.638> array<05:11:34.280> of<05:11:34.520> query.<05:11:35.360> order 05:11:36.230 --> 05:11:36.240 align:start position:0% is equal to array of query. order 05:11:36.240 --> 05:11:39.390 align:start position:0% is equal to array of query. order descending<05:11:37.240> based<05:11:37.638> off<05:11:37.798> of<05:11:37.958> the<05:11:38.200> updated<05:11:38.798> ad 05:11:39.390 --> 05:11:39.400 align:start position:0% descending based off of the updated ad 05:11:39.400 --> 05:11:41.750 align:start position:0% descending based off of the updated ad property<05:11:40.400> and<05:11:40.520> we<05:11:40.638> have<05:11:40.760> to<05:11:40.958> add<05:11:41.200> a<05:11:41.400> dollar 05:11:41.750 --> 05:11:41.760 align:start position:0% property and we have to add a dollar 05:11:41.760 --> 05:11:44.628 align:start position:0% property and we have to add a dollar sign<05:11:42.280> up<05:11:42.840> front<05:11:43.840> so<05:11:44.000> we<05:11:44.080> want<05:11:44.240> to<05:11:44.360> get<05:11:44.520> the 05:11:44.628 --> 05:11:44.638 align:start position:0% sign up front so we want to get the 05:11:44.638 --> 05:11:47.030 align:start position:0% sign up front so we want to get the newest<05:11:45.040> post<05:11:45.440> first<05:11:46.240> and<05:11:46.400> we<05:11:46.480> want<05:11:46.600> to<05:11:46.760> limit 05:11:47.030 --> 05:11:47.040 align:start position:0% newest post first and we want to limit 05:11:47.040 --> 05:11:51.510 align:start position:0% newest post first and we want to limit it<05:11:47.320> to<05:11:47.638> query.<05:11:48.638> limit<05:11:49.160> of<05:11:49.400> 20<05:11:50.400> 10<05:11:50.760> is<05:11:51.040> okay<05:11:51.360> as 05:11:51.510 --> 05:11:51.520 align:start position:0% it to query. limit of 20 10 is okay as 05:11:51.520 --> 05:11:53.470 align:start position:0% it to query. limit of 20 10 is okay as well<05:11:51.878> considering<05:11:52.320> that<05:11:52.480> we<05:11:52.680> also<05:11:53.080> have 05:11:53.470 --> 05:11:53.480 align:start position:0% well considering that we also have 05:11:53.480 --> 05:11:56.470 align:start position:0% well considering that we also have infinite<05:11:54.120> loading<05:11:55.120> then<05:11:55.400> we<05:11:55.480> want<05:11:55.600> to<05:11:55.760> check 05:11:56.470 --> 05:11:56.480 align:start position:0% infinite loading then we want to check 05:11:56.480 --> 05:11:59.948 align:start position:0% infinite loading then we want to check if<05:11:56.680> we<05:11:56.920> have<05:11:57.320> page<05:11:57.638> prrams<05:11:58.360> so<05:11:58.638> if<05:11:58.920> page<05:11:59.200> pram 05:11:59.948 --> 05:11:59.958 align:start position:0% if we have page prrams so if page pram 05:11:59.958 --> 05:12:03.310 align:start position:0% if we have page prrams so if page pram in<05:12:00.160> that<05:12:00.400> case<05:12:00.878> queries.<05:12:01.958> push<05:12:02.760> we<05:12:02.958> also<05:12:03.200> want 05:12:03.310 --> 05:12:03.320 align:start position:0% in that case queries. push we also want 05:12:03.320 --> 05:12:04.628 align:start position:0% in that case queries. push we also want to<05:12:03.558> add<05:12:03.840> a 05:12:04.628 --> 05:12:04.638 align:start position:0% to add a 05:12:04.638 --> 05:12:08.910 align:start position:0% to add a query.<05:12:05.638> cursor<05:12:06.840> after<05:12:07.840> what<05:12:08.080> does<05:12:08.320> this<05:12:08.520> mean 05:12:08.910 --> 05:12:08.920 align:start position:0% query. cursor after what does this mean 05:12:08.920 --> 05:12:11.910 align:start position:0% query. cursor after what does this mean well<05:12:09.080> it<05:12:09.400> means<05:12:10.400> if<05:12:10.520> we're<05:12:10.718> at<05:12:10.798> the<05:12:11.000> page<05:12:11.240> two 05:12:11.910 --> 05:12:11.920 align:start position:0% well it means if we're at the page two 05:12:11.920 --> 05:12:14.310 align:start position:0% well it means if we're at the page two skip<05:12:12.360> the<05:12:12.558> first<05:12:12.878> 10<05:12:13.320> already<05:12:13.840> and<05:12:14.000> give<05:12:14.160> me 05:12:14.310 --> 05:12:14.320 align:start position:0% skip the first 10 already and give me 05:12:14.320 --> 05:12:18.510 align:start position:0% skip the first 10 already and give me the<05:12:14.480> second<05:12:14.798> 10<05:12:15.480> right<05:12:15.958> so<05:12:16.120> we<05:12:16.240> can<05:12:16.400> say<05:12:16.760> page 05:12:18.510 --> 05:12:18.520 align:start position:0% the second 10 right so we can say page 05:12:18.520 --> 05:12:20.788 align:start position:0% the second 10 right so we can say page Pam<05:12:19.520> do<05:12:19.840> two 05:12:20.788 --> 05:12:20.798 align:start position:0% Pam do two 05:12:20.798 --> 05:12:23.150 align:start position:0% Pam do two string<05:12:21.798> so<05:12:22.000> the<05:12:22.120> page<05:12:22.360> param<05:12:22.760> is<05:12:22.920> actually 05:12:23.150 --> 05:12:23.160 align:start position:0% string so the page param is actually 05:12:23.160 --> 05:12:25.430 align:start position:0% string so the page param is actually going<05:12:23.280> to<05:12:23.400> be<05:12:23.520> a<05:12:23.680> number<05:12:24.080> of<05:12:24.280> how<05:12:24.440> many<05:12:24.798> pages 05:12:25.430 --> 05:12:25.440 align:start position:0% going to be a number of how many pages 05:12:25.440 --> 05:12:27.590 align:start position:0% going to be a number of how many pages or<05:12:25.680> documents<05:12:26.440> do<05:12:26.600> we<05:12:26.718> want<05:12:26.840> to 05:12:27.590 --> 05:12:27.600 align:start position:0% or documents do we want to 05:12:27.600 --> 05:12:30.390 align:start position:0% or documents do we want to skip<05:12:28.600> once<05:12:28.798> we<05:12:28.920> know<05:12:29.200> that<05:12:29.400> information<05:12:30.320> we 05:12:30.390 --> 05:12:30.400 align:start position:0% skip once we know that information we 05:12:30.400 --> 05:12:33.310 align:start position:0% skip once we know that information we can<05:12:30.638> open<05:12:30.878> up<05:12:31.080> a<05:12:31.240> new<05:12:31.480> trial<05:12:31.958> and<05:12:32.120> catch<05:12:32.400> Block 05:12:33.310 --> 05:12:33.320 align:start position:0% can open up a new trial and catch Block 05:12:33.320 --> 05:12:35.670 align:start position:0% can open up a new trial and catch Block in<05:12:33.440> the<05:12:33.638> catch<05:12:34.160> we<05:12:34.280> can<05:12:34.440> simply<05:12:34.760> consel<05:12:35.240> log 05:12:35.670 --> 05:12:35.680 align:start position:0% in the catch we can simply consel log 05:12:35.680 --> 05:12:36.708 align:start position:0% in the catch we can simply consel log the 05:12:36.708 --> 05:12:36.718 align:start position:0% the 05:12:36.718 --> 05:12:39.910 align:start position:0% the error<05:12:37.718> and<05:12:37.958> in<05:12:38.120> the<05:12:38.280> try<05:12:38.920> we<05:12:39.040> can<05:12:39.200> try<05:12:39.360> to<05:12:39.520> fetch 05:12:39.910 --> 05:12:39.920 align:start position:0% error and in the try we can try to fetch 05:12:39.920 --> 05:12:43.270 align:start position:0% error and in the try we can try to fetch those<05:12:40.160> posts<05:12:40.760> by<05:12:40.878> saying<05:12:41.240> const<05:12:42.160> posts<05:12:43.080> is 05:12:43.270 --> 05:12:43.280 align:start position:0% those posts by saying const posts is 05:12:43.280 --> 05:12:46.070 align:start position:0% those posts by saying const posts is equal<05:12:43.600> to<05:12:44.480> await 05:12:46.070 --> 05:12:46.080 align:start position:0% equal to await 05:12:46.080 --> 05:12:48.150 align:start position:0% equal to await databases.<05:12:47.080> list 05:12:48.150 --> 05:12:48.160 align:start position:0% databases. list 05:12:48.160 --> 05:12:51.548 align:start position:0% databases. list documents<05:12:49.160> from<05:12:49.440> a<05:12:49.680> database<05:12:50.360> with<05:12:50.520> an<05:12:50.718> ID<05:12:51.200> of 05:12:51.548 --> 05:12:51.558 align:start position:0% documents from a database with an ID of 05:12:51.558 --> 05:12:54.628 align:start position:0% documents from a database with an ID of ight<05:12:52.120> config<05:12:52.840> database<05:12:53.400> ID<05:12:54.240> and<05:12:54.440> the 05:12:54.628 --> 05:12:54.638 align:start position:0% ight config database ID and the 05:12:54.638 --> 05:12:57.310 align:start position:0% ight config database ID and the collection<05:12:55.240> with<05:12:55.360> an<05:12:55.520> ID<05:12:56.000> of<05:12:56.280> aight<05:12:56.760> config 05:12:57.310 --> 05:12:57.320 align:start position:0% collection with an ID of aight config 05:12:57.320 --> 05:12:59.830 align:start position:0% collection with an ID of aight config that<05:12:57.680> post<05:12:58.120> collection<05:12:58.558> ID<05:12:59.360> and<05:12:59.520> then<05:12:59.638> we<05:12:59.718> want 05:12:59.830 --> 05:12:59.840 align:start position:0% that post collection ID and then we want 05:12:59.840 --> 05:13:02.750 align:start position:0% that post collection ID and then we want to<05:13:00.080> pass<05:13:00.400> all<05:13:00.638> the<05:13:00.760> queries<05:13:01.480> BAS<05:13:02.040> off<05:13:02.240> of<05:13:02.440> which 05:13:02.750 --> 05:13:02.760 align:start position:0% to pass all the queries BAS off of which 05:13:02.760 --> 05:13:04.230 align:start position:0% to pass all the queries BAS off of which we<05:13:02.878> want<05:13:03.000> to<05:13:03.160> fetch<05:13:03.440> the 05:13:04.230 --> 05:13:04.240 align:start position:0% we want to fetch the 05:13:04.240 --> 05:13:07.350 align:start position:0% we want to fetch the data<05:13:05.240> if<05:13:05.440> there<05:13:05.600> are<05:13:06.000> no<05:13:06.320> posts<05:13:06.878> we<05:13:07.000> can<05:13:07.160> throw 05:13:07.350 --> 05:13:07.360 align:start position:0% data if there are no posts we can throw 05:13:07.360 --> 05:13:10.310 align:start position:0% data if there are no posts we can throw an<05:13:07.480> error<05:13:08.200> in<05:13:08.360> case<05:13:08.600> there<05:13:08.760> are<05:13:09.360> we<05:13:09.480> can<05:13:09.840> return 05:13:10.310 --> 05:13:10.320 align:start position:0% an error in case there are we can return 05:13:10.320 --> 05:13:13.270 align:start position:0% an error in case there are we can return the<05:13:10.878> posts<05:13:11.878> that's<05:13:12.080> it<05:13:12.240> for<05:13:12.400> the<05:13:12.600> get<05:13:12.798> infinite 05:13:13.270 --> 05:13:13.280 align:start position:0% the posts that's it for the get infinite 05:13:13.280 --> 05:13:15.868 align:start position:0% the posts that's it for the get infinite posts<05:13:13.680> believe<05:13:13.920> it<05:13:14.040> or<05:13:14.240> not<05:13:15.240> but<05:13:15.480> while<05:13:15.600> we're 05:13:15.868 --> 05:13:15.878 align:start position:0% posts believe it or not but while we're 05:13:15.878 --> 05:13:18.548 align:start position:0% posts believe it or not but while we're here<05:13:16.280> let's<05:13:16.520> also<05:13:16.798> do<05:13:17.000> the<05:13:17.240> search<05:13:18.240> and<05:13:18.400> that's 05:13:18.548 --> 05:13:18.558 align:start position:0% here let's also do the search and that's 05:13:18.558 --> 05:13:20.190 align:start position:0% here let's also do the search and that's going<05:13:18.718> to<05:13:18.798> be<05:13:19.040> really<05:13:19.280> similar<05:13:19.798> to<05:13:20.000> get 05:13:20.190 --> 05:13:20.200 align:start position:0% going to be really similar to get 05:13:20.200 --> 05:13:22.948 align:start position:0% going to be really similar to get infinite<05:13:20.638> posts<05:13:21.160> so<05:13:21.360> let's<05:13:21.558> duplicate<05:13:21.958> it 05:13:22.948 --> 05:13:22.958 align:start position:0% infinite posts so let's duplicate it 05:13:22.958 --> 05:13:27.910 align:start position:0% infinite posts so let's duplicate it below<05:13:23.958> let's<05:13:24.200> change<05:13:24.558> the<05:13:24.840> name<05:13:25.840> this<05:13:26.120> time<05:13:26.878> to 05:13:27.910 --> 05:13:27.920 align:start position:0% below let's change the name this time to 05:13:27.920 --> 05:13:31.430 align:start position:0% below let's change the name this time to search<05:13:29.280> posts<05:13:30.280> we<05:13:30.440> won't<05:13:30.718> need<05:13:31.000> any<05:13:31.160> kind<05:13:31.320> of 05:13:31.430 --> 05:13:31.440 align:start position:0% search posts we won't need any kind of 05:13:31.440 --> 05:13:35.190 align:start position:0% search posts we won't need any kind of page<05:13:31.920> Brams<05:13:32.638> we'll<05:13:32.840> need<05:13:33.240> search<05:13:34.080> term<05:13:34.840> of<05:13:35.000> a 05:13:35.190 --> 05:13:35.200 align:start position:0% page Brams we'll need search term of a 05:13:35.200 --> 05:13:36.510 align:start position:0% page Brams we'll need search term of a type 05:13:36.510 --> 05:13:36.520 align:start position:0% type 05:13:36.520 --> 05:13:39.070 align:start position:0% type string<05:13:37.520> we<05:13:37.638> don't<05:13:37.878> need<05:13:38.120> any<05:13:38.320> kind<05:13:38.440> of<05:13:38.638> queries 05:13:39.070 --> 05:13:39.080 align:start position:0% string we don't need any kind of queries 05:13:39.080 --> 05:13:41.390 align:start position:0% string we don't need any kind of queries or<05:13:39.280> page<05:13:39.558> prams<05:13:40.520> the<05:13:40.638> only<05:13:40.840> thing<05:13:41.000> we<05:13:41.120> need<05:13:41.240> to 05:13:41.390 --> 05:13:41.400 align:start position:0% or page prams the only thing we need to 05:13:41.400 --> 05:13:43.270 align:start position:0% or page prams the only thing we need to do<05:13:41.878> is<05:13:42.160> fetch<05:13:42.558> the 05:13:43.270 --> 05:13:43.280 align:start position:0% do is fetch the 05:13:43.280 --> 05:13:46.628 align:start position:0% do is fetch the posts<05:13:44.280> so<05:13:44.600> here<05:13:45.160> we<05:13:45.280> can<05:13:45.558> have<05:13:45.920> one<05:13:46.240> specific 05:13:46.628 --> 05:13:46.638 align:start position:0% posts so here we can have one specific 05:13:46.638 --> 05:13:50.190 align:start position:0% posts so here we can have one specific query<05:13:47.280> which<05:13:47.400> is<05:13:47.520> going<05:13:47.718> to<05:13:47.878> be<05:13:48.120> query.<05:13:49.200> search 05:13:50.190 --> 05:13:50.200 align:start position:0% query which is going to be query. search 05:13:50.200 --> 05:13:53.190 align:start position:0% query which is going to be query. search and<05:13:50.320> we<05:13:50.440> can<05:13:50.558> search<05:13:51.000> by<05:13:51.840> caption<05:13:52.840> and<05:13:53.080> the 05:13:53.190 --> 05:13:53.200 align:start position:0% and we can search by caption and the 05:13:53.200 --> 05:13:55.788 align:start position:0% and we can search by caption and the search<05:13:53.638> term<05:13:54.120> is<05:13:54.240> going<05:13:54.440> to<05:13:54.600> be<05:13:55.240> the<05:13:55.360> search 05:13:55.788 --> 05:13:55.798 align:start position:0% search term is going to be the search 05:13:55.798 --> 05:13:58.670 align:start position:0% search term is going to be the search term<05:13:56.280> that<05:13:56.400> we're<05:13:56.680> passing<05:13:57.200> through<05:13:57.680> props 05:13:58.670 --> 05:13:58.680 align:start position:0% term that we're passing through props 05:13:58.680 --> 05:14:01.990 align:start position:0% term that we're passing through props there<05:13:59.120> we<05:13:59.638> go<05:14:00.638> and<05:14:01.120> again<05:14:01.360> thank<05:14:01.520> you<05:14:01.798> tab 05:14:01.990 --> 05:14:02.000 align:start position:0% there we go and again thank you tab 05:14:02.000 --> 05:14:03.548 align:start position:0% there we go and again thank you tab script<05:14:02.320> it's<05:14:02.600> complaining<05:14:03.080> that<05:14:03.200> the<05:14:03.320> search 05:14:03.548 --> 05:14:03.558 align:start position:0% script it's complaining that the search 05:14:03.558 --> 05:14:05.990 align:start position:0% script it's complaining that the search term<05:14:03.878> should<05:14:04.120> be<05:14:04.558> not<05:14:04.760> a<05:14:04.958> second<05:14:05.400> part<05:14:05.718> of<05:14:05.878> the 05:14:05.990 --> 05:14:06.000 align:start position:0% term should be not a second part of the 05:14:06.000 --> 05:14:08.670 align:start position:0% term should be not a second part of the array<05:14:06.680> but<05:14:06.878> rather<05:14:07.160> a<05:14:07.360> second<05:14:07.718> part<05:14:08.160> of<05:14:08.400> this 05:14:08.670 --> 05:14:08.680 align:start position:0% array but rather a second part of this 05:14:08.680 --> 05:14:11.670 align:start position:0% array but rather a second part of this search<05:14:09.320> object<05:14:10.240> there<05:14:10.400> we<05:14:10.600> go<05:14:11.240> and<05:14:11.400> then<05:14:11.520> we're 05:14:11.670 --> 05:14:11.680 align:start position:0% search object there we go and then we're 05:14:11.680 --> 05:14:12.788 align:start position:0% search object there we go and then we're returning<05:14:12.080> the 05:14:12.788 --> 05:14:12.798 align:start position:0% returning the 05:14:12.798 --> 05:14:15.070 align:start position:0% returning the posts<05:14:13.798> with<05:14:14.000> that<05:14:14.240> we're<05:14:14.480> done<05:14:14.798> with<05:14:14.958> the 05:14:15.070 --> 05:14:15.080 align:start position:0% posts with that we're done with the 05:14:15.080 --> 05:14:18.150 align:start position:0% posts with that we're done with the search<05:14:15.638> posts<05:14:16.638> now<05:14:17.120> as<05:14:17.240> you<05:14:17.360> know<05:14:17.520> the<05:14:17.718> drill 05:14:18.150 --> 05:14:18.160 align:start position:0% search posts now as you know the drill 05:14:18.160 --> 05:14:21.270 align:start position:0% search posts now as you know the drill we<05:14:18.280> have<05:14:18.400> to<05:14:18.600> consume<05:14:19.120> those<05:14:19.680> within<05:14:20.400> queries 05:14:21.270 --> 05:14:21.280 align:start position:0% we have to consume those within queries 05:14:21.280 --> 05:14:22.430 align:start position:0% we have to consume those within queries and 05:14:22.430 --> 05:14:22.440 align:start position:0% and 05:14:22.440 --> 05:14:26.510 align:start position:0% and mutations<05:14:23.440> so<05:14:23.840> let's<05:14:24.080> say<05:14:24.320> export<05:14:24.840> const<05:14:25.840> use 05:14:26.510 --> 05:14:26.520 align:start position:0% mutations so let's say export const use 05:14:26.520 --> 05:14:30.948 align:start position:0% mutations so let's say export const use get<05:14:27.440> posts<05:14:28.440> which<05:14:28.600> is<05:14:28.760> equal<05:14:29.040> to<05:14:29.440> a<05:14:29.958> function 05:14:30.948 --> 05:14:30.958 align:start position:0% get posts which is equal to a function 05:14:30.958 --> 05:14:34.150 align:start position:0% get posts which is equal to a function that<05:14:31.280> returns<05:14:32.120> something<05:14:32.480> known<05:14:32.878> as<05:14:33.000> a<05:14:33.320> use 05:14:34.150 --> 05:14:34.160 align:start position:0% that returns something known as a use 05:14:34.160 --> 05:14:37.470 align:start position:0% that returns something known as a use infinite<05:14:35.160> query<05:14:36.040> this<05:14:36.160> is<05:14:36.320> a<05:14:36.520> buil-in<05:14:36.798> react 05:14:37.470 --> 05:14:37.480 align:start position:0% infinite query this is a buil-in react 05:14:37.480 --> 05:14:40.430 align:start position:0% infinite query this is a buil-in react query<05:14:37.920> feature<05:14:38.920> here<05:14:39.280> want<05:14:39.400> to<05:14:39.638> pass<05:14:39.840> a<05:14:40.040> query 05:14:40.430 --> 05:14:40.440 align:start position:0% query feature here want to pass a query 05:14:40.440 --> 05:14:42.868 align:start position:0% query feature here want to pass a query key<05:14:40.878> meaning<05:14:41.520> which<05:14:41.840> posts<05:14:42.280> do<05:14:42.440> we<05:14:42.558> want<05:14:42.680> to 05:14:42.868 --> 05:14:42.878 align:start position:0% key meaning which posts do we want to 05:14:42.878 --> 05:14:46.430 align:start position:0% key meaning which posts do we want to get<05:14:43.440> and<05:14:43.558> that's<05:14:43.760> going<05:14:43.920> to<05:14:44.080> be<05:14:44.600> query<05:14:45.440> keys. 05:14:46.430 --> 05:14:46.440 align:start position:0% get and that's going to be query keys. 05:14:46.440 --> 05:14:50.310 align:start position:0% get and that's going to be query keys. getet<05:14:47.320> infinite<05:14:48.760> posts<05:14:49.760> then<05:14:49.878> we<05:14:50.000> need<05:14:50.120> to 05:14:50.310 --> 05:14:50.320 align:start position:0% getet infinite posts then we need to 05:14:50.320 --> 05:14:52.830 align:start position:0% getet infinite posts then we need to pass<05:14:50.480> a<05:14:50.680> query<05:14:51.320> function<05:14:52.320> which<05:14:52.440> is<05:14:52.558> going<05:14:52.718> to 05:14:52.830 --> 05:14:52.840 align:start position:0% pass a query function which is going to 05:14:52.840 --> 05:14:56.470 align:start position:0% pass a query function which is going to be<05:14:53.080> get<05:14:53.680> infinite<05:14:54.558> posts<05:14:55.120> coming<05:14:55.400> from<05:14:55.718> aight 05:14:56.470 --> 05:14:56.480 align:start position:0% be get infinite posts coming from aight 05:14:56.480 --> 05:14:59.070 align:start position:0% be get infinite posts coming from aight API<05:14:57.480> and<05:14:57.680> then<05:14:57.920> we<05:14:58.080> have<05:14:58.200> to<05:14:58.360> figure<05:14:58.638> out<05:14:58.920> how 05:14:59.070 --> 05:14:59.080 align:start position:0% API and then we have to figure out how 05:14:59.080 --> 05:15:01.030 align:start position:0% API and then we have to figure out how we're<05:14:59.240> going<05:14:59.360> to<05:14:59.520> paginate<05:15:00.320> so<05:15:00.480> we<05:15:00.600> can<05:15:00.718> say 05:15:01.030 --> 05:15:01.040 align:start position:0% we're going to paginate so we can say 05:15:01.040 --> 05:15:05.948 align:start position:0% we're going to paginate so we can say get<05:15:02.040> next<05:15:02.920> page<05:15:03.600> for<05:15:03.878> Ram<05:15:04.878> which<05:15:05.000> is<05:15:05.160> going<05:15:05.360> to 05:15:05.948 --> 05:15:05.958 align:start position:0% get next page for Ram which is going to 05:15:05.958 --> 05:15:09.110 align:start position:0% get next page for Ram which is going to contain<05:15:06.520> the<05:15:06.760> last<05:15:07.160> page<05:15:07.440> that<05:15:07.600> we<05:15:08.120> visited 05:15:09.110 --> 05:15:09.120 align:start position:0% contain the last page that we visited 05:15:09.120 --> 05:15:11.350 align:start position:0% contain the last page that we visited then<05:15:09.480> if<05:15:09.718> there's<05:15:09.920> no<05:15:10.200> data<05:15:10.878> that<05:15:11.000> means<05:15:11.280> there 05:15:11.350 --> 05:15:11.360 align:start position:0% then if there's no data that means there 05:15:11.360 --> 05:15:13.788 align:start position:0% then if there's no data that means there are<05:15:11.520> no<05:15:11.680> more<05:15:12.000> pages<05:15:12.680> so<05:15:12.840> we<05:15:12.920> can<05:15:13.120> say<05:15:13.400> if<05:15:13.600> we're 05:15:13.788 --> 05:15:13.798 align:start position:0% are no more pages so we can say if we're 05:15:13.798 --> 05:15:15.350 align:start position:0% are no more pages so we can say if we're on<05:15:13.958> the<05:15:14.240> last 05:15:15.350 --> 05:15:15.360 align:start position:0% on the last 05:15:15.360 --> 05:15:20.310 align:start position:0% on the last page<05:15:16.360> and<05:15:17.200> if<05:15:18.200> last 05:15:20.310 --> 05:15:20.320 align:start position:0% page and if last 05:15:20.320 --> 05:15:23.310 align:start position:0% page and if last page<05:15:21.760> documents. 05:15:23.310 --> 05:15:23.320 align:start position:0% page documents. 05:15:23.320 --> 05:15:26.910 align:start position:0% page documents. length<05:15:24.320> is<05:15:24.520> equal<05:15:24.840> to<05:15:25.160> zero<05:15:26.160> then<05:15:26.440> we<05:15:26.558> can 05:15:26.910 --> 05:15:26.920 align:start position:0% length is equal to zero then we can 05:15:26.920 --> 05:15:28.350 align:start position:0% length is equal to zero then we can return 05:15:28.350 --> 05:15:28.360 align:start position:0% return 05:15:28.360 --> 05:15:32.310 align:start position:0% return null<05:15:29.360> else<05:15:29.878> we<05:15:29.958> want<05:15:30.080> to<05:15:30.400> find<05:15:30.920> the<05:15:31.160> ID<05:15:31.920> of<05:15:32.080> the 05:15:32.310 --> 05:15:32.320 align:start position:0% null else we want to find the ID of the 05:15:32.320 --> 05:15:35.628 align:start position:0% null else we want to find the ID of the last<05:15:32.680> page<05:15:33.200> so<05:15:33.360> we<05:15:33.480> can<05:15:33.638> say<05:15:33.878> last<05:15:34.200> ID<05:15:35.200> is<05:15:35.360> equal 05:15:35.628 --> 05:15:35.638 align:start position:0% last page so we can say last ID is equal 05:15:35.638 --> 05:15:38.110 align:start position:0% last page so we can say last ID is equal to<05:15:35.878> last<05:15:36.558> page. 05:15:38.110 --> 05:15:38.120 align:start position:0% to last page. 05:15:38.120 --> 05:15:40.470 align:start position:0% to last page. documents<05:15:39.120> and<05:15:39.320> then<05:15:39.680> we<05:15:39.798> want<05:15:39.920> to<05:15:40.040> get<05:15:40.240> the 05:15:40.470 --> 05:15:40.480 align:start position:0% documents and then we want to get the 05:15:40.480 --> 05:15:43.868 align:start position:0% documents and then we want to get the last<05:15:40.840> page.<05:15:41.638> documents. 05:15:43.868 --> 05:15:43.878 align:start position:0% last page. documents. 05:15:43.878 --> 05:15:46.788 align:start position:0% last page. documents. length<05:15:44.878> minus<05:15:45.280> one<05:15:46.040> this<05:15:46.160> is<05:15:46.280> going<05:15:46.440> to<05:15:46.638> give 05:15:46.788 --> 05:15:46.798 align:start position:0% length minus one this is going to give 05:15:46.798 --> 05:15:49.230 align:start position:0% length minus one this is going to give us<05:15:47.040> the<05:15:47.480> last<05:15:47.920> page<05:15:48.480> and<05:15:48.600> then<05:15:48.718> we<05:15:48.798> can<05:15:48.920> say 05:15:49.230 --> 05:15:49.240 align:start position:0% us the last page and then we can say 05:15:49.240 --> 05:15:52.590 align:start position:0% us the last page and then we can say that<05:15:49.558> dollar<05:15:49.920> sign<05:15:50.320> ID<05:15:50.920> of<05:15:51.160> that<05:15:51.440> page<05:15:52.320> and<05:15:52.520> we 05:15:52.590 --> 05:15:52.600 align:start position:0% that dollar sign ID of that page and we 05:15:52.600 --> 05:15:56.030 align:start position:0% that dollar sign ID of that page and we can<05:15:52.920> return<05:15:53.520> the<05:15:53.760> last<05:15:54.480> ID<05:15:55.480> here<05:15:55.840> it's 05:15:56.030 --> 05:15:56.040 align:start position:0% can return the last ID here it's 05:15:56.040 --> 05:15:58.070 align:start position:0% can return the last ID here it's complaining<05:15:56.600> that<05:15:56.878> last<05:15:57.200> page<05:15:57.440> is<05:15:57.638> possibly 05:15:58.070 --> 05:15:58.080 align:start position:0% complaining that last page is possibly 05:15:58.080 --> 05:16:00.350 align:start position:0% complaining that last page is possibly undefined<05:15:59.080> that's<05:15:59.360> okay<05:15:59.600> we<05:15:59.760> know<05:16:00.040> it<05:16:00.160> will 05:16:00.350 --> 05:16:00.360 align:start position:0% undefined that's okay we know it will 05:16:00.360 --> 05:16:02.948 align:start position:0% undefined that's okay we know it will not<05:16:00.638> be<05:16:01.240> and<05:16:01.600> finally<05:16:01.958> we<05:16:02.080> can<05:16:02.200> do<05:16:02.360> a<05:16:02.558> similar 05:16:02.948 --> 05:16:02.958 align:start position:0% not be and finally we can do a similar 05:16:02.958 --> 05:16:06.070 align:start position:0% not be and finally we can do a similar one<05:16:03.440> for<05:16:03.920> the<05:16:04.120> use<05:16:04.558> search<05:16:04.920> posts<05:16:05.558> so<05:16:05.840> right 05:16:06.070 --> 05:16:06.080 align:start position:0% one for the use search posts so right 05:16:06.080 --> 05:16:10.590 align:start position:0% one for the use search posts so right here<05:16:06.400> we<05:16:06.520> can<05:16:06.638> say<05:16:07.000> export<05:16:07.958> const<05:16:08.798> use<05:16:09.520> search 05:16:10.590 --> 05:16:10.600 align:start position:0% here we can say export const use search 05:16:10.600 --> 05:16:14.030 align:start position:0% here we can say export const use search posts<05:16:11.600> is<05:16:11.840> equal<05:16:12.160> to<05:16:13.080> a<05:16:13.240> function<05:16:13.638> where<05:16:13.760> we 05:16:14.030 --> 05:16:14.040 align:start position:0% posts is equal to a function where we 05:16:14.040 --> 05:16:17.590 align:start position:0% posts is equal to a function where we pass<05:16:14.480> the<05:16:14.638> search<05:16:15.040> term<05:16:15.680> of<05:16:15.840> a<05:16:16.000> type<05:16:16.600> string 05:16:17.590 --> 05:16:17.600 align:start position:0% pass the search term of a type string 05:16:17.600 --> 05:16:21.350 align:start position:0% pass the search term of a type string and<05:16:17.840> then<05:16:18.600> we<05:16:19.000> return<05:16:19.520> a<05:16:19.718> use 05:16:21.350 --> 05:16:21.360 align:start position:0% and then we return a use 05:16:21.360 --> 05:16:25.150 align:start position:0% and then we return a use Query<05:16:22.360> where<05:16:22.718> the<05:16:22.878> query<05:16:23.360> key<05:16:24.040> is<05:16:24.280> equal<05:16:24.600> to 05:16:25.150 --> 05:16:25.160 align:start position:0% Query where the query key is equal to 05:16:25.160 --> 05:16:27.830 align:start position:0% Query where the query key is equal to query.<05:16:25.958> keys<05:16:26.798> and<05:16:26.958> then<05:16:27.080> it's<05:16:27.240> going<05:16:27.400> to<05:16:27.558> be 05:16:27.830 --> 05:16:27.840 align:start position:0% query. keys and then it's going to be 05:16:27.840 --> 05:16:30.430 align:start position:0% query. keys and then it's going to be search<05:16:28.520> posts<05:16:29.520> and<05:16:29.638> we<05:16:29.798> don't<05:16:30.040> pass<05:16:30.280> the 05:16:30.430 --> 05:16:30.440 align:start position:0% search posts and we don't pass the 05:16:30.440 --> 05:16:33.708 align:start position:0% search posts and we don't pass the search<05:16:30.760> term<05:16:31.160> here<05:16:31.840> we<05:16:32.080> pass<05:16:32.320> it<05:16:32.840> under<05:16:33.280> query 05:16:33.708 --> 05:16:33.718 align:start position:0% search term here we pass it under query 05:16:33.718 --> 05:16:36.070 align:start position:0% search term here we pass it under query function<05:16:34.680> once<05:16:34.840> we<05:16:35.000> call<05:16:35.320> the 05:16:36.070 --> 05:16:36.080 align:start position:0% function once we call the 05:16:36.080 --> 05:16:39.708 align:start position:0% function once we call the function<05:16:37.080> so<05:16:37.360> query<05:16:37.840> FN<05:16:38.840> is<05:16:39.000> going<05:16:39.160> to<05:16:39.440> be<05:16:39.600> a 05:16:39.708 --> 05:16:39.718 align:start position:0% function so query FN is going to be a 05:16:39.718 --> 05:16:42.030 align:start position:0% function so query FN is going to be a callback<05:16:40.200> function<05:16:40.760> where<05:16:40.920> we<05:16:41.120> call<05:16:41.878> the 05:16:42.030 --> 05:16:42.040 align:start position:0% callback function where we call the 05:16:42.040 --> 05:16:44.868 align:start position:0% callback function where we call the function<05:16:42.360> we<05:16:42.520> created<05:16:43.320> called<05:16:43.680> search<05:16:44.120> posts 05:16:44.868 --> 05:16:44.878 align:start position:0% function we created called search posts 05:16:44.878 --> 05:16:48.670 align:start position:0% function we created called search posts coming<05:16:45.240> from<05:16:45.798> aight<05:16:46.520> API<05:16:47.520> to<05:16:47.798> which<05:16:48.240> we<05:16:48.440> pass 05:16:48.670 --> 05:16:48.680 align:start position:0% coming from aight API to which we pass 05:16:48.680 --> 05:16:51.750 align:start position:0% coming from aight API to which we pass the<05:16:48.798> search<05:16:49.440> term<05:16:50.440> finally<05:16:50.878> as<05:16:51.120> before<05:16:51.600> we 05:16:51.750 --> 05:16:51.760 align:start position:0% the search term finally as before we 05:16:51.760 --> 05:16:54.990 align:start position:0% the search term finally as before we have<05:16:51.878> to<05:16:52.200> do<05:16:52.440> the<05:16:53.040> enabled<05:16:54.040> this<05:16:54.200> means<05:16:54.680> when 05:16:54.990 --> 05:16:55.000 align:start position:0% have to do the enabled this means when 05:16:55.000 --> 05:16:57.430 align:start position:0% have to do the enabled this means when is<05:16:55.120> it<05:16:55.240> going<05:16:55.440> to<05:16:55.638> automatically<05:16:56.440> refetch 05:16:57.430 --> 05:16:57.440 align:start position:0% is it going to automatically refetch 05:16:57.440 --> 05:17:00.230 align:start position:0% is it going to automatically refetch when<05:16:57.798> the<05:16:57.920> search<05:16:58.320> term<05:16:58.840> changes<05:16:59.760> and<05:16:59.958> this<05:17:00.080> is 05:17:00.230 --> 05:17:00.240 align:start position:0% when the search term changes and this is 05:17:00.240 --> 05:17:03.350 align:start position:0% when the search term changes and this is how<05:17:00.360> we<05:17:00.520> do<05:17:00.680> it<05:17:01.520> so<05:17:01.958> this<05:17:02.080> is<05:17:02.320> great<05:17:02.878> now<05:17:03.040> we<05:17:03.160> can 05:17:03.350 --> 05:17:03.360 align:start position:0% how we do it so this is great now we can 05:17:03.360 --> 05:17:06.310 align:start position:0% how we do it so this is great now we can consume<05:17:04.240> both<05:17:04.440> of<05:17:04.638> these<05:17:05.080> within<05:17:05.440> our<05:17:05.718> explore 05:17:06.310 --> 05:17:06.320 align:start position:0% consume both of these within our explore 05:17:06.320 --> 05:17:08.510 align:start position:0% consume both of these within our explore page<05:17:06.958> in<05:17:07.120> the<05:17:07.320> same<05:17:07.600> way<05:17:07.798> we<05:17:07.920> have<05:17:08.080> been<05:17:08.200> doing 05:17:08.510 --> 05:17:08.520 align:start position:0% page in the same way we have been doing 05:17:08.520 --> 05:17:12.948 align:start position:0% page in the same way we have been doing so<05:17:08.920> far<05:17:09.920> so<05:17:10.280> right<05:17:10.480> here<05:17:10.760> at<05:17:10.878> the<05:17:11.080> top<05:17:11.958> const 05:17:12.948 --> 05:17:12.958 align:start position:0% so far so right here at the top const 05:17:12.958 --> 05:17:18.708 align:start position:0% so far so right here at the top const data<05:17:13.718> as<05:17:14.600> searched<05:17:15.718> posts<05:17:16.718> and<05:17:17.080> is<05:17:17.718> fetching 05:17:18.708 --> 05:17:18.718 align:start position:0% data as searched posts and is fetching 05:17:18.718 --> 05:17:22.628 align:start position:0% data as searched posts and is fetching as<05:17:19.080> is<05:17:19.558> search<05:17:20.718> fetching<05:17:21.718> that's<05:17:22.000> equal<05:17:22.320> to 05:17:22.628 --> 05:17:22.638 align:start position:0% as is search fetching that's equal to 05:17:22.638 --> 05:17:26.070 align:start position:0% as is search fetching that's equal to use<05:17:23.520> search<05:17:24.280> posts<05:17:25.000> coming<05:17:25.240> from<05:17:25.520> queries<05:17:25.878> and 05:17:26.070 --> 05:17:26.080 align:start position:0% use search posts coming from queries and 05:17:26.080 --> 05:17:28.628 align:start position:0% use search posts coming from queries and mutations<05:17:26.958> to<05:17:27.200> which<05:17:27.360> we<05:17:27.520> have<05:17:27.638> to<05:17:27.920> pass<05:17:28.520> the 05:17:28.628 --> 05:17:28.638 align:start position:0% mutations to which we have to pass the 05:17:28.638 --> 05:17:31.628 align:start position:0% mutations to which we have to pass the search<05:17:29.160> value<05:17:30.160> one<05:17:30.400> cool<05:17:30.638> thing<05:17:30.878> about<05:17:31.160> this 05:17:31.628 --> 05:17:31.638 align:start position:0% search value one cool thing about this 05:17:31.638 --> 05:17:33.788 align:start position:0% search value one cool thing about this is<05:17:32.200> if<05:17:32.360> we<05:17:32.440> were<05:17:32.638> to<05:17:32.840> just<05:17:33.040> pass<05:17:33.240> a<05:17:33.440> regular 05:17:33.788 --> 05:17:33.798 align:start position:0% is if we were to just pass a regular 05:17:33.798 --> 05:17:36.470 align:start position:0% is if we were to just pass a regular search<05:17:34.200> value<05:17:34.798> it<05:17:34.920> would<05:17:35.160> recall<05:17:35.798> this<05:17:36.160> every 05:17:36.470 --> 05:17:36.480 align:start position:0% search value it would recall this every 05:17:36.480 --> 05:17:39.350 align:start position:0% search value it would recall this every time<05:17:36.760> that<05:17:36.920> we<05:17:37.080> enter<05:17:37.480> a<05:17:37.920> keystroke<05:17:38.920> but<05:17:39.160> this 05:17:39.350 --> 05:17:39.360 align:start position:0% time that we enter a keystroke but this 05:17:39.360 --> 05:17:41.990 align:start position:0% time that we enter a keystroke but this can<05:17:39.520> be<05:17:39.680> quite<05:17:39.878> draining<05:17:40.360> for<05:17:40.600> our<05:17:40.878> API<05:17:41.798> and 05:17:41.990 --> 05:17:42.000 align:start position:0% can be quite draining for our API and 05:17:42.000 --> 05:17:44.788 align:start position:0% can be quite draining for our API and our<05:17:42.280> server<05:17:43.000> and<05:17:43.240> everybody<05:17:43.638> involved<05:17:44.520> so 05:17:44.788 --> 05:17:44.798 align:start position:0% our server and everybody involved so 05:17:44.798 --> 05:17:46.310 align:start position:0% our server and everybody involved so usually<05:17:45.160> what<05:17:45.280> you<05:17:45.400> want<05:17:45.520> to<05:17:45.638> do<05:17:46.000> is<05:17:46.120> you<05:17:46.200> want 05:17:46.310 --> 05:17:46.320 align:start position:0% usually what you want to do is you want 05:17:46.320 --> 05:17:48.230 align:start position:0% usually what you want to do is you want to<05:17:46.440> do<05:17:46.558> it<05:17:46.798> after<05:17:47.160> a<05:17:47.440> specific<05:17:47.840> amount<05:17:48.080> of 05:17:48.230 --> 05:17:48.240 align:start position:0% to do it after a specific amount of 05:17:48.240 --> 05:17:50.788 align:start position:0% to do it after a specific amount of milliseconds<05:17:49.040> pass<05:17:49.360> by<05:17:50.040> then<05:17:50.200> you<05:17:50.320> want<05:17:50.440> to<05:17:50.558> do 05:17:50.788 --> 05:17:50.798 align:start position:0% milliseconds pass by then you want to do 05:17:50.798 --> 05:17:54.110 align:start position:0% milliseconds pass by then you want to do another<05:17:51.160> call<05:17:52.040> this<05:17:52.160> is<05:17:52.280> a<05:17:52.558> method<05:17:53.080> called 05:17:54.110 --> 05:17:54.120 align:start position:0% another call this is a method called 05:17:54.120 --> 05:17:57.750 align:start position:0% another call this is a method called debouncing<05:17:55.120> so<05:17:55.520> what<05:17:55.638> you<05:17:55.718> can<05:17:55.920> do<05:17:56.558> is<05:17:57.280> close 05:17:57.750 --> 05:17:57.760 align:start position:0% debouncing so what you can do is close 05:17:57.760 --> 05:18:00.110 align:start position:0% debouncing so what you can do is close everything<05:17:58.200> collapse<05:17:58.600> all<05:17:58.798> the<05:17:58.958> files<05:17:59.760> go<05:17:59.878> to 05:18:00.110 --> 05:18:00.120 align:start position:0% everything collapse all the files go to 05:18:00.120 --> 05:18:03.350 align:start position:0% everything collapse all the files go to source<05:18:00.760> and<05:18:00.920> create<05:18:01.400> a<05:18:01.558> new<05:18:01.760> folder<05:18:02.440> called 05:18:03.350 --> 05:18:03.360 align:start position:0% source and create a new folder called 05:18:03.360 --> 05:18:06.390 align:start position:0% source and create a new folder called hooks<05:18:04.360> within<05:18:04.718> hooks<05:18:05.320> you<05:18:05.440> can<05:18:05.638> create<05:18:05.878> a<05:18:06.040> hook 05:18:06.390 --> 05:18:06.400 align:start position:0% hooks within hooks you can create a hook 05:18:06.400 --> 05:18:09.390 align:start position:0% hooks within hooks you can create a hook called<05:18:06.840> use<05:18:07.878> debounce 05:18:09.390 --> 05:18:09.400 align:start position:0% called use debounce 05:18:09.400 --> 05:18:12.230 align:start position:0% called use debounce dots<05:18:10.400> and<05:18:10.600> this<05:18:10.718> is<05:18:10.840> a<05:18:11.040> hook<05:18:11.400> that<05:18:11.520> I<05:18:11.680> found 05:18:12.230 --> 05:18:12.240 align:start position:0% dots and this is a hook that I found 05:18:12.240 --> 05:18:15.310 align:start position:0% dots and this is a hook that I found directly<05:18:13.000> from<05:18:13.360> react<05:18:13.840> query<05:18:14.798> here<05:18:15.120> they 05:18:15.310 --> 05:18:15.320 align:start position:0% directly from react query here they 05:18:15.320 --> 05:18:17.590 align:start position:0% directly from react query here they provided<05:18:15.798> its<05:18:16.000> entire<05:18:16.360> code<05:18:17.040> essentially 05:18:17.590 --> 05:18:17.600 align:start position:0% provided its entire code essentially 05:18:17.600 --> 05:18:19.910 align:start position:0% provided its entire code essentially what<05:18:17.718> it<05:18:17.840> does<05:18:18.320> is<05:18:18.520> as<05:18:18.638> you<05:18:18.760> start<05:18:19.080> typing<05:18:19.760> it 05:18:19.910 --> 05:18:19.920 align:start position:0% what it does is as you start typing it 05:18:19.920 --> 05:18:22.948 align:start position:0% what it does is as you start typing it de<05:18:20.240> bounces<05:18:21.040> the<05:18:21.200> query<05:18:21.878> so<05:18:22.160> it<05:18:22.320> saves<05:18:22.638> you 05:18:22.948 --> 05:18:22.958 align:start position:0% de bounces the query so it saves you 05:18:22.958 --> 05:18:25.430 align:start position:0% de bounces the query so it saves you performance<05:18:23.958> and<05:18:24.200> this<05:18:24.400> entire<05:18:24.798> debounce 05:18:25.430 --> 05:18:25.440 align:start position:0% performance and this entire debounce 05:18:25.440 --> 05:18:27.830 align:start position:0% performance and this entire debounce query<05:18:26.040> is<05:18:26.200> going<05:18:26.360> to<05:18:26.520> be<05:18:26.718> in<05:18:26.840> the<05:18:27.040> GitHub<05:18:27.440> gist 05:18:27.830 --> 05:18:27.840 align:start position:0% query is going to be in the GitHub gist 05:18:27.840 --> 05:18:30.590 align:start position:0% query is going to be in the GitHub gist down<05:18:28.080> below<05:18:28.718> so<05:18:28.878> you<05:18:28.958> can<05:18:29.160> simply<05:18:29.558> copy<05:18:29.840> it<05:18:30.320> and 05:18:30.590 --> 05:18:30.600 align:start position:0% down below so you can simply copy it and 05:18:30.600 --> 05:18:32.910 align:start position:0% down below so you can simply copy it and paste<05:18:30.840> it<05:18:31.080> right<05:18:31.360> right<05:18:31.558> here<05:18:32.360> once<05:18:32.558> we<05:18:32.760> have 05:18:32.910 --> 05:18:32.920 align:start position:0% paste it right right here once we have 05:18:32.920 --> 05:18:35.390 align:start position:0% paste it right right here once we have it<05:18:33.480> instead<05:18:33.760> of<05:18:33.958> passing<05:18:34.240> the<05:18:34.360> search<05:18:34.760> value 05:18:35.390 --> 05:18:35.400 align:start position:0% it instead of passing the search value 05:18:35.400 --> 05:18:39.788 align:start position:0% it instead of passing the search value we<05:18:35.520> can<05:18:35.718> define<05:18:36.160> a<05:18:36.400> new<05:18:37.320> const<05:18:38.600> debounced 05:18:39.788 --> 05:18:39.798 align:start position:0% we can define a new const debounced 05:18:39.798 --> 05:18:42.868 align:start position:0% we can define a new const debounced value<05:18:40.798> which<05:18:40.958> is<05:18:41.080> going<05:18:41.240> to<05:18:41.400> be<05:18:41.600> equal<05:18:41.878> to<05:18:42.320> use 05:18:42.868 --> 05:18:42.878 align:start position:0% value which is going to be equal to use 05:18:42.878 --> 05:18:45.670 align:start position:0% value which is going to be equal to use the<05:18:43.320> bounce<05:18:44.320> to<05:18:44.558> which<05:18:44.680> you<05:18:44.878> pass<05:18:45.160> the<05:18:45.240> search 05:18:45.670 --> 05:18:45.680 align:start position:0% the bounce to which you pass the search 05:18:45.680 --> 05:18:47.708 align:start position:0% the bounce to which you pass the search value<05:18:46.520> and<05:18:46.680> then<05:18:46.840> set<05:18:47.080> in<05:18:47.320> number<05:18:47.558> of 05:18:47.708 --> 05:18:47.718 align:start position:0% value and then set in number of 05:18:47.718 --> 05:18:50.628 align:start position:0% value and then set in number of milliseconds<05:18:48.680> like<05:18:48.920> 500<05:18:49.878> until<05:18:50.240> when<05:18:50.480> it's 05:18:50.628 --> 05:18:50.638 align:start position:0% milliseconds like 500 until when it's 05:18:50.638 --> 05:18:52.548 align:start position:0% milliseconds like 500 until when it's going<05:18:50.718> to<05:18:50.840> be<05:18:51.040> recalled<05:18:52.040> and<05:18:52.120> you<05:18:52.240> need<05:18:52.360> to 05:18:52.548 --> 05:18:52.558 align:start position:0% going to be recalled and you need to 05:18:52.558 --> 05:18:55.868 align:start position:0% going to be recalled and you need to import<05:18:53.000> use<05:18:53.320> de<05:18:53.558> bounds<05:18:54.120> from<05:18:54.360> hooks<05:18:54.878> use 05:18:55.868 --> 05:18:55.878 align:start position:0% import use de bounds from hooks use 05:18:55.878 --> 05:18:58.110 align:start position:0% import use de bounds from hooks use debounce<05:18:56.878> and<05:18:57.000> then<05:18:57.120> you<05:18:57.240> can<05:18:57.520> pass<05:18:57.920> the 05:18:58.110 --> 05:18:58.120 align:start position:0% debounce and then you can pass the 05:18:58.120 --> 05:18:59.990 align:start position:0% debounce and then you can pass the debounced<05:18:58.798> value<05:18:59.320> which<05:18:59.400> is<05:18:59.558> going<05:18:59.680> to<05:18:59.840> make 05:18:59.990 --> 05:19:00.000 align:start position:0% debounced value which is going to make 05:19:00.000 --> 05:19:02.390 align:start position:0% debounced value which is going to make our<05:19:00.200> application<05:19:00.958> even<05:19:01.280> even<05:19:01.520> more 05:19:02.390 --> 05:19:02.400 align:start position:0% our application even even more 05:19:02.400 --> 05:19:05.110 align:start position:0% our application even even more optimized<05:19:03.400> so<05:19:03.718> here<05:19:04.120> we<05:19:04.280> have<05:19:04.558> everything 05:19:05.110 --> 05:19:05.120 align:start position:0% optimized so here we have everything 05:19:05.120 --> 05:19:07.510 align:start position:0% optimized so here we have everything when<05:19:05.240> it<05:19:05.400> comes<05:19:05.600> to<05:19:05.760> the<05:19:05.958> search<05:19:06.958> but<05:19:07.240> above 05:19:07.510 --> 05:19:07.520 align:start position:0% when it comes to the search but above 05:19:07.520 --> 05:19:12.070 align:start position:0% when it comes to the search but above the<05:19:07.638> search<05:19:08.240> we<05:19:08.360> can<05:19:08.558> also<05:19:09.240> Define<05:19:10.240> const<05:19:11.200> data 05:19:12.070 --> 05:19:12.080 align:start position:0% the search we can also Define const data 05:19:12.080 --> 05:19:12.990 align:start position:0% the search we can also Define const data as 05:19:12.990 --> 05:19:13.000 align:start position:0% as 05:19:13.000 --> 05:19:17.670 align:start position:0% as posts<05:19:14.000> fetch<05:19:14.638> next<05:19:15.360> page<05:19:16.360> as<05:19:16.520> well<05:19:16.718> as<05:19:17.040> has 05:19:17.670 --> 05:19:17.680 align:start position:0% posts fetch next page as well as has 05:19:17.680 --> 05:19:22.830 align:start position:0% posts fetch next page as well as has next<05:19:18.160> page<05:19:19.120> which<05:19:19.240> is<05:19:19.480> equal<05:19:19.760> to<05:19:20.320> use<05:19:21.120> get 05:19:22.830 --> 05:19:22.840 align:start position:0% next page which is equal to use get 05:19:22.840 --> 05:19:25.470 align:start position:0% next page which is equal to use get post<05:19:23.840> and<05:19:23.958> then<05:19:24.080> we<05:19:24.240> have<05:19:24.360> to<05:19:24.558> import<05:19:25.000> this 05:19:25.470 --> 05:19:25.480 align:start position:0% post and then we have to import this 05:19:25.480 --> 05:19:27.030 align:start position:0% post and then we have to import this from<05:19:25.878> queries<05:19:26.280> and 05:19:27.030 --> 05:19:27.040 align:start position:0% from queries and 05:19:27.040 --> 05:19:29.470 align:start position:0% from queries and mutations<05:19:28.040> now<05:19:28.558> this<05:19:28.718> gives<05:19:28.920> us<05:19:29.040> a<05:19:29.200> lot<05:19:29.320> of 05:19:29.470 --> 05:19:29.480 align:start position:0% mutations now this gives us a lot of 05:19:29.480 --> 05:19:31.270 align:start position:0% mutations now this gives us a lot of data<05:19:29.718> to<05:19:29.878> work<05:19:30.160> with<05:19:30.520> because<05:19:30.798> no<05:19:31.000> longer 05:19:31.270 --> 05:19:31.280 align:start position:0% data to work with because no longer 05:19:31.280 --> 05:19:33.788 align:start position:0% data to work with because no longer longer<05:19:31.480> do<05:19:31.600> we<05:19:31.718> have<05:19:31.840> to<05:19:32.000> fake<05:19:32.320> the<05:19:32.480> posts<05:19:33.360> now 05:19:33.788 --> 05:19:33.798 align:start position:0% longer do we have to fake the posts now 05:19:33.798 --> 05:19:36.670 align:start position:0% longer do we have to fake the posts now we<05:19:33.920> can<05:19:34.200> actually<05:19:34.878> use<05:19:35.558> these<05:19:35.920> right 05:19:36.670 --> 05:19:36.680 align:start position:0% we can actually use these right 05:19:36.680 --> 05:19:39.750 align:start position:0% we can actually use these right here<05:19:37.680> and<05:19:37.920> we<05:19:38.000> can<05:19:38.200> uncomment<05:19:39.000> what<05:19:39.200> we<05:19:39.400> have 05:19:39.750 --> 05:19:39.760 align:start position:0% here and we can uncomment what we have 05:19:39.760 --> 05:19:41.150 align:start position:0% here and we can uncomment what we have right<05:19:39.958> here 05:19:41.150 --> 05:19:41.160 align:start position:0% right here 05:19:41.160 --> 05:19:44.150 align:start position:0% right here below<05:19:42.160> if<05:19:42.240> you<05:19:42.400> do<05:19:42.638> that<05:19:42.920> and<05:19:43.120> save<05:19:43.400> it<05:19:43.958> we 05:19:44.150 --> 05:19:44.160 align:start position:0% below if you do that and save it we 05:19:44.160 --> 05:19:46.430 align:start position:0% below if you do that and save it we still<05:19:44.400> get<05:19:44.558> an<05:19:44.718> error<05:19:45.520> but<05:19:45.718> that's<05:19:46.000> okay<05:19:46.320> we 05:19:46.430 --> 05:19:46.440 align:start position:0% still get an error but that's okay we 05:19:46.440 --> 05:19:49.628 align:start position:0% still get an error but that's okay we can<05:19:46.600> go<05:19:46.718> to<05:19:47.000> inspect<05:19:48.000> and<05:19:48.120> then<05:19:48.400> conso<05:19:49.400> and<05:19:49.558> we 05:19:49.628 --> 05:19:49.638 align:start position:0% can go to inspect and then conso and we 05:19:49.638 --> 05:19:51.430 align:start position:0% can go to inspect and then conso and we can<05:19:49.798> see<05:19:50.040> that<05:19:50.160> it's<05:19:50.320> complaining<05:19:51.160> that<05:19:51.280> it 05:19:51.430 --> 05:19:51.440 align:start position:0% can see that it's complaining that it 05:19:51.440 --> 05:19:55.430 align:start position:0% can see that it's complaining that it cannot<05:19:51.718> read<05:19:52.080> undefined<05:19:52.718> at<05:19:53.040> Pages<05:19:53.878> line<05:19:54.440> 16 05:19:55.430 --> 05:19:55.440 align:start position:0% cannot read undefined at Pages line 16 05:19:55.440 --> 05:19:58.390 align:start position:0% cannot read undefined at Pages line 16 so<05:19:55.680> that<05:19:55.798> is<05:19:56.200> right<05:19:56.558> here<05:19:57.558> apparently<05:19:58.080> our 05:19:58.390 --> 05:19:58.400 align:start position:0% so that is right here apparently our 05:19:58.400 --> 05:20:01.868 align:start position:0% so that is right here apparently our posts<05:19:59.040> still<05:19:59.320> don't<05:19:59.638> have<05:19:59.840> the<05:20:00.160> pages 05:20:01.868 --> 05:20:01.878 align:start position:0% posts still don't have the pages 05:20:01.878 --> 05:20:04.070 align:start position:0% posts still don't have the pages other<05:20:02.160> errors<05:20:02.680> also<05:20:02.958> include<05:20:03.558> I'm<05:20:03.718> guessing 05:20:04.070 --> 05:20:04.080 align:start position:0% other errors also include I'm guessing 05:20:04.080 --> 05:20:06.910 align:start position:0% other errors also include I'm guessing something<05:20:04.440> related<05:20:04.760> to<05:20:05.040> that<05:20:05.718> yes<05:20:06.440> so<05:20:06.680> what<05:20:06.840> we 05:20:06.910 --> 05:20:06.920 align:start position:0% something related to that yes so what we 05:20:06.920 --> 05:20:09.990 align:start position:0% something related to that yes so what we can<05:20:07.080> do<05:20:07.360> is<05:20:07.480> we<05:20:07.600> can<05:20:07.760> conso<05:20:08.240> log<05:20:08.798> the<05:20:08.958> posts<05:20:09.798> and 05:20:09.990 --> 05:20:10.000 align:start position:0% can do is we can conso log the posts and 05:20:10.000 --> 05:20:13.230 align:start position:0% can do is we can conso log the posts and see<05:20:10.520> what<05:20:10.680> are<05:20:10.840> we<05:20:11.040> getting<05:20:11.638> back<05:20:12.638> if<05:20:12.718> I<05:20:12.878> reload 05:20:13.230 --> 05:20:13.240 align:start position:0% see what are we getting back if I reload 05:20:13.240 --> 05:20:15.868 align:start position:0% see what are we getting back if I reload the<05:20:13.400> page<05:20:13.680> once<05:20:13.958> again<05:20:14.840> it<05:20:15.040> seems<05:20:15.440> like<05:20:15.638> the 05:20:15.868 --> 05:20:15.878 align:start position:0% the page once again it seems like the 05:20:15.878 --> 05:20:17.390 align:start position:0% the page once again it seems like the posts<05:20:16.440> are 05:20:17.390 --> 05:20:17.400 align:start position:0% posts are 05:20:17.400 --> 05:20:19.788 align:start position:0% posts are undefined<05:20:18.400> so<05:20:18.558> let's<05:20:18.798> figure<05:20:19.040> out<05:20:19.400> why<05:20:19.600> that 05:20:19.788 --> 05:20:19.798 align:start position:0% undefined so let's figure out why that 05:20:19.798 --> 05:20:22.750 align:start position:0% undefined so let's figure out why that is<05:20:20.600> one<05:20:20.840> thing<05:20:21.120> that<05:20:21.320> we<05:20:21.520> might<05:20:21.718> need<05:20:21.920> to<05:20:22.080> do<05:20:22.600> is 05:20:22.750 --> 05:20:22.760 align:start position:0% is one thing that we might need to do is 05:20:22.760 --> 05:20:24.310 align:start position:0% is one thing that we might need to do is just<05:20:22.920> ensure<05:20:23.240> that<05:20:23.360> we<05:20:23.480> don't<05:20:23.760> get<05:20:23.878> to<05:20:24.120> this 05:20:24.310 --> 05:20:24.320 align:start position:0% just ensure that we don't get to this 05:20:24.320 --> 05:20:27.190 align:start position:0% just ensure that we don't get to this block<05:20:24.600> of<05:20:24.760> code<05:20:25.360> if<05:20:25.520> the<05:20:25.680> posts<05:20:26.040> are<05:20:26.240> undefined 05:20:27.190 --> 05:20:27.200 align:start position:0% block of code if the posts are undefined 05:20:27.200 --> 05:20:29.548 align:start position:0% block of code if the posts are undefined and<05:20:27.400> it<05:20:27.520> seems<05:20:27.718> that<05:20:27.920> they<05:20:28.040> are<05:20:28.920> so<05:20:29.280> what<05:20:29.440> we 05:20:29.548 --> 05:20:29.558 align:start position:0% and it seems that they are so what we 05:20:29.558 --> 05:20:31.510 align:start position:0% and it seems that they are so what we can<05:20:29.718> do<05:20:30.120> is<05:20:30.360> add<05:20:30.558> an<05:20:30.718> if<05:20:30.878> state<05:20:31.120> statement 05:20:31.510 --> 05:20:31.520 align:start position:0% can do is add an if state statement 05:20:31.520 --> 05:20:32.390 align:start position:0% can do is add an if state statement right 05:20:32.390 --> 05:20:32.400 align:start position:0% right 05:20:32.400 --> 05:20:36.310 align:start position:0% right here<05:20:33.400> checking<05:20:34.120> if<05:20:34.360> we<05:20:34.520> don't<05:20:34.840> have<05:20:35.160> posts<05:20:36.160> and 05:20:36.310 --> 05:20:36.320 align:start position:0% here checking if we don't have posts and 05:20:36.320 --> 05:20:38.750 align:start position:0% here checking if we don't have posts and if<05:20:36.440> we<05:20:36.600> don't<05:20:36.878> yet<05:20:37.120> have<05:20:37.400> posts<05:20:38.240> then<05:20:38.480> we<05:20:38.600> can 05:20:38.750 --> 05:20:38.760 align:start position:0% if we don't yet have posts then we can 05:20:38.760 --> 05:20:42.110 align:start position:0% if we don't yet have posts then we can simply<05:20:39.440> return<05:20:40.120> a<05:20:40.360> div<05:20:41.160> that<05:20:41.360> has<05:20:41.520> a<05:20:41.798> class 05:20:42.110 --> 05:20:42.120 align:start position:0% simply return a div that has a class 05:20:42.120 --> 05:20:46.990 align:start position:0% simply return a div that has a class name<05:20:42.878> equal<05:20:43.160> to<05:20:43.360> flex<05:20:43.840> D<05:20:44.120> Center<05:20:45.160> w-o<05:20:46.160> and<05:20:46.400> h- 05:20:46.990 --> 05:20:47.000 align:start position:0% name equal to flex D Center w-o and h- 05:20:47.000 --> 05:20:49.230 align:start position:0% name equal to flex D Center w-o and h- fool<05:20:47.760> and<05:20:47.958> this<05:20:48.080> is<05:20:48.240> going<05:20:48.400> to<05:20:48.520> render<05:20:48.958> only 05:20:49.230 --> 05:20:49.240 align:start position:0% fool and this is going to render only 05:20:49.240 --> 05:20:51.470 align:start position:0% fool and this is going to render only one<05:20:49.558> thing<05:20:50.280> which<05:20:50.400> is<05:20:50.558> going<05:20:50.718> to<05:20:50.878> be<05:20:51.200> our 05:20:51.470 --> 05:20:51.480 align:start position:0% one thing which is going to be our 05:20:51.480 --> 05:20:54.150 align:start position:0% one thing which is going to be our self-closing<05:20:52.480> loader<05:20:53.040> component<05:20:53.878> coming 05:20:54.150 --> 05:20:54.160 align:start position:0% self-closing loader component coming 05:20:54.160 --> 05:20:57.708 align:start position:0% self-closing loader component coming from<05:20:54.400> components<05:20:55.120> shared<05:20:56.040> loader<05:20:57.040> if<05:20:57.160> we<05:20:57.320> save 05:20:57.708 --> 05:20:57.718 align:start position:0% from components shared loader if we save 05:20:57.718 --> 05:20:59.910 align:start position:0% from components shared loader if we save this<05:20:58.440> you<05:20:58.558> can<05:20:58.680> see<05:20:58.878> that<05:20:59.040> our<05:20:59.280> app<05:20:59.520> works 05:20:59.910 --> 05:20:59.920 align:start position:0% this you can see that our app works 05:20:59.920 --> 05:21:02.590 align:start position:0% this you can see that our app works again<05:21:00.718> and<05:21:01.240> we<05:21:01.360> can<05:21:01.480> see<05:21:01.760> that<05:21:02.000> first<05:21:02.440> the 05:21:02.590 --> 05:21:02.600 align:start position:0% again and we can see that first the 05:21:02.600 --> 05:21:04.670 align:start position:0% again and we can see that first the posts<05:21:02.878> are<05:21:03.040> undefined<05:21:03.920> but<05:21:04.080> then<05:21:04.280> as<05:21:04.400> soon<05:21:04.558> as 05:21:04.670 --> 05:21:04.680 align:start position:0% posts are undefined but then as soon as 05:21:04.680 --> 05:21:07.590 align:start position:0% posts are undefined but then as soon as it<05:21:04.840> loads<05:21:05.200> them<05:21:05.480> we<05:21:05.638> get<05:21:05.920> one<05:21:06.480> post<05:21:06.920> right<05:21:07.080> here 05:21:07.590 --> 05:21:07.600 align:start position:0% it loads them we get one post right here 05:21:07.600 --> 05:21:10.070 align:start position:0% it loads them we get one post right here with<05:21:07.760> the<05:21:07.958> caption<05:21:08.280> that<05:21:08.400> we<05:21:08.520> have<05:21:08.680> entered<05:21:09.680> so 05:21:10.070 --> 05:21:10.080 align:start position:0% with the caption that we have entered so 05:21:10.080 --> 05:21:12.230 align:start position:0% with the caption that we have entered so this<05:21:10.200> is<05:21:10.400> great<05:21:11.160> and<05:21:11.360> now<05:21:11.680> you<05:21:11.798> can<05:21:11.920> see<05:21:12.120> that 05:21:12.230 --> 05:21:12.240 align:start position:0% this is great and now you can see that 05:21:12.240 --> 05:21:15.430 align:start position:0% this is great and now you can see that we're<05:21:12.480> displaying<05:21:13.160> the<05:21:13.400> grid<05:21:14.000> post<05:21:14.638> list 05:21:15.430 --> 05:21:15.440 align:start position:0% we're displaying the grid post list 05:21:15.440 --> 05:21:18.230 align:start position:0% we're displaying the grid post list great<05:21:16.160> and<05:21:16.320> we're<05:21:16.558> passing<05:21:16.840> the<05:21:17.080> posts<05:21:17.520> within 05:21:18.230 --> 05:21:18.240 align:start position:0% great and we're passing the posts within 05:21:18.240 --> 05:21:20.670 align:start position:0% great and we're passing the posts within them<05:21:19.240> so<05:21:19.558> what<05:21:19.680> do<05:21:19.798> you<05:21:19.920> say<05:21:20.120> that<05:21:20.240> we<05:21:20.360> try<05:21:20.558> to 05:21:20.670 --> 05:21:20.680 align:start position:0% them so what do you say that we try to 05:21:20.680 --> 05:21:23.270 align:start position:0% them so what do you say that we try to show<05:21:21.040> these<05:21:21.280> posts<05:21:21.680> on<05:21:21.798> the<05:21:21.958> explore<05:21:22.480> page 05:21:23.270 --> 05:21:23.280 align:start position:0% show these posts on the explore page 05:21:23.280 --> 05:21:25.310 align:start position:0% show these posts on the explore page let's<05:21:23.480> go<05:21:23.600> ahead<05:21:23.878> and<05:21:24.080> go<05:21:24.280> into<05:21:24.558> the<05:21:24.680> grid<05:21:24.958> post 05:21:25.310 --> 05:21:25.320 align:start position:0% let's go ahead and go into the grid post 05:21:25.320 --> 05:21:28.430 align:start position:0% let's go ahead and go into the grid post list<05:21:25.958> and<05:21:26.240> let's<05:21:26.558> implement<05:21:27.040> it<05:21:27.840> first<05:21:28.160> things 05:21:28.430 --> 05:21:28.440 align:start position:0% list and let's implement it first things 05:21:28.440 --> 05:21:31.590 align:start position:0% list and let's implement it first things first<05:21:28.840> let's<05:21:29.080> get<05:21:29.280> all<05:21:29.520> the<05:21:29.680> necessary<05:21:30.240> props 05:21:31.590 --> 05:21:31.600 align:start position:0% first let's get all the necessary props 05:21:31.600 --> 05:21:33.948 align:start position:0% first let's get all the necessary props most<05:21:31.878> important<05:21:32.320> one<05:21:32.520> is<05:21:32.680> going<05:21:32.840> to<05:21:32.958> be<05:21:33.200> posts 05:21:33.948 --> 05:21:33.958 align:start position:0% most important one is going to be posts 05:21:33.958 --> 05:21:37.548 align:start position:0% most important one is going to be posts so<05:21:34.080> we<05:21:34.200> can<05:21:34.400> Define<05:21:34.798> this<05:21:35.080> as<05:21:35.440> grid<05:21:36.200> post<05:21:36.920> list 05:21:37.548 --> 05:21:37.558 align:start position:0% so we can Define this as grid post list 05:21:37.558 --> 05:21:39.548 align:start position:0% so we can Define this as grid post list props<05:21:38.360> and<05:21:38.480> we<05:21:38.558> can<05:21:38.680> Define<05:21:39.040> them<05:21:39.280> right<05:21:39.400> here 05:21:39.548 --> 05:21:39.558 align:start position:0% props and we can Define them right here 05:21:39.558 --> 05:21:43.670 align:start position:0% props and we can Define them right here at<05:21:39.680> the<05:21:39.878> top<05:21:40.400> by<05:21:40.558> saying<05:21:41.520> type<05:21:42.520> GD<05:21:42.958> post<05:21:43.320> list 05:21:43.670 --> 05:21:43.680 align:start position:0% at the top by saying type GD post list 05:21:43.680 --> 05:21:48.190 align:start position:0% at the top by saying type GD post list props<05:21:44.680> posts<05:21:45.600> is<05:21:45.760> going<05:21:45.920> to<05:21:46.040> be<05:21:46.240> of<05:21:46.360> a<05:21:46.558> type 05:21:48.190 --> 05:21:48.200 align:start position:0% props posts is going to be of a type 05:21:48.200 --> 05:21:50.910 align:start position:0% props posts is going to be of a type models.<05:21:49.200> document<05:21:50.120> but<05:21:50.240> it's<05:21:50.400> going<05:21:50.520> to<05:21:50.638> be<05:21:50.760> an 05:21:50.910 --> 05:21:50.920 align:start position:0% models. document but it's going to be an 05:21:50.920 --> 05:21:54.708 align:start position:0% models. document but it's going to be an array<05:21:51.558> of<05:21:51.760> these<05:21:51.958> models<05:21:52.680> coming<05:21:53.080> from 05:21:54.708 --> 05:21:54.718 align:start position:0% array of these models coming from 05:21:54.718 --> 05:21:57.230 align:start position:0% array of these models coming from ight<05:21:55.718> now<05:21:55.878> that<05:21:56.000> we<05:21:56.120> have<05:21:56.240> the<05:21:56.400> post<05:21:56.798> here 05:21:57.230 --> 05:21:57.240 align:start position:0% ight now that we have the post here 05:21:57.240 --> 05:21:58.990 align:start position:0% ight now that we have the post here let's<05:21:57.480> also<05:21:57.718> get<05:21:57.878> the<05:21:58.040> user<05:21:58.600> because<05:21:58.798> we'll 05:21:58.990 --> 05:21:59.000 align:start position:0% let's also get the user because we'll 05:21:59.000 --> 05:22:00.590 align:start position:0% let's also get the user because we'll have<05:21:59.120> to<05:21:59.240> know<05:21:59.558> which<05:21:59.718> ones<05:21:59.920> were<05:22:00.120> created<05:22:00.480> by 05:22:00.590 --> 05:22:00.600 align:start position:0% have to know which ones were created by 05:22:00.600 --> 05:22:01.830 align:start position:0% have to know which ones were created by the<05:22:00.680> user 05:22:01.830 --> 05:22:01.840 align:start position:0% the user 05:22:01.840 --> 05:22:05.350 align:start position:0% the user so<05:22:02.280> you<05:22:02.400> know<05:22:02.638> the<05:22:02.760> drill<05:22:03.760> const<05:22:04.240> user<05:22:05.080> is 05:22:05.350 --> 05:22:05.360 align:start position:0% so you know the drill const user is 05:22:05.360 --> 05:22:09.548 align:start position:0% so you know the drill const user is equal<05:22:05.760> to<05:22:06.760> use<05:22:07.558> user<05:22:08.320> context<05:22:09.200> which<05:22:09.320> we 05:22:09.548 --> 05:22:09.558 align:start position:0% equal to use user context which we 05:22:09.558 --> 05:22:12.230 align:start position:0% equal to use user context which we import<05:22:10.000> from<05:22:10.280> OD 05:22:12.230 --> 05:22:12.240 align:start position:0% import from OD 05:22:12.240 --> 05:22:14.708 align:start position:0% import from OD context<05:22:13.240> now<05:22:13.400> that<05:22:13.600> we<05:22:13.760> have<05:22:14.000> this<05:22:14.400> we<05:22:14.520> can 05:22:14.708 --> 05:22:14.718 align:start position:0% context now that we have this we can 05:22:14.718 --> 05:22:17.910 align:start position:0% context now that we have this we can wrap<05:22:15.200> all<05:22:15.360> of<05:22:15.558> this<05:22:15.760> in<05:22:15.920> a<05:22:16.120> UL<05:22:16.798> an<05:22:17.080> unordered 05:22:17.910 --> 05:22:17.920 align:start position:0% wrap all of this in a UL an unordered 05:22:17.920 --> 05:22:22.390 align:start position:0% wrap all of this in a UL an unordered list<05:22:18.840> that<05:22:19.080> has<05:22:19.240> a<05:22:19.520> class<05:22:19.878> name<05:22:20.520> equal<05:22:20.840> to<05:22:21.558> grid 05:22:22.390 --> 05:22:22.400 align:start position:0% list that has a class name equal to grid 05:22:22.400 --> 05:22:24.310 align:start position:0% list that has a class name equal to grid Das 05:22:24.310 --> 05:22:24.320 align:start position:0% Das 05:22:24.320 --> 05:22:26.948 align:start position:0% Das container<05:22:25.320> and<05:22:25.520> let's<05:22:25.718> save<05:22:25.958> it<05:22:26.558> you<05:22:26.680> can<05:22:26.798> see 05:22:26.948 --> 05:22:26.958 align:start position:0% container and let's save it you can see 05:22:26.958 --> 05:22:29.548 align:start position:0% container and let's save it you can see it<05:22:27.120> disappears<05:22:27.840> and<05:22:28.000> now<05:22:28.200> within<05:22:28.600> here<05:22:29.200> we<05:22:29.320> can 05:22:29.548 --> 05:22:29.558 align:start position:0% it disappears and now within here we can 05:22:29.558 --> 05:22:33.310 align:start position:0% it disappears and now within here we can map<05:22:29.840> over<05:22:30.080> the<05:22:30.320> posts<05:22:31.000> by<05:22:31.120> saying<05:22:31.480> posts.<05:22:32.360> map 05:22:33.310 --> 05:22:33.320 align:start position:0% map over the posts by saying posts. map 05:22:33.320 --> 05:22:35.868 align:start position:0% map over the posts by saying posts. map where<05:22:33.480> we<05:22:33.638> get<05:22:33.920> each<05:22:34.200> individual<05:22:34.840> post<05:22:35.760> and 05:22:35.868 --> 05:22:35.878 align:start position:0% where we get each individual post and 05:22:35.878 --> 05:22:39.190 align:start position:0% where we get each individual post and for<05:22:36.120> each<05:22:36.320> one<05:22:36.520> we<05:22:36.638> can<05:22:36.958> return<05:22:37.280> a<05:22:37.558> list<05:22:38.200> item 05:22:39.190 --> 05:22:39.200 align:start position:0% for each one we can return a list item 05:22:39.200 --> 05:22:40.868 align:start position:0% for each one we can return a list item for<05:22:39.400> now<05:22:39.638> let's<05:22:39.798> say<05:22:39.958> that<05:22:40.080> we<05:22:40.200> just<05:22:40.480> returned 05:22:40.868 --> 05:22:40.878 align:start position:0% for now let's say that we just returned 05:22:40.878 --> 05:22:44.510 align:start position:0% for now let's say that we just returned a<05:22:41.160> post.<05:22:42.160> caption<05:22:43.160> if<05:22:43.240> we<05:22:43.400> do<05:22:43.558> it<05:22:43.958> you<05:22:44.080> can<05:22:44.200> see 05:22:44.510 --> 05:22:44.520 align:start position:0% a post. caption if we do it you can see 05:22:44.520 --> 05:22:46.910 align:start position:0% a post. caption if we do it you can see only<05:22:44.840> one<05:22:45.120> post<05:22:45.480> caption<05:22:45.958> here<05:22:46.400> but<05:22:46.558> of<05:22:46.680> course 05:22:46.910 --> 05:22:46.920 align:start position:0% only one post caption here but of course 05:22:46.920 --> 05:22:48.310 align:start position:0% only one post caption here but of course we<05:22:47.040> want<05:22:47.160> to<05:22:47.320> make<05:22:47.520> this<05:22:47.638> a<05:22:47.760> bit<05:22:47.958> more 05:22:48.310 --> 05:22:48.320 align:start position:0% we want to make this a bit more 05:22:48.320 --> 05:22:50.470 align:start position:0% we want to make this a bit more interesting<05:22:49.320> and<05:22:49.680> something<05:22:50.040> like<05:22:50.240> this 05:22:50.470 --> 05:22:50.480 align:start position:0% interesting and something like this 05:22:50.480 --> 05:22:52.910 align:start position:0% interesting and something like this would<05:22:50.638> be<05:22:50.878> great<05:22:51.600> an<05:22:51.840> explore<05:22:52.360> page<05:22:52.680> where<05:22:52.798> we 05:22:52.910 --> 05:22:52.920 align:start position:0% would be great an explore page where we 05:22:52.920 --> 05:22:55.590 align:start position:0% would be great an explore page where we can<05:22:53.000> see<05:22:53.280> all<05:22:53.600> the<05:22:53.840> popular<05:22:54.320> posts<05:22:55.160> we<05:22:55.280> have<05:22:55.400> a 05:22:55.590 --> 05:22:55.600 align:start position:0% can see all the popular posts we have a 05:22:55.600 --> 05:22:57.990 align:start position:0% can see all the popular posts we have a nice<05:22:55.878> looking<05:22:56.240> image<05:22:56.920> a<05:22:57.080> Creator<05:22:57.440> in<05:22:57.680> bottom 05:22:57.990 --> 05:22:58.000 align:start position:0% nice looking image a Creator in bottom 05:22:58.000 --> 05:23:00.948 align:start position:0% nice looking image a Creator in bottom left<05:22:58.400> and<05:22:58.520> then<05:22:58.798> save<05:22:59.360> and<05:22:59.760> like<05:23:00.320> on<05:23:00.558> the 05:23:00.948 --> 05:23:00.958 align:start position:0% left and then save and like on the 05:23:00.958 --> 05:23:02.910 align:start position:0% left and then save and like on the bottom<05:23:01.240> right<05:23:01.520> as<05:23:01.638> well<05:23:02.400> and<05:23:02.520> then<05:23:02.638> we<05:23:02.760> can 05:23:02.910 --> 05:23:02.920 align:start position:0% bottom right as well and then we can 05:23:02.920 --> 05:23:04.510 align:start position:0% bottom right as well and then we can Scroll<05:23:03.440> of<05:23:03.558> course<05:23:03.798> with<05:23:03.958> the<05:23:04.120> infinite 05:23:04.510 --> 05:23:04.520 align:start position:0% Scroll of course with the infinite 05:23:04.520 --> 05:23:07.830 align:start position:0% Scroll of course with the infinite scroll<05:23:05.320> as<05:23:05.480> much<05:23:05.680> as<05:23:05.798> we<05:23:05.920> want<05:23:06.120> to<05:23:06.638> down<05:23:06.878> below 05:23:07.830 --> 05:23:07.840 align:start position:0% scroll as much as we want to down below 05:23:07.840 --> 05:23:10.470 align:start position:0% scroll as much as we want to down below so<05:23:08.320> this<05:23:08.400> is<05:23:08.558> the<05:23:08.680> goal<05:23:09.480> and<05:23:09.718> we<05:23:09.840> can<05:23:10.040> implement 05:23:10.470 --> 05:23:10.480 align:start position:0% so this is the goal and we can implement 05:23:10.480 --> 05:23:13.590 align:start position:0% so this is the goal and we can implement it<05:23:11.120> so<05:23:11.360> instead<05:23:11.600> of<05:23:11.760> just<05:23:11.878> An<05:23:12.080> Li<05:23:12.840> Let's<05:23:13.080> do<05:23:13.360> an 05:23:13.590 --> 05:23:13.600 align:start position:0% it so instead of just An Li Let's do an 05:23:13.600 --> 05:23:18.110 align:start position:0% it so instead of just An Li Let's do an Li<05:23:14.240> that<05:23:14.440> has<05:23:14.558> a<05:23:14.840> key<05:23:15.638> equal<05:23:15.958> to<05:23:16.240> post.<05:23:17.160> doar<05:23:17.638> ID 05:23:18.110 --> 05:23:18.120 align:start position:0% Li that has a key equal to post. doar ID 05:23:18.120 --> 05:23:20.510 align:start position:0% Li that has a key equal to post. doar ID as<05:23:18.200> We're<05:23:18.360> looping<05:23:18.760> over<05:23:19.040> it<05:23:19.760> and<05:23:19.920> the<05:23:20.200> class 05:23:20.510 --> 05:23:20.520 align:start position:0% as We're looping over it and the class 05:23:20.520 --> 05:23:22.030 align:start position:0% as We're looping over it and the class name<05:23:20.878> of 05:23:22.030 --> 05:23:22.040 align:start position:0% name of 05:23:22.040 --> 05:23:28.548 align:start position:0% name of relative<05:23:23.240> m-w<05:23:24.240> of<05:23:24.520> 80<05:23:25.520> and<05:23:26.040> H<05:23:26.480> of<05:23:26.718> 80<05:23:27.320> as<05:23:27.558> well 05:23:28.548 --> 05:23:28.558 align:start position:0% relative m-w of 80 and H of 80 as well 05:23:28.558 --> 05:23:31.350 align:start position:0% relative m-w of 80 and H of 80 as well now<05:23:28.840> instead<05:23:29.120> of<05:23:29.200> rendering<05:23:29.718> a<05:23:29.958> post<05:23:30.360> caption 05:23:31.350 --> 05:23:31.360 align:start position:0% now instead of rendering a post caption 05:23:31.360 --> 05:23:34.670 align:start position:0% now instead of rendering a post caption right<05:23:31.600> here<05:23:32.000> we<05:23:32.120> want<05:23:32.240> to<05:23:32.400> render<05:23:32.920> a<05:23:33.480> link<05:23:34.480> this 05:23:34.670 --> 05:23:34.680 align:start position:0% right here we want to render a link this 05:23:34.680 --> 05:23:39.350 align:start position:0% right here we want to render a link this link<05:23:35.120> is<05:23:35.320> of<05:23:35.520> course<05:23:35.840> coming<05:23:36.600> from<05:23:38.080> import 05:23:39.350 --> 05:23:39.360 align:start position:0% link is of course coming from import 05:23:39.360 --> 05:23:43.470 align:start position:0% link is of course coming from import link<05:23:40.360> from<05:23:41.120> react<05:23:42.120> router 05:23:43.470 --> 05:23:43.480 align:start position:0% link from react router 05:23:43.480 --> 05:23:47.628 align:start position:0% link from react router Dom<05:23:44.480> this<05:23:44.680> link<05:23:45.200> is<05:23:45.360> going<05:23:45.600> to<05:23:46.240> wrap<05:23:46.840> our<05:23:47.080> image 05:23:47.628 --> 05:23:47.638 align:start position:0% Dom this link is going to wrap our image 05:23:47.638 --> 05:23:50.070 align:start position:0% Dom this link is going to wrap our image so<05:23:47.920> right<05:23:48.080> here<05:23:48.240> we<05:23:48.360> can<05:23:48.558> Define<05:23:49.000> our<05:23:49.240> image 05:23:50.070 --> 05:23:50.080 align:start position:0% so right here we can Define our image 05:23:50.080 --> 05:23:51.910 align:start position:0% so right here we can Define our image that's<05:23:50.280> going<05:23:50.400> to<05:23:50.520> have<05:23:50.638> a<05:23:50.840> source<05:23:51.360> equal<05:23:51.638> to 05:23:51.910 --> 05:23:51.920 align:start position:0% that's going to have a source equal to 05:23:51.920 --> 05:23:56.470 align:start position:0% that's going to have a source equal to post.<05:23:52.718> image<05:23:53.160> URL<05:23:54.160> and<05:23:54.320> there<05:23:54.480> we<05:23:54.638> go<05:23:55.520> so<05:23:56.000> now 05:23:56.470 --> 05:23:56.480 align:start position:0% post. image URL and there we go so now 05:23:56.480 --> 05:23:58.750 align:start position:0% post. image URL and there we go so now once<05:23:56.638> we<05:23:56.840> click<05:23:57.040> it<05:23:57.680> we<05:23:57.840> wanted<05:23:58.160> to<05:23:58.320> go<05:23:58.440> to<05:23:58.600> the 05:23:58.750 --> 05:23:58.760 align:start position:0% once we click it we wanted to go to the 05:23:58.760 --> 05:24:01.830 align:start position:0% once we click it we wanted to go to the Post<05:23:59.040> details<05:23:59.440> of<05:23:59.638> this<05:23:59.878> post<05:24:00.480> so<05:24:00.840> let's<05:24:00.958> say 05:24:01.830 --> 05:24:01.840 align:start position:0% Post details of this post so let's say 05:24:01.840 --> 05:24:07.670 align:start position:0% Post details of this post so let's say two<05:24:03.240> slost<05:24:04.600> slost<05:24:05.600> dooll<05:24:06.400> sign 05:24:07.670 --> 05:24:07.680 align:start position:0% two slost slost dooll sign 05:24:07.680 --> 05:24:11.310 align:start position:0% two slost slost dooll sign ID<05:24:08.680> now<05:24:09.000> if<05:24:09.080> we<05:24:09.240> click<05:24:09.440> it<05:24:09.958> we<05:24:10.120> go<05:24:10.360> away<05:24:11.040> that's 05:24:11.310 --> 05:24:11.320 align:start position:0% ID now if we click it we go away that's 05:24:11.320 --> 05:24:13.830 align:start position:0% ID now if we click it we go away that's great<05:24:11.958> let's<05:24:12.160> also<05:24:12.360> give<05:24:12.480> it<05:24:12.600> a<05:24:12.798> class<05:24:13.120> name 05:24:13.830 --> 05:24:13.840 align:start position:0% great let's also give it a class name 05:24:13.840 --> 05:24:18.910 align:start position:0% great let's also give it a class name equal<05:24:14.160> to<05:24:14.760> grid<05:24:15.600> Das<05:24:16.920> postore<05:24:17.920> link<05:24:18.798> and 05:24:18.910 --> 05:24:18.920 align:start position:0% equal to grid Das postore link and 05:24:18.920 --> 05:24:20.150 align:start position:0% equal to grid Das postore link and that's<05:24:19.080> going<05:24:19.240> to<05:24:19.360> make<05:24:19.520> it<05:24:19.680> look<05:24:19.840> a<05:24:19.958> bit 05:24:20.150 --> 05:24:20.160 align:start position:0% that's going to make it look a bit 05:24:20.160 --> 05:24:22.430 align:start position:0% that's going to make it look a bit better<05:24:21.000> the<05:24:21.160> image<05:24:21.480> itself<05:24:21.878> is<05:24:22.040> going<05:24:22.200> to<05:24:22.320> have 05:24:22.430 --> 05:24:22.440 align:start position:0% better the image itself is going to have 05:24:22.440 --> 05:24:25.110 align:start position:0% better the image itself is going to have an<05:24:22.558> Al<05:24:22.920> tag<05:24:23.160> of<05:24:23.400> post<05:24:24.240> as<05:24:24.360> well<05:24:24.480> as<05:24:24.600> a<05:24:24.798> class 05:24:25.110 --> 05:24:25.120 align:start position:0% an Al tag of post as well as a class 05:24:25.120 --> 05:24:29.670 align:start position:0% an Al tag of post as well as a class name<05:24:25.558> of<05:24:26.040> h-<05:24:26.760> full<05:24:27.240> for<05:24:27.480> full<05:24:27.840> height<05:24:28.480> w-o<05:24:29.440> for 05:24:29.670 --> 05:24:29.680 align:start position:0% name of h- full for full height w-o for 05:24:29.680 --> 05:24:33.070 align:start position:0% name of h- full for full height w-o for full<05:24:29.958> width<05:24:30.520> and<05:24:30.958> object<05:24:31.400> cover<05:24:32.120> so<05:24:32.480> it<05:24:32.680> looks 05:24:33.070 --> 05:24:33.080 align:start position:0% full width and object cover so it looks 05:24:33.080 --> 05:24:35.910 align:start position:0% full width and object cover so it looks good<05:24:33.878> there<05:24:34.040> we<05:24:34.200> go<05:24:34.680> now<05:24:34.878> below<05:24:35.240> this<05:24:35.400> link<05:24:35.798> we 05:24:35.910 --> 05:24:35.920 align:start position:0% good there we go now below this link we 05:24:35.920 --> 05:24:37.910 align:start position:0% good there we go now below this link we need<05:24:36.080> to<05:24:36.200> show<05:24:36.440> the<05:24:36.600> information<05:24:37.320> about<05:24:37.680> a 05:24:37.910 --> 05:24:37.920 align:start position:0% need to show the information about a 05:24:37.920 --> 05:24:40.470 align:start position:0% need to show the information about a user<05:24:38.920> but<05:24:39.040> we're<05:24:39.160> going<05:24:39.280> to<05:24:39.440> reuse<05:24:39.920> this<05:24:40.120> grid 05:24:40.470 --> 05:24:40.480 align:start position:0% user but we're going to reuse this grid 05:24:40.480 --> 05:24:42.310 align:start position:0% user but we're going to reuse this grid a<05:24:40.600> couple<05:24:40.840> of<05:24:41.040> times<05:24:41.520> we're<05:24:41.680> going<05:24:41.798> to<05:24:41.920> reuse 05:24:42.310 --> 05:24:42.320 align:start position:0% a couple of times we're going to reuse 05:24:42.320 --> 05:24:45.030 align:start position:0% a couple of times we're going to reuse it<05:24:42.480> on<05:24:42.600> our<05:24:42.878> profile<05:24:43.360> later<05:24:43.638> on<05:24:44.040> as<05:24:44.280> well 05:24:45.030 --> 05:24:45.040 align:start position:0% it on our profile later on as well 05:24:45.040 --> 05:24:47.750 align:start position:0% it on our profile later on as well specifically<05:24:45.558> on<05:24:45.760> liked<05:24:46.160> posts<05:24:46.558> and<05:24:46.840> more<05:24:47.600> and 05:24:47.750 --> 05:24:47.760 align:start position:0% specifically on liked posts and more and 05:24:47.760 --> 05:24:50.030 align:start position:0% specifically on liked posts and more and as<05:24:47.840> you<05:24:47.958> can<05:24:48.080> see<05:24:48.798> and<05:24:49.040> on<05:24:49.200> the<05:24:49.360> Explorer<05:24:49.878> we're 05:24:50.030 --> 05:24:50.040 align:start position:0% as you can see and on the Explorer we're 05:24:50.040 --> 05:24:52.150 align:start position:0% as you can see and on the Explorer we're going<05:24:50.120> to<05:24:50.240> show<05:24:50.480> the<05:24:50.638> stats<05:24:51.200> like<05:24:51.400> save<05:24:51.920> and 05:24:52.150 --> 05:24:52.160 align:start position:0% going to show the stats like save and 05:24:52.160 --> 05:24:54.548 align:start position:0% going to show the stats like save and like<05:24:52.958> but<05:24:53.200> if<05:24:53.320> we're<05:24:53.600> visiting<05:24:54.080> somebody's 05:24:54.548 --> 05:24:54.558 align:start position:0% like but if we're visiting somebody's 05:24:54.558 --> 05:24:56.430 align:start position:0% like but if we're visiting somebody's profile<05:24:55.240> we<05:24:55.400> don't<05:24:55.680> necessarily<05:24:56.200> have<05:24:56.320> to 05:24:56.430 --> 05:24:56.440 align:start position:0% profile we don't necessarily have to 05:24:56.440 --> 05:24:57.910 align:start position:0% profile we don't necessarily have to show<05:24:56.718> the<05:24:56.878> stats<05:24:57.320> because<05:24:57.480> you're<05:24:57.638> not<05:24:57.840> going 05:24:57.910 --> 05:24:57.920 align:start position:0% show the stats because you're not going 05:24:57.920 --> 05:25:00.310 align:start position:0% show the stats because you're not going to<05:24:58.080> like<05:24:58.280> your<05:24:58.440> own<05:24:58.840> posts<05:24:59.840> so<05:25:00.040> that's<05:25:00.240> why 05:25:00.310 --> 05:25:00.320 align:start position:0% to like your own posts so that's why 05:25:00.320 --> 05:25:01.628 align:start position:0% to like your own posts so that's why we're<05:25:00.440> going<05:25:00.558> to<05:25:00.798> make<05:25:01.000> this<05:25:01.160> component 05:25:01.628 --> 05:25:01.638 align:start position:0% we're going to make this component 05:25:01.638 --> 05:25:04.750 align:start position:0% we're going to make this component modifiable<05:25:02.600> as<05:25:02.840> every<05:25:03.160> component<05:25:03.638> should<05:25:03.840> be 05:25:04.750 --> 05:25:04.760 align:start position:0% modifiable as every component should be 05:25:04.760 --> 05:25:06.830 align:start position:0% modifiable as every component should be we<05:25:04.878> can<05:25:05.080> pass<05:25:05.240> some<05:25:05.440> additional<05:25:05.920> props<05:25:06.638> such 05:25:06.830 --> 05:25:06.840 align:start position:0% we can pass some additional props such 05:25:06.840 --> 05:25:10.548 align:start position:0% we can pass some additional props such as<05:25:07.160> show<05:25:07.718> user<05:25:08.480> by<05:25:08.760> default<05:25:09.160> set<05:25:09.360> to<05:25:09.558> true<05:25:10.400> as 05:25:10.548 --> 05:25:10.558 align:start position:0% as show user by default set to true as 05:25:10.558 --> 05:25:13.150 align:start position:0% as show user by default set to true as well<05:25:10.718> as<05:25:10.840> show<05:25:11.320> stats<05:25:12.120> also<05:25:12.440> by<05:25:12.600> default<05:25:12.958> set 05:25:13.150 --> 05:25:13.160 align:start position:0% well as show stats also by default set 05:25:13.160 --> 05:25:15.750 align:start position:0% well as show stats also by default set to<05:25:13.320> true<05:25:14.120> but<05:25:14.360> in<05:25:14.520> case<05:25:14.718> you<05:25:14.840> want<05:25:14.958> to<05:25:15.240> pass<05:25:15.558> a 05:25:15.750 --> 05:25:15.760 align:start position:0% to true but in case you want to pass a 05:25:15.760 --> 05:25:18.708 align:start position:0% to true but in case you want to pass a false<05:25:16.400> you<05:25:16.520> can<05:25:16.760> do<05:25:16.958> that<05:25:17.920> so<05:25:18.280> right<05:25:18.440> here<05:25:18.558> at 05:25:18.708 --> 05:25:18.718 align:start position:0% false you can do that so right here at 05:25:18.718 --> 05:25:21.350 align:start position:0% false you can do that so right here at the<05:25:18.920> top<05:25:19.440> we<05:25:19.558> can<05:25:19.718> also<05:25:20.040> add<05:25:20.240> two<05:25:20.440> new<05:25:20.718> types 05:25:21.350 --> 05:25:21.360 align:start position:0% the top we can also add two new types 05:25:21.360 --> 05:25:23.948 align:start position:0% the top we can also add two new types show<05:25:21.760> user<05:25:22.520> question<05:25:22.878> mark<05:25:23.240> meaning<05:25:23.638> it's 05:25:23.948 --> 05:25:23.958 align:start position:0% show user question mark meaning it's 05:25:23.958 --> 05:25:26.708 align:start position:0% show user question mark meaning it's optional<05:25:24.718> of<05:25:24.840> a<05:25:25.000> type<05:25:25.200> Boolean<05:25:26.200> and<05:25:26.360> show 05:25:26.708 --> 05:25:26.718 align:start position:0% optional of a type Boolean and show 05:25:26.718 --> 05:25:29.110 align:start position:0% optional of a type Boolean and show stats<05:25:27.558> question<05:25:27.840> mark<05:25:28.200> Boolean<05:25:28.760> which<05:25:28.878> means 05:25:29.110 --> 05:25:29.120 align:start position:0% stats question mark Boolean which means 05:25:29.120 --> 05:25:32.310 align:start position:0% stats question mark Boolean which means that<05:25:29.240> it<05:25:29.360> is<05:25:29.680> optional<05:25:31.000> so<05:25:31.320> now<05:25:31.638> if<05:25:31.760> we<05:25:31.958> go 05:25:32.310 --> 05:25:32.320 align:start position:0% that it is optional so now if we go 05:25:32.320 --> 05:25:36.350 align:start position:0% that it is optional so now if we go below<05:25:33.280> this<05:25:33.638> link<05:25:34.480> we<05:25:34.600> can<05:25:34.798> create<05:25:35.120> a<05:25:35.280> new<05:25:35.558> div 05:25:36.350 --> 05:25:36.360 align:start position:0% below this link we can create a new div 05:25:36.360 --> 05:25:39.070 align:start position:0% below this link we can create a new div that's<05:25:36.600> going<05:25:36.760> to<05:25:37.000> have<05:25:37.160> a<05:25:37.440> class<05:25:37.798> name<05:25:38.798> equal 05:25:39.070 --> 05:25:39.080 align:start position:0% that's going to have a class name equal 05:25:39.080 --> 05:25:40.990 align:start position:0% that's going to have a class name equal to<05:25:39.360> grid 05:25:40.990 --> 05:25:41.000 align:start position:0% to grid 05:25:41.000 --> 05:25:44.628 align:start position:0% to grid dstore<05:25:42.320> user<05:25:43.320> and<05:25:43.480> within<05:25:43.878> here<05:25:44.200> we<05:25:44.320> want<05:25:44.440> to 05:25:44.628 --> 05:25:44.638 align:start position:0% dstore user and within here we want to 05:25:44.638 --> 05:25:49.350 align:start position:0% dstore user and within here we want to check<05:25:45.120> if<05:25:45.638> show<05:25:46.080> user<05:25:47.080> is<05:25:47.600> true<05:25:48.600> then<05:25:49.080> we<05:25:49.200> want 05:25:49.350 --> 05:25:49.360 align:start position:0% check if show user is true then we want 05:25:49.360 --> 05:25:51.948 align:start position:0% check if show user is true then we want to<05:25:49.680> return<05:25:50.000> a<05:25:50.240> div<05:25:51.080> that's<05:25:51.240> going<05:25:51.400> to<05:25:51.600> have<05:25:51.718> a 05:25:51.948 --> 05:25:51.958 align:start position:0% to return a div that's going to have a 05:25:51.958 --> 05:25:55.948 align:start position:0% to return a div that's going to have a class<05:25:52.400> name<05:25:53.400> equal<05:25:53.760> to<05:25:54.240> for<05:25:54.480> now<05:25:54.798> flex<05:25:55.798> and 05:25:55.948 --> 05:25:55.958 align:start position:0% class name equal to for now flex and 05:25:55.958 --> 05:25:57.708 align:start position:0% class name equal to for now flex and it's<05:25:56.120> going<05:25:56.240> to<05:25:56.360> render<05:25:56.638> an<05:25:56.840> image<05:25:57.558> that's 05:25:57.708 --> 05:25:57.718 align:start position:0% it's going to render an image that's 05:25:57.718 --> 05:26:00.110 align:start position:0% it's going to render an image that's going<05:25:57.878> to<05:25:58.000> have<05:25:58.120> a<05:25:58.280> source<05:25:58.840> equal<05:25:59.120> to<05:25:59.360> post. 05:26:00.110 --> 05:26:00.120 align:start position:0% going to have a source equal to post. 05:26:00.120 --> 05:26:01.110 align:start position:0% going to have a source equal to post. creator 05:26:01.110 --> 05:26:01.120 align:start position:0% creator 05:26:01.120 --> 05:26:02.070 align:start position:0% creator image 05:26:02.070 --> 05:26:02.080 align:start position:0% image 05:26:02.080 --> 05:26:05.110 align:start position:0% image URL<05:26:03.080> and<05:26:03.280> now<05:26:03.718> you<05:26:03.840> can<05:26:04.000> see<05:26:04.240> it<05:26:04.600> right<05:26:04.798> this<05:26:04.920> is 05:26:05.110 --> 05:26:05.120 align:start position:0% URL and now you can see it right this is 05:26:05.120 --> 05:26:07.150 align:start position:0% URL and now you can see it right this is the<05:26:05.480> little<05:26:05.760> image<05:26:06.040> that<05:26:06.160> we<05:26:06.280> need<05:26:06.400> to<05:26:06.520> show<05:26:07.000> of 05:26:07.150 --> 05:26:07.160 align:start position:0% the little image that we need to show of 05:26:07.160 --> 05:26:09.430 align:start position:0% the little image that we need to show of who<05:26:07.360> created<05:26:07.718> the<05:26:07.878> post<05:26:08.798> we<05:26:08.920> can<05:26:09.040> give<05:26:09.160> it<05:26:09.280> an 05:26:09.430 --> 05:26:09.440 align:start position:0% who created the post we can give it an 05:26:09.440 --> 05:26:12.670 align:start position:0% who created the post we can give it an Al<05:26:09.760> tag<05:26:10.920> of 05:26:12.670 --> 05:26:12.680 align:start position:0% Al tag of 05:26:12.680 --> 05:26:16.708 align:start position:0% Al tag of Creator<05:26:13.680> as<05:26:13.878> well<05:26:14.160> as<05:26:14.280> a<05:26:14.520> class<05:26:14.840> name<05:26:15.760> of 05:26:16.708 --> 05:26:16.718 align:start position:0% Creator as well as a class name of 05:26:16.718 --> 05:26:18.670 align:start position:0% Creator as well as a class name of h-8 05:26:18.670 --> 05:26:18.680 align:start position:0% h-8 05:26:18.680 --> 05:26:21.990 align:start position:0% h-8 w-8<05:26:19.680> and<05:26:20.000> rounded<05:26:20.600> Das<05:26:20.840> full<05:26:21.360> as<05:26:21.480> we<05:26:21.638> usually 05:26:21.990 --> 05:26:22.000 align:start position:0% w-8 and rounded Das full as we usually 05:26:22.000 --> 05:26:24.708 align:start position:0% w-8 and rounded Das full as we usually do<05:26:22.320> with<05:26:22.520> profile<05:26:22.920> images<05:26:23.920> and<05:26:24.080> there<05:26:24.200> we<05:26:24.360> go 05:26:24.708 --> 05:26:24.718 align:start position:0% do with profile images and there we go 05:26:24.718 --> 05:26:26.788 align:start position:0% do with profile images and there we go now<05:26:24.878> it's<05:26:25.000> a<05:26:25.120> little<05:26:25.480> profile<05:26:25.878> icon<05:26:26.400> on<05:26:26.600> the 05:26:26.788 --> 05:26:26.798 align:start position:0% now it's a little profile icon on the 05:26:26.798 --> 05:26:29.750 align:start position:0% now it's a little profile icon on the bottom<05:26:27.200> left<05:26:28.080> we<05:26:28.200> can<05:26:28.400> also<05:26:28.638> create<05:26:28.878> a<05:26:29.040> P<05:26:29.280> tag 05:26:29.750 --> 05:26:29.760 align:start position:0% bottom left we can also create a P tag 05:26:29.760 --> 05:26:32.230 align:start position:0% bottom left we can also create a P tag that's<05:26:29.920> going<05:26:30.080> to<05:26:30.200> render<05:26:30.680> the<05:26:30.920> post. 05:26:32.230 --> 05:26:32.240 align:start position:0% that's going to render the post. 05:26:32.240 --> 05:26:34.110 align:start position:0% that's going to render the post. creator. 05:26:34.110 --> 05:26:34.120 align:start position:0% creator. 05:26:34.120 --> 05:26:37.150 align:start position:0% creator. name<05:26:35.120> and<05:26:35.480> we<05:26:35.600> can<05:26:35.760> also<05:26:36.000> give<05:26:36.120> it<05:26:36.240> a<05:26:36.400> class 05:26:37.150 --> 05:26:37.160 align:start position:0% name and we can also give it a class 05:26:37.160 --> 05:26:42.350 align:start position:0% name and we can also give it a class name<05:26:38.160> off<05:26:39.000> line-<05:26:40.000> clamp<05:26:41.000> D1<05:26:41.958> which<05:26:42.080> is<05:26:42.200> going 05:26:42.350 --> 05:26:42.360 align:start position:0% name off line- clamp D1 which is going 05:26:42.360 --> 05:26:45.548 align:start position:0% name off line- clamp D1 which is going to<05:26:42.558> ensure<05:26:43.000> it<05:26:43.160> fits<05:26:43.558> in<05:26:43.718> one<05:26:44.120> line<05:26:45.120> let's<05:26:45.360> also 05:26:45.548 --> 05:26:45.558 align:start position:0% to ensure it fits in one line let's also 05:26:45.558 --> 05:26:48.350 align:start position:0% to ensure it fits in one line let's also add<05:26:45.760> a<05:26:45.840> couple<05:26:46.080> more<05:26:46.280> properties<05:26:46.798> to<05:26:47.000> this<05:26:47.200> div 05:26:48.350 --> 05:26:48.360 align:start position:0% add a couple more properties to this div 05:26:48.360 --> 05:26:50.590 align:start position:0% add a couple more properties to this div Flex<05:26:49.360> items<05:26:49.840> D 05:26:50.590 --> 05:26:50.600 align:start position:0% Flex items D 05:26:50.600 --> 05:26:54.990 align:start position:0% Flex items D Center<05:26:51.600> justify<05:26:52.240> Das<05:26:52.958> start<05:26:53.958> a<05:26:54.200> gap<05:26:54.440> of<05:26:54.600> two<05:26:54.840> to 05:26:54.990 --> 05:26:55.000 align:start position:0% Center justify Das start a gap of two to 05:26:55.000 --> 05:26:58.270 align:start position:0% Center justify Das start a gap of two to divide<05:26:55.280> them<05:26:55.440> a<05:26:55.600> bit<05:26:56.160> and<05:26:56.320> the<05:26:56.480> flex<05:26:56.760> of 05:26:58.270 --> 05:26:58.280 align:start position:0% divide them a bit and the flex of 05:26:58.280 --> 05:27:02.070 align:start position:0% divide them a bit and the flex of one<05:26:59.280> great<05:27:00.040> now<05:27:00.200> we<05:27:00.320> can<05:27:00.638> go<05:27:00.840> below<05:27:01.520> this<05:27:01.718> div 05:27:02.070 --> 05:27:02.080 align:start position:0% one great now we can go below this div 05:27:02.080 --> 05:27:04.430 align:start position:0% one great now we can go below this div and<05:27:02.240> below<05:27:02.638> the<05:27:02.840> dynamic<05:27:03.320> block<05:27:04.040> and<05:27:04.160> we<05:27:04.240> can 05:27:04.430 --> 05:27:04.440 align:start position:0% and below the dynamic block and we can 05:27:04.440 --> 05:27:06.390 align:start position:0% and below the dynamic block and we can also<05:27:04.718> check<05:27:05.080> whether<05:27:05.280> we<05:27:05.400> want<05:27:05.520> to<05:27:05.680> show<05:27:06.040> the 05:27:06.390 --> 05:27:06.400 align:start position:0% also check whether we want to show the 05:27:06.400 --> 05:27:09.510 align:start position:0% also check whether we want to show the stats<05:27:07.400> if<05:27:07.558> we<05:27:07.680> do<05:27:07.878> want<05:27:08.040> to<05:27:08.160> show<05:27:08.400> the<05:27:08.600> stats<05:27:09.400> we 05:27:09.510 --> 05:27:09.520 align:start position:0% stats if we do want to show the stats we 05:27:09.520 --> 05:27:12.990 align:start position:0% stats if we do want to show the stats we can<05:27:09.680> render<05:27:10.360> the<05:27:10.638> post<05:27:11.160> stats<05:27:11.680> component<05:27:12.680> so 05:27:12.990 --> 05:27:13.000 align:start position:0% can render the post stats component so 05:27:13.000 --> 05:27:16.548 align:start position:0% can render the post stats component so post<05:27:13.558> stats<05:27:14.080> like<05:27:14.280> so<05:27:15.200> we<05:27:15.320> can<05:27:15.600> import<05:27:16.040> it<05:27:16.240> from 05:27:16.548 --> 05:27:16.558 align:start position:0% post stats like so we can import it from 05:27:16.558 --> 05:27:19.788 align:start position:0% post stats like so we can import it from Post<05:27:17.000> stats<05:27:18.000> pass<05:27:18.280> over<05:27:18.600> the<05:27:18.840> post<05:27:19.280> equal<05:27:19.600> to 05:27:19.788 --> 05:27:19.798 align:start position:0% Post stats pass over the post equal to 05:27:19.798 --> 05:27:22.548 align:start position:0% Post stats pass over the post equal to post<05:27:20.160> as<05:27:20.280> a<05:27:20.520> prop<05:27:21.160> as<05:27:21.280> well<05:27:21.400> as<05:27:21.558> the<05:27:21.680> user<05:27:22.040> ID 05:27:22.548 --> 05:27:22.558 align:start position:0% post as a prop as well as the user ID 05:27:22.558 --> 05:27:26.510 align:start position:0% post as a prop as well as the user ID equal<05:27:22.840> to<05:27:23.040> user.<05:27:23.798> ID<05:27:24.798> as<05:27:24.920> a<05:27:25.120> prop<05:27:26.000> if<05:27:26.120> we<05:27:26.280> save 05:27:26.510 --> 05:27:26.520 align:start position:0% equal to user. ID as a prop if we save 05:27:26.520 --> 05:27:29.230 align:start position:0% equal to user. ID as a prop if we save it<05:27:26.920> you<05:27:27.040> can<05:27:27.200> see<05:27:27.520> like<05:27:28.000> and<05:27:28.280> save<05:27:28.840> and<05:27:28.958> we<05:27:29.080> can 05:27:29.230 --> 05:27:29.240 align:start position:0% it you can see like and save and we can 05:27:29.240 --> 05:27:32.070 align:start position:0% it you can see like and save and we can do<05:27:29.440> that<05:27:29.718> right<05:27:29.878> here<05:27:30.080> from<05:27:30.240> the<05:27:30.520> explore<05:27:31.080> page 05:27:32.070 --> 05:27:32.080 align:start position:0% do that right here from the explore page 05:27:32.080 --> 05:27:35.350 align:start position:0% do that right here from the explore page this<05:27:32.440> is<05:27:33.080> great<05:27:34.080> now<05:27:34.320> our<05:27:34.520> explore<05:27:35.000> page<05:27:35.200> is 05:27:35.350 --> 05:27:35.360 align:start position:0% this is great now our explore page is 05:27:35.360 --> 05:27:37.030 align:start position:0% this is great now our explore page is almost<05:27:35.680> done<05:27:36.160> we<05:27:36.280> still<05:27:36.520> have<05:27:36.638> to<05:27:36.760> do<05:27:36.920> the 05:27:37.030 --> 05:27:37.040 align:start position:0% almost done we still have to do the 05:27:37.040 --> 05:27:38.910 align:start position:0% almost done we still have to do the search<05:27:37.440> of<05:27:37.600> course<05:27:38.040> but<05:27:38.160> let's<05:27:38.320> go<05:27:38.440> ahead<05:27:38.718> and 05:27:38.910 --> 05:27:38.920 align:start position:0% search of course but let's go ahead and 05:27:38.920 --> 05:27:40.948 align:start position:0% search of course but let's go ahead and add<05:27:39.200> another<05:27:39.558> post<05:27:40.000> to<05:27:40.120> see<05:27:40.360> how<05:27:40.520> it<05:27:40.680> looks 05:27:40.948 --> 05:27:40.958 align:start position:0% add another post to see how it looks 05:27:40.958 --> 05:27:44.310 align:start position:0% add another post to see how it looks like<05:27:41.638> let's<05:27:41.878> go<05:27:42.040> to<05:27:42.400> create<05:27:43.400> add<05:27:43.558> a<05:27:43.798> caption 05:27:44.310 --> 05:27:44.320 align:start position:0% like let's go to create add a caption 05:27:44.320 --> 05:27:48.830 align:start position:0% like let's go to create add a caption something<05:27:44.718> like<05:27:45.080> learning<05:27:46.080> nextjs<05:27:47.480> 13<05:27:48.480> select 05:27:48.830 --> 05:27:48.840 align:start position:0% something like learning nextjs 13 select 05:27:48.840 --> 05:27:52.110 align:start position:0% something like learning nextjs 13 select the<05:27:49.160> photo<05:27:50.160> add<05:27:50.320> a<05:27:50.520> location<05:27:51.360> something<05:27:51.798> like 05:27:52.110 --> 05:27:52.120 align:start position:0% the photo add a location something like 05:27:52.120 --> 05:27:56.270 align:start position:0% the photo add a location something like add<05:27:52.600> home<05:27:53.600> and<05:27:53.920> add<05:27:54.200> tags<05:27:54.760> such<05:27:54.920> as 05:27:56.270 --> 05:27:56.280 align:start position:0% add home and add tags such as 05:27:56.280 --> 05:27:58.470 align:start position:0% add home and add tags such as nextjs 05:27:58.470 --> 05:27:58.480 align:start position:0% nextjs 05:27:58.480 --> 05:28:02.990 align:start position:0% nextjs learning<05:27:59.480> coding<05:28:00.680> and<05:28:00.798> we<05:28:00.920> can<05:28:01.080> create<05:28:01.320> a<05:28:02.000> post 05:28:02.990 --> 05:28:03.000 align:start position:0% learning coding and we can create a post 05:28:03.000 --> 05:28:05.910 align:start position:0% learning coding and we can create a post this<05:28:03.360> right<05:28:03.558> now<05:28:04.080> works<05:28:04.718> pretty<05:28:04.958> flawlessly<05:28:05.798> I 05:28:05.910 --> 05:28:05.920 align:start position:0% this right now works pretty flawlessly I 05:28:05.920 --> 05:28:08.190 align:start position:0% this right now works pretty flawlessly I got<05:28:06.000> to<05:28:06.200> say<05:28:06.600> we<05:28:06.760> get<05:28:06.920> redirected<05:28:07.480> to<05:28:07.600> the 05:28:08.190 --> 05:28:08.200 align:start position:0% got to say we get redirected to the 05:28:08.200 --> 05:28:10.750 align:start position:0% got to say we get redirected to the homepage<05:28:09.200> and<05:28:09.320> we<05:28:09.440> can<05:28:09.600> immediately<05:28:10.080> see<05:28:10.558> our 05:28:10.750 --> 05:28:10.760 align:start position:0% homepage and we can immediately see our 05:28:10.760 --> 05:28:13.350 align:start position:0% homepage and we can immediately see our new<05:28:11.040> photo<05:28:11.680> like<05:28:11.840> a<05:28:12.040> real<05:28:12.440> social<05:28:12.760> media 05:28:13.350 --> 05:28:13.360 align:start position:0% new photo like a real social media 05:28:13.360 --> 05:28:16.190 align:start position:0% new photo like a real social media application<05:28:14.360> our<05:28:14.680> timestamps<05:28:15.440> work<05:28:15.718> as<05:28:15.878> well 05:28:16.190 --> 05:28:16.200 align:start position:0% application our timestamps work as well 05:28:16.200 --> 05:28:18.788 align:start position:0% application our timestamps work as well so<05:28:16.520> just<05:28:16.798> now<05:28:17.160> at<05:28:17.440> home<05:28:18.120> we<05:28:18.240> have<05:28:18.440> different 05:28:18.788 --> 05:28:18.798 align:start position:0% so just now at home we have different 05:28:18.798 --> 05:28:21.628 align:start position:0% so just now at home we have different tags<05:28:19.280> and<05:28:19.400> we<05:28:19.520> can<05:28:19.718> click<05:28:19.958> it<05:28:20.440> to<05:28:20.718> go<05:28:21.200> to<05:28:21.480> the 05:28:21.628 --> 05:28:21.638 align:start position:0% tags and we can click it to go to the 05:28:21.638 --> 05:28:24.270 align:start position:0% tags and we can click it to go to the Post<05:28:22.000> details<05:28:22.798> we<05:28:22.920> can<05:28:23.120> like<05:28:23.360> it<05:28:23.920> and<05:28:24.040> we<05:28:24.120> can 05:28:24.270 --> 05:28:24.280 align:start position:0% Post details we can like it and we can 05:28:24.280 --> 05:28:27.190 align:start position:0% Post details we can like it and we can also<05:28:24.638> of<05:28:24.798> course<05:28:25.200> head<05:28:25.360> to<05:28:25.638> explore<05:28:26.638> where<05:28:27.040> the 05:28:27.190 --> 05:28:27.200 align:start position:0% also of course head to explore where the 05:28:27.200 --> 05:28:30.430 align:start position:0% also of course head to explore where the new<05:28:27.440> photo<05:28:27.840> now<05:28:28.160> appears<05:28:28.718> at<05:28:28.878> the<05:28:29.120> Top<05:28:29.920> This<05:28:30.160> is 05:28:30.430 --> 05:28:30.440 align:start position:0% new photo now appears at the Top This is 05:28:30.440 --> 05:28:33.110 align:start position:0% new photo now appears at the Top This is is<05:28:30.920> great<05:28:31.878> now<05:28:32.160> what<05:28:32.280> do<05:28:32.360> you<05:28:32.520> say<05:28:32.798> that<05:28:32.920> we 05:28:33.110 --> 05:28:33.120 align:start position:0% is great now what do you say that we 05:28:33.120 --> 05:28:36.230 align:start position:0% is great now what do you say that we focus<05:28:33.440> on<05:28:33.600> the<05:28:33.760> search<05:28:34.320> next<05:28:35.160> so<05:28:35.520> here<05:28:35.958> we<05:28:36.120> have 05:28:36.230 --> 05:28:36.240 align:start position:0% focus on the search next so here we have 05:28:36.240 --> 05:28:39.190 align:start position:0% focus on the search next so here we have a<05:28:36.440> component<05:28:36.920> called<05:28:37.200> search<05:28:37.920> results<05:28:38.920> and<05:28:39.080> if 05:28:39.190 --> 05:28:39.200 align:start position:0% a component called search results and if 05:28:39.200 --> 05:28:41.830 align:start position:0% a component called search results and if you<05:28:39.400> remember<05:28:40.120> we<05:28:40.320> have<05:28:40.520> already<05:28:40.958> created<05:28:41.638> the 05:28:41.830 --> 05:28:41.840 align:start position:0% you remember we have already created the 05:28:41.840 --> 05:28:44.310 align:start position:0% you remember we have already created the searched<05:28:42.360> post<05:28:42.840> right<05:28:43.040> here<05:28:43.600> so<05:28:43.798> let's<05:28:44.080> pass 05:28:44.310 --> 05:28:44.320 align:start position:0% searched post right here so let's pass 05:28:44.320 --> 05:28:46.868 align:start position:0% searched post right here so let's pass some<05:28:44.440> of<05:28:44.600> the<05:28:44.798> values<05:28:45.360> into<05:28:45.958> our<05:28:46.400> search 05:28:46.868 --> 05:28:46.878 align:start position:0% some of the values into our search 05:28:46.878 --> 05:28:50.430 align:start position:0% some of the values into our search results<05:28:47.878> specifically<05:28:48.680> we<05:28:48.798> can<05:28:49.080> pass<05:28:49.400> the<05:28:49.718> is 05:28:50.430 --> 05:28:50.440 align:start position:0% results specifically we can pass the is 05:28:50.440 --> 05:28:52.548 align:start position:0% results specifically we can pass the is search<05:28:51.080> fetching<05:28:51.798> which<05:28:51.920> is<05:28:52.040> going<05:28:52.200> to<05:28:52.320> be<05:28:52.440> the 05:28:52.548 --> 05:28:52.558 align:start position:0% search fetching which is going to be the 05:28:52.558 --> 05:28:54.868 align:start position:0% search fetching which is going to be the loading<05:28:52.958> State<05:28:53.520> equal<05:28:53.840> to<05:28:54.120> is<05:28:54.400> search 05:28:54.868 --> 05:28:54.878 align:start position:0% loading State equal to is search 05:28:54.878 --> 05:28:57.670 align:start position:0% loading State equal to is search fetching<05:28:55.878> as<05:28:56.000> well<05:28:56.120> as<05:28:56.240> the<05:28:56.400> search<05:28:56.840> post 05:28:57.670 --> 05:28:57.680 align:start position:0% fetching as well as the search post 05:28:57.680 --> 05:28:59.990 align:start position:0% fetching as well as the search post which<05:28:57.798> is<05:28:57.878> going<05:28:58.000> to<05:28:58.160> be<05:28:58.480> a<05:28:58.760> query<05:28:59.440> request 05:28:59.990 --> 05:29:00.000 align:start position:0% which is going to be a query request 05:29:00.000 --> 05:29:02.948 align:start position:0% which is going to be a query request coming<05:29:00.520> from<05:29:01.000> our<05:29:01.320> used<05:29:01.638> query<05:29:02.440> finally<05:29:02.878> we 05:29:02.948 --> 05:29:02.958 align:start position:0% coming from our used query finally we 05:29:02.958 --> 05:29:04.910 align:start position:0% coming from our used query finally we can<05:29:03.160> head<05:29:03.400> into<05:29:03.680> this<05:29:03.840> component<05:29:04.440> and<05:29:04.600> we<05:29:04.718> can 05:29:04.910 --> 05:29:04.920 align:start position:0% can head into this component and we can 05:29:04.920 --> 05:29:07.750 align:start position:0% can head into this component and we can start<05:29:05.360> implementing<05:29:06.400> search<05:29:07.400> the<05:29:07.558> first 05:29:07.750 --> 05:29:07.760 align:start position:0% start implementing search the first 05:29:07.760 --> 05:29:10.510 align:start position:0% start implementing search the first thing<05:29:07.920> we<05:29:08.040> have<05:29:08.160> to<05:29:08.360> do<05:29:09.040> is<05:29:09.520> accept<05:29:10.000> those<05:29:10.240> two 05:29:10.510 --> 05:29:10.520 align:start position:0% thing we have to do is accept those two 05:29:10.520 --> 05:29:14.230 align:start position:0% thing we have to do is accept those two props<05:29:11.160> by<05:29:11.280> saying<05:29:11.798> is<05:29:12.320> search<05:29:12.840> fetching<05:29:13.840> and 05:29:14.230 --> 05:29:14.240 align:start position:0% props by saying is search fetching and 05:29:14.240 --> 05:29:15.470 align:start position:0% props by saying is search fetching and search 05:29:15.470 --> 05:29:15.480 align:start position:0% search 05:29:15.480 --> 05:29:18.230 align:start position:0% search posts<05:29:16.480> and<05:29:16.600> this<05:29:16.680> is<05:29:16.798> going<05:29:16.958> to<05:29:17.080> be<05:29:17.240> of<05:29:17.400> a 05:29:18.230 --> 05:29:18.240 align:start position:0% posts and this is going to be of a 05:29:18.240 --> 05:29:22.110 align:start position:0% posts and this is going to be of a type<05:29:19.360> search<05:29:20.600> results 05:29:22.110 --> 05:29:22.120 align:start position:0% type search results 05:29:22.120 --> 05:29:24.628 align:start position:0% type search results props<05:29:23.120> we<05:29:23.200> can<05:29:23.360> of<05:29:23.520> course<05:29:23.760> Define<05:29:24.080> the<05:29:24.360> type 05:29:24.628 --> 05:29:24.638 align:start position:0% props we can of course Define the type 05:29:24.638 --> 05:29:28.830 align:start position:0% props we can of course Define the type right<05:29:24.840> above<05:29:25.558> so<05:29:25.840> type<05:29:26.360> search<05:29:27.000> result<05:29:27.840> props 05:29:28.830 --> 05:29:28.840 align:start position:0% right above so type search result props 05:29:28.840 --> 05:29:32.110 align:start position:0% right above so type search result props it's<05:29:29.040> going<05:29:29.200> to<05:29:29.400> get<05:29:29.600> the<05:29:29.798> is<05:29:30.558> search<05:29:31.320> fetching 05:29:32.110 --> 05:29:32.120 align:start position:0% it's going to get the is search fetching 05:29:32.120 --> 05:29:34.150 align:start position:0% it's going to get the is search fetching which<05:29:32.240> is<05:29:32.360> going<05:29:32.520> to<05:29:32.638> be<05:29:32.718> a<05:29:32.878> Boolean<05:29:33.878> and 05:29:34.150 --> 05:29:34.160 align:start position:0% which is going to be a Boolean and 05:29:34.160 --> 05:29:36.470 align:start position:0% which is going to be a Boolean and search<05:29:34.760> posts<05:29:35.520> which<05:29:35.638> can<05:29:35.798> be<05:29:35.920> a<05:29:36.080> collection 05:29:36.470 --> 05:29:36.480 align:start position:0% search posts which can be a collection 05:29:36.480 --> 05:29:39.750 align:start position:0% search posts which can be a collection of<05:29:37.080> models<05:29:38.080> dot 05:29:39.750 --> 05:29:39.760 align:start position:0% of models dot 05:29:39.760 --> 05:29:42.788 align:start position:0% of models dot document<05:29:40.760> and<05:29:41.000> an<05:29:41.200> array<05:29:41.920> and<05:29:42.080> we<05:29:42.160> can<05:29:42.360> import 05:29:42.788 --> 05:29:42.798 align:start position:0% document and an array and we can import 05:29:42.798 --> 05:29:45.708 align:start position:0% document and an array and we can import that<05:29:43.040> from<05:29:43.520> aite<05:29:44.480> now<05:29:44.760> how<05:29:45.000> is<05:29:45.120> our<05:29:45.320> search 05:29:45.708 --> 05:29:45.718 align:start position:0% that from aite now how is our search 05:29:45.718 --> 05:29:48.070 align:start position:0% that from aite now how is our search going<05:29:45.878> to<05:29:46.040> look<05:29:46.360> like<05:29:47.240> well<05:29:47.440> our<05:29:47.600> search<05:29:47.958> is 05:29:48.070 --> 05:29:48.080 align:start position:0% going to look like well our search is 05:29:48.080 --> 05:29:50.230 align:start position:0% going to look like well our search is going<05:29:48.240> to<05:29:48.360> be<05:29:48.480> a<05:29:48.798> really<05:29:49.240> simple 05:29:50.230 --> 05:29:50.240 align:start position:0% going to be a really simple 05:29:50.240 --> 05:29:52.548 align:start position:0% going to be a really simple component<05:29:51.240> as<05:29:51.320> a<05:29:51.480> matter<05:29:51.680> of<05:29:51.878> fact<05:29:52.240> it's<05:29:52.400> going 05:29:52.548 --> 05:29:52.558 align:start position:0% component as a matter of fact it's going 05:29:52.558 --> 05:29:54.990 align:start position:0% component as a matter of fact it's going to<05:29:52.760> be<05:29:53.080> almost<05:29:53.440> like<05:29:53.600> an<05:29:53.840> if<05:29:54.638> so<05:29:54.760> we're<05:29:54.920> going 05:29:54.990 --> 05:29:55.000 align:start position:0% to be almost like an if so we're going 05:29:55.000 --> 05:29:57.350 align:start position:0% to be almost like an if so we're going to<05:29:55.280> return<05:29:55.520> a<05:29:55.638> couple<05:29:55.840> of<05:29:56.040> different<05:29:56.360> things 05:29:57.350 --> 05:29:57.360 align:start position:0% to return a couple of different things 05:29:57.360 --> 05:29:59.510 align:start position:0% to return a couple of different things if<05:29:57.520> we're<05:29:57.798> fetching<05:29:58.160> the<05:29:58.320> search<05:29:58.760> posts<05:29:59.440> we 05:29:59.510 --> 05:29:59.520 align:start position:0% if we're fetching the search posts we 05:29:59.520 --> 05:30:01.390 align:start position:0% if we're fetching the search posts we can<05:29:59.680> simply<05:30:00.080> return<05:30:00.320> return<05:30:00.840> the<05:30:00.958> loader 05:30:01.390 --> 05:30:01.400 align:start position:0% can simply return return the loader 05:30:01.400 --> 05:30:04.430 align:start position:0% can simply return return the loader component<05:30:02.240> which<05:30:02.400> we<05:30:02.520> have<05:30:02.638> to<05:30:02.878> import<05:30:03.440> from 05:30:04.430 --> 05:30:04.440 align:start position:0% component which we have to import from 05:30:04.440 --> 05:30:07.470 align:start position:0% component which we have to import from loader<05:30:05.440> on<05:30:05.600> the<05:30:05.718> other<05:30:05.958> hand<05:30:06.520> if<05:30:06.840> searched 05:30:07.470 --> 05:30:07.480 align:start position:0% loader on the other hand if searched 05:30:07.480 --> 05:30:11.628 align:start position:0% loader on the other hand if searched posts<05:30:08.480> exist<05:30:09.240> so<05:30:09.480> if<05:30:09.638> search<05:30:10.240> posts. 05:30:11.628 --> 05:30:11.638 align:start position:0% posts exist so if search posts. 05:30:11.638 --> 05:30:14.708 align:start position:0% posts exist so if search posts. documents.<05:30:12.638> length<05:30:13.200> is<05:30:13.400> greater<05:30:13.718> than<05:30:13.958> zero 05:30:14.708 --> 05:30:14.718 align:start position:0% documents. length is greater than zero 05:30:14.718 --> 05:30:18.070 align:start position:0% documents. length is greater than zero then<05:30:14.958> we<05:30:15.080> want<05:30:15.200> to<05:30:15.558> return<05:30:16.320> the<05:30:16.638> same<05:30:17.280> grid 05:30:18.070 --> 05:30:18.080 align:start position:0% then we want to return the same grid 05:30:18.080 --> 05:30:21.110 align:start position:0% then we want to return the same grid post<05:30:18.638> list<05:30:19.200> that<05:30:19.320> we<05:30:19.480> have<05:30:19.638> already<05:30:20.120> created 05:30:21.110 --> 05:30:21.120 align:start position:0% post list that we have already created 05:30:21.120 --> 05:30:22.910 align:start position:0% post list that we have already created but<05:30:21.360> this<05:30:21.558> time<05:30:21.958> we<05:30:22.080> want<05:30:22.160> to<05:30:22.400> pass<05:30:22.638> something 05:30:22.910 --> 05:30:22.920 align:start position:0% but this time we want to pass something 05:30:22.920 --> 05:30:24.510 align:start position:0% but this time we want to pass something else<05:30:23.160> to<05:30:23.320> it<05:30:23.558> so<05:30:23.680> I'm<05:30:23.760> going<05:30:23.878> to<05:30:24.000> put<05:30:24.120> it<05:30:24.280> in<05:30:24.360> a 05:30:24.510 --> 05:30:24.520 align:start position:0% else to it so I'm going to put it in a 05:30:24.520 --> 05:30:27.310 align:start position:0% else to it so I'm going to put it in a new<05:30:24.760> line<05:30:25.200> like<05:30:25.480> so<05:30:26.480> and<05:30:26.600> we<05:30:26.680> can<05:30:26.840> also<05:30:27.120> put 05:30:27.310 --> 05:30:27.320 align:start position:0% new line like so and we can also put 05:30:27.320 --> 05:30:29.070 align:start position:0% new line like so and we can also put this<05:30:27.440> in<05:30:27.558> a<05:30:27.680> new<05:30:27.878> line<05:30:28.040> so<05:30:28.200> it's<05:30:28.360> easier<05:30:28.638> to 05:30:29.070 --> 05:30:29.080 align:start position:0% this in a new line so it's easier to 05:30:29.080 --> 05:30:31.590 align:start position:0% this in a new line so it's easier to understand<05:30:29.440> it's<05:30:29.558> a<05:30:29.680> real<05:30:29.920> function<05:30:30.600> block 05:30:31.590 --> 05:30:31.600 align:start position:0% understand it's a real function block 05:30:31.600 --> 05:30:34.548 align:start position:0% understand it's a real function block there<05:30:31.760> we<05:30:32.000> go<05:30:32.920> so<05:30:33.080> we<05:30:33.160> want<05:30:33.280> to<05:30:33.600> return<05:30:34.240> this 05:30:34.548 --> 05:30:34.558 align:start position:0% there we go so we want to return this 05:30:34.558 --> 05:30:37.830 align:start position:0% there we go so we want to return this grid<05:30:34.878> post<05:30:35.280> list<05:30:36.160> and<05:30:36.280> we<05:30:36.360> need<05:30:36.480> to<05:30:36.760> pass<05:30:37.000> to<05:30:37.200> it 05:30:37.830 --> 05:30:37.840 align:start position:0% grid post list and we need to pass to it 05:30:37.840 --> 05:30:39.788 align:start position:0% grid post list and we need to pass to it posts<05:30:38.600> which<05:30:38.760> now<05:30:38.958> are<05:30:39.120> not<05:30:39.280> just<05:30:39.400> going<05:30:39.520> to<05:30:39.600> be 05:30:39.788 --> 05:30:39.798 align:start position:0% posts which now are not just going to be 05:30:39.798 --> 05:30:43.310 align:start position:0% posts which now are not just going to be explore<05:30:40.320> posts<05:30:41.000> but<05:30:41.200> rather<05:30:41.558> searched 05:30:43.310 --> 05:30:43.320 align:start position:0% explore posts but rather searched 05:30:43.320 --> 05:30:44.990 align:start position:0% explore posts but rather searched posts. 05:30:44.990 --> 05:30:45.000 align:start position:0% posts. 05:30:45.000 --> 05:30:48.230 align:start position:0% posts. documents<05:30:46.000> there<05:30:46.240> we<05:30:46.440> go<05:30:47.280> here<05:30:47.638> tapescript<05:30:48.120> is 05:30:48.230 --> 05:30:48.240 align:start position:0% documents there we go here tapescript is 05:30:48.240 --> 05:30:50.270 align:start position:0% documents there we go here tapescript is complaining<05:30:48.638> a<05:30:48.798> bit<05:30:49.200> I<05:30:49.320> made<05:30:49.558> two<05:30:49.760> mistakes 05:30:50.270 --> 05:30:50.280 align:start position:0% complaining a bit I made two mistakes 05:30:50.280 --> 05:30:51.948 align:start position:0% complaining a bit I made two mistakes first<05:30:50.440> of<05:30:50.600> all<05:30:50.718> I<05:30:50.840> have<05:30:50.958> to<05:30:51.080> spell<05:30:51.400> this<05:30:51.558> prop 05:30:51.948 --> 05:30:51.958 align:start position:0% first of all I have to spell this prop 05:30:51.958 --> 05:30:53.788 align:start position:0% first of all I have to spell this prop correctly<05:30:52.958> and<05:30:53.160> when<05:30:53.280> it<05:30:53.400> comes<05:30:53.558> to<05:30:53.680> the 05:30:53.788 --> 05:30:53.798 align:start position:0% correctly and when it comes to the 05:30:53.798 --> 05:30:56.150 align:start position:0% correctly and when it comes to the search<05:30:54.200> posts<05:30:54.840> it's<05:30:55.080> complaining<05:30:55.638> right<05:30:55.798> now 05:30:56.150 --> 05:30:56.160 align:start position:0% search posts it's complaining right now 05:30:56.160 --> 05:30:58.708 align:start position:0% search posts it's complaining right now that<05:30:56.480> it<05:30:56.638> does<05:30:56.878> not<05:30:57.200> exist<05:30:57.480> on<05:30:57.718> this<05:30:57.920> property 05:30:58.708 --> 05:30:58.718 align:start position:0% that it does not exist on this property 05:30:58.718 --> 05:31:00.948 align:start position:0% that it does not exist on this property we<05:30:58.798> can<05:30:59.040> add<05:30:59.240> a<05:30:59.400> check<05:30:59.798> right<05:30:59.958> here<05:31:00.320> saying<05:31:00.760> if 05:31:00.948 --> 05:31:00.958 align:start position:0% we can add a check right here saying if 05:31:00.958 --> 05:31:03.548 align:start position:0% we can add a check right here saying if search<05:31:01.360> post<05:31:01.798> exists<05:31:02.680> then<05:31:02.958> we<05:31:03.080> can<05:31:03.240> go<05:31:03.320> ahead 05:31:03.548 --> 05:31:03.558 align:start position:0% search post exists then we can go ahead 05:31:03.558 --> 05:31:05.868 align:start position:0% search post exists then we can go ahead and<05:31:03.680> check<05:31:03.878> for<05:31:04.080> the<05:31:04.480> documents<05:31:05.480> this<05:31:05.558> is<05:31:05.718> just 05:31:05.868 --> 05:31:05.878 align:start position:0% and check for the documents this is just 05:31:05.878 --> 05:31:08.030 align:start position:0% and check for the documents this is just a<05:31:06.040> top<05:31:06.280> script<05:31:06.558> warning<05:31:07.080> we<05:31:07.160> can<05:31:07.320> look<05:31:07.480> into<05:31:07.718> it 05:31:08.030 --> 05:31:08.040 align:start position:0% a top script warning we can look into it 05:31:08.040 --> 05:31:10.590 align:start position:0% a top script warning we can look into it later<05:31:09.040> and<05:31:09.280> here<05:31:09.520> it's<05:31:09.680> saying<05:31:10.000> cannot<05:31:10.320> find 05:31:10.590 --> 05:31:10.600 align:start position:0% later and here it's saying cannot find 05:31:10.600 --> 05:31:12.948 align:start position:0% later and here it's saying cannot find search<05:31:11.000> posts<05:31:11.320> did<05:31:11.480> you<05:31:11.558> mean<05:31:11.760> search<05:31:12.160> posts 05:31:12.948 --> 05:31:12.958 align:start position:0% search posts did you mean search posts 05:31:12.958 --> 05:31:15.430 align:start position:0% search posts did you mean search posts yes<05:31:13.200> we<05:31:13.360> indeed<05:31:13.958> did<05:31:14.200> mean<05:31:14.520> that<05:31:14.878> so<05:31:15.120> that's 05:31:15.430 --> 05:31:15.440 align:start position:0% yes we indeed did mean that so that's 05:31:15.440 --> 05:31:18.150 align:start position:0% yes we indeed did mean that so that's good<05:31:15.760> thank<05:31:15.920> you<05:31:16.040> tsrip<05:31:16.558> for<05:31:16.958> letting<05:31:17.280> us<05:31:17.440> know 05:31:18.150 --> 05:31:18.160 align:start position:0% good thank you tsrip for letting us know 05:31:18.160 --> 05:31:19.910 align:start position:0% good thank you tsrip for letting us know and<05:31:18.320> then<05:31:18.440> we're<05:31:18.680> passing<05:31:18.920> the<05:31:19.080> search<05:31:19.480> posts 05:31:19.910 --> 05:31:19.920 align:start position:0% and then we're passing the search posts 05:31:19.920 --> 05:31:21.948 align:start position:0% and then we're passing the search posts into<05:31:20.160> the<05:31:20.320> grid<05:31:20.680> post 05:31:21.948 --> 05:31:21.958 align:start position:0% into the grid post 05:31:21.958 --> 05:31:24.788 align:start position:0% into the grid post list<05:31:22.958> finally<05:31:23.480> if<05:31:23.680> this<05:31:23.798> is<05:31:23.958> not<05:31:24.240> true<05:31:24.600> and 05:31:24.788 --> 05:31:24.798 align:start position:0% list finally if this is not true and 05:31:24.798 --> 05:31:26.948 align:start position:0% list finally if this is not true and this<05:31:24.920> is<05:31:25.080> not<05:31:25.320> true<05:31:26.000> then<05:31:26.240> it<05:31:26.400> must<05:31:26.600> mean<05:31:26.798> that 05:31:26.948 --> 05:31:26.958 align:start position:0% this is not true then it must mean that 05:31:26.958 --> 05:31:28.990 align:start position:0% this is not true then it must mean that we<05:31:27.120> have<05:31:27.280> no<05:31:27.480> searched<05:31:28.000> posts<05:31:28.558> so<05:31:28.718> we<05:31:28.840> can 05:31:28.990 --> 05:31:29.000 align:start position:0% we have no searched posts so we can 05:31:29.000 --> 05:31:32.070 align:start position:0% we have no searched posts so we can simply<05:31:29.440> return<05:31:29.680> a<05:31:29.920> p<05:31:30.520> tag<05:31:31.520> that's<05:31:31.718> going<05:31:31.878> to 05:31:32.070 --> 05:31:32.080 align:start position:0% simply return a p tag that's going to 05:31:32.080 --> 05:31:35.990 align:start position:0% simply return a p tag that's going to say<05:31:32.558> no<05:31:33.200> results<05:31:34.160> found<05:31:35.160> and<05:31:35.280> then<05:31:35.440> we<05:31:35.520> can<05:31:35.680> do 05:31:35.990 --> 05:31:36.000 align:start position:0% say no results found and then we can do 05:31:36.000 --> 05:31:39.270 align:start position:0% say no results found and then we can do a<05:31:36.280> class<05:31:36.600> name<05:31:37.440> of<05:31:37.718> text 05:31:39.270 --> 05:31:39.280 align:start position:0% a class name of text 05:31:39.280 --> 05:31:44.948 align:start position:0% a class name of text dl-4<05:31:40.280> margin<05:31:40.760> top<05:31:41.000> of<05:31:41.160> 10<05:31:42.120> text-<05:31:43.160> Center<05:31:44.160> and<05:31:44.480> W 05:31:44.948 --> 05:31:44.958 align:start position:0% dl-4 margin top of 10 text- Center and W 05:31:44.958 --> 05:31:46.030 align:start position:0% dl-4 margin top of 10 text- Center and W Off 05:31:46.030 --> 05:31:46.040 align:start position:0% Off 05:31:46.040 --> 05:31:49.350 align:start position:0% Off full<05:31:47.040> and<05:31:47.200> this<05:31:47.320> is<05:31:47.520> it<05:31:48.160> this<05:31:48.400> is<05:31:48.680> our<05:31:48.920> search 05:31:49.350 --> 05:31:49.360 align:start position:0% full and this is it this is our search 05:31:49.360 --> 05:31:51.990 align:start position:0% full and this is it this is our search results<05:31:49.840> component<05:31:50.558> that<05:31:50.718> we<05:31:50.878> have<05:31:51.160> here<05:31:51.840> and 05:31:51.990 --> 05:31:52.000 align:start position:0% results component that we have here and 05:31:52.000 --> 05:31:54.548 align:start position:0% results component that we have here and that<05:31:52.120> we're<05:31:52.360> using<05:31:53.240> within<05:31:53.840> our<05:31:54.120> search 05:31:54.548 --> 05:31:54.558 align:start position:0% that we're using within our search 05:31:54.558 --> 05:31:56.628 align:start position:0% that we're using within our search results<05:31:55.558> here<05:31:55.798> we<05:31:55.920> have<05:31:56.040> a<05:31:56.160> warning<05:31:56.440> from 05:31:56.628 --> 05:31:56.638 align:start position:0% results here we have a warning from 05:31:56.638 --> 05:31:58.750 align:start position:0% results here we have a warning from typescript<05:31:57.440> this<05:31:57.520> is<05:31:57.760> okay<05:31:57.920> for<05:31:58.160> now<05:31:58.520> we<05:31:58.600> can 05:31:58.750 --> 05:31:58.760 align:start position:0% typescript this is okay for now we can 05:31:58.760 --> 05:32:00.788 align:start position:0% typescript this is okay for now we can come<05:31:58.958> back<05:31:59.120> to<05:31:59.280> it<05:31:59.440> later<05:31:59.680> on 05:32:00.788 --> 05:32:00.798 align:start position:0% come back to it later on 05:32:00.798 --> 05:32:03.390 align:start position:0% come back to it later on so<05:32:01.120> let's<05:32:01.320> go<05:32:01.440> ahead<05:32:01.718> and<05:32:01.958> test<05:32:02.240> our<05:32:02.520> search<05:32:03.280> we 05:32:03.390 --> 05:32:03.400 align:start position:0% so let's go ahead and test our search we 05:32:03.400 --> 05:32:04.910 align:start position:0% so let's go ahead and test our search we can<05:32:03.558> try<05:32:03.798> searching<05:32:04.160> for<05:32:04.360> something<05:32:04.638> that<05:32:04.798> we 05:32:04.910 --> 05:32:04.920 align:start position:0% can try searching for something that we 05:32:04.920 --> 05:32:07.430 align:start position:0% can try searching for something that we have<05:32:05.040> on<05:32:05.160> our<05:32:05.320> homepage<05:32:06.240> for<05:32:06.440> example<05:32:06.840> nextjs 05:32:07.430 --> 05:32:07.440 align:start position:0% have on our homepage for example nextjs 05:32:07.440 --> 05:32:11.110 align:start position:0% have on our homepage for example nextjs 13<05:32:08.400> appears<05:32:08.878> in<05:32:09.200> both<05:32:09.920> we<05:32:10.040> have<05:32:10.200> learning<05:32:10.798> here 05:32:11.110 --> 05:32:11.120 align:start position:0% 13 appears in both we have learning here 05:32:11.120 --> 05:32:13.150 align:start position:0% 13 appears in both we have learning here and<05:32:11.240> we<05:32:11.360> have<05:32:11.558> ultimate<05:32:12.160> here<05:32:12.520> so<05:32:12.760> let's<05:32:12.958> try 05:32:13.150 --> 05:32:13.160 align:start position:0% and we have ultimate here so let's try 05:32:13.160 --> 05:32:15.750 align:start position:0% and we have ultimate here so let's try to<05:32:13.320> search<05:32:13.680> for<05:32:14.200> something<05:32:14.558> like<05:32:14.798> that<05:32:15.520> let's 05:32:15.750 --> 05:32:15.760 align:start position:0% to search for something like that let's 05:32:15.760 --> 05:32:19.270 align:start position:0% to search for something like that let's try<05:32:16.080> to<05:32:16.240> go<05:32:16.440> for<05:32:16.878> next.js 05:32:19.270 --> 05:32:19.280 align:start position:0% try to go for next.js 05:32:19.280 --> 05:32:22.948 align:start position:0% try to go for next.js it's<05:32:20.280> loading<05:32:20.840> and<05:32:20.958> we<05:32:21.120> get<05:32:21.400> both<05:32:22.000> that's<05:32:22.280> good 05:32:22.948 --> 05:32:22.958 align:start position:0% it's loading and we get both that's good 05:32:22.958 --> 05:32:26.948 align:start position:0% it's loading and we get both that's good both<05:32:23.240> say<05:32:23.558> 13<05:32:24.558> but<05:32:24.840> only<05:32:25.080> one<05:32:25.360> says<05:32:25.840> 13.5<05:32:26.840> the 05:32:26.948 --> 05:32:26.958 align:start position:0% both say 13 but only one says 13.5 the 05:32:26.958 --> 05:32:28.350 align:start position:0% both say 13 but only one says 13.5 the other<05:32:27.120> one<05:32:27.240> is 05:32:28.350 --> 05:32:28.360 align:start position:0% other one is 05:32:28.360 --> 05:32:31.030 align:start position:0% other one is 13.6<05:32:29.360> so<05:32:29.520> if<05:32:29.600> we<05:32:29.718> do<05:32:29.920> this<05:32:30.120> this<05:32:30.440> it<05:32:30.558> seems<05:32:30.878> like 05:32:31.030 --> 05:32:31.040 align:start position:0% 13.6 so if we do this this it seems like 05:32:31.040 --> 05:32:33.230 align:start position:0% 13.6 so if we do this this it seems like it's<05:32:31.280> not<05:32:31.558> ref<05:32:31.920> fetching<05:32:32.240> it<05:32:32.638> it<05:32:32.840> just<05:32:33.040> gives 05:32:33.230 --> 05:32:33.240 align:start position:0% it's not ref fetching it it just gives 05:32:33.240 --> 05:32:36.270 align:start position:0% it's not ref fetching it it just gives us<05:32:33.440> what's<05:32:33.600> already<05:32:34.320> cached<05:32:35.320> so<05:32:35.638> let's<05:32:35.920> go 05:32:36.270 --> 05:32:36.280 align:start position:0% us what's already cached so let's go 05:32:36.280 --> 05:32:39.350 align:start position:0% us what's already cached so let's go into<05:32:37.000> our<05:32:37.360> query<05:32:38.080> for<05:32:38.320> the<05:32:38.480> search<05:32:39.120> that's 05:32:39.350 --> 05:32:39.360 align:start position:0% into our query for the search that's 05:32:39.360 --> 05:32:43.750 align:start position:0% into our query for the search that's going<05:32:39.520> to<05:32:39.878> be<05:32:40.878> search<05:32:41.440> post<05:32:41.840> use<05:32:42.240> search<05:32:42.760> posts 05:32:43.750 --> 05:32:43.760 align:start position:0% going to be search post use search posts 05:32:43.760 --> 05:32:45.548 align:start position:0% going to be search post use search posts and<05:32:43.920> then<05:32:44.200> here<05:32:44.520> we<05:32:44.638> have<05:32:44.798> to<05:32:45.040> validate<05:32:45.440> the 05:32:45.548 --> 05:32:45.558 align:start position:0% and then here we have to validate the 05:32:45.558 --> 05:32:48.670 align:start position:0% and then here we have to validate the query<05:32:46.000> again<05:32:46.718> once<05:32:47.000> the<05:32:47.120> search<05:32:47.480> term<05:32:47.760> changes 05:32:48.670 --> 05:32:48.680 align:start position:0% query again once the search term changes 05:32:48.680 --> 05:32:51.670 align:start position:0% query again once the search term changes so<05:32:48.840> we<05:32:48.920> can<05:32:49.240> pass<05:32:49.760> the<05:32:49.878> search<05:32:50.280> term<05:32:50.760> here<05:32:51.520> as 05:32:51.670 --> 05:32:51.680 align:start position:0% so we can pass the search term here as 05:32:51.680 --> 05:32:54.270 align:start position:0% so we can pass the search term here as the<05:32:51.840> second<05:32:52.558> parameter<05:32:53.558> and<05:32:53.760> now<05:32:54.080> it's<05:32:54.200> going 05:32:54.270 --> 05:32:54.280 align:start position:0% the second parameter and now it's going 05:32:54.280 --> 05:32:58.788 align:start position:0% the second parameter and now it's going to<05:32:54.400> recall<05:32:54.840> it<05:32:55.558> 13.5<05:32:56.558> and<05:32:56.718> then<05:32:57.320> 13.6<05:32:58.320> we<05:32:58.480> still 05:32:58.788 --> 05:32:58.798 align:start position:0% to recall it 13.5 and then 13.6 we still 05:32:58.798 --> 05:33:01.830 align:start position:0% to recall it 13.5 and then 13.6 we still have<05:32:59.120> both<05:32:59.558> but<05:32:59.680> if<05:32:59.798> we<05:33:00.080> search<05:33:00.280> for 05:33:01.830 --> 05:33:01.840 align:start position:0% have both but if we search for 05:33:01.840 --> 05:33:04.350 align:start position:0% have both but if we search for ultimate<05:33:02.840> we<05:33:03.000> only<05:33:03.320> have<05:33:03.600> this<05:33:04.000> and<05:33:04.120> if<05:33:04.240> we 05:33:04.350 --> 05:33:04.360 align:start position:0% ultimate we only have this and if we 05:33:04.360 --> 05:33:07.070 align:start position:0% ultimate we only have this and if we search<05:33:04.600> for 05:33:07.070 --> 05:33:07.080 align:start position:0% 05:33:07.080 --> 05:33:09.548 align:start position:0% learning<05:33:08.080> we<05:33:08.240> only<05:33:08.480> get<05:33:08.760> this<05:33:09.160> which<05:33:09.320> means 05:33:09.548 --> 05:33:09.558 align:start position:0% learning we only get this which means 05:33:09.558 --> 05:33:12.430 align:start position:0% learning we only get this which means that<05:33:09.680> our<05:33:09.840> search<05:33:10.240> is<05:33:10.440> working<05:33:11.200> properly<05:33:12.200> this 05:33:12.430 --> 05:33:12.440 align:start position:0% that our search is working properly this 05:33:12.440 --> 05:33:15.670 align:start position:0% that our search is working properly this is<05:33:12.920> great<05:33:13.400> to<05:33:14.000> see<05:33:15.000> of<05:33:15.160> course<05:33:15.400> there<05:33:15.520> are 05:33:15.670 --> 05:33:15.680 align:start position:0% is great to see of course there are 05:33:15.680 --> 05:33:18.750 align:start position:0% is great to see of course there are filters<05:33:16.200> here<05:33:16.440> that<05:33:16.600> we<05:33:16.680> can<05:33:16.920> also<05:33:17.240> do<05:33:17.958> and<05:33:18.600> in 05:33:18.750 --> 05:33:18.760 align:start position:0% filters here that we can also do and in 05:33:18.760 --> 05:33:20.548 align:start position:0% filters here that we can also do and in general<05:33:19.120> if<05:33:19.240> we<05:33:19.360> don't<05:33:19.558> have<05:33:19.718> search<05:33:20.280> then<05:33:20.440> we 05:33:20.548 --> 05:33:20.558 align:start position:0% general if we don't have search then we 05:33:20.558 --> 05:33:22.590 align:start position:0% general if we don't have search then we have<05:33:20.718> the<05:33:20.878> explore<05:33:21.680> of<05:33:21.840> course<05:33:22.160> this<05:33:22.280> is<05:33:22.400> the 05:33:22.590 --> 05:33:22.600 align:start position:0% have the explore of course this is the 05:33:22.600 --> 05:33:23.750 align:start position:0% have the explore of course this is the place<05:33:22.878> where<05:33:23.000> we're<05:33:23.160> going<05:33:23.240> to<05:33:23.440> also 05:33:23.750 --> 05:33:23.760 align:start position:0% place where we're going to also 05:33:23.760 --> 05:33:26.270 align:start position:0% place where we're going to also implement<05:33:24.480> the<05:33:24.718> infinite<05:33:25.280> loading<05:33:25.878> so<05:33:26.040> we<05:33:26.120> can 05:33:26.270 --> 05:33:26.280 align:start position:0% implement the infinite loading so we can 05:33:26.280 --> 05:33:29.390 align:start position:0% implement the infinite loading so we can immediately<05:33:26.840> fetch<05:33:27.320> all<05:33:27.520> of<05:33:27.638> the<05:33:27.798> next<05:33:28.400> pages 05:33:29.390 --> 05:33:29.400 align:start position:0% immediately fetch all of the next pages 05:33:29.400 --> 05:33:30.910 align:start position:0% immediately fetch all of the next pages and<05:33:29.600> all<05:33:29.760> of<05:33:30.040> that<05:33:30.200> is<05:33:30.280> going<05:33:30.360> to<05:33:30.480> be<05:33:30.638> pretty 05:33:30.910 --> 05:33:30.920 align:start position:0% and all of that is going to be pretty 05:33:30.920 --> 05:33:34.230 align:start position:0% and all of that is going to be pretty easy<05:33:31.200> to<05:33:31.400> implement<05:33:32.240> using<05:33:32.878> react<05:33:33.400> query<05:33:34.000> and 05:33:34.230 --> 05:33:34.240 align:start position:0% easy to implement using react query and 05:33:34.240 --> 05:33:36.948 align:start position:0% easy to implement using react query and aite<05:33:35.200> so<05:33:35.400> what<05:33:35.520> we<05:33:35.638> can<05:33:35.798> do<05:33:36.120> is<05:33:36.320> first<05:33:36.520> of<05:33:36.638> all 05:33:36.948 --> 05:33:36.958 align:start position:0% aite so what we can do is first of all 05:33:36.958 --> 05:33:40.590 align:start position:0% aite so what we can do is first of all go<05:33:37.240> all<05:33:37.600> the<05:33:37.718> way<05:33:38.160> down<05:33:38.920> and<05:33:39.200> below<05:33:39.718> this<05:33:39.920> div 05:33:40.590 --> 05:33:40.600 align:start position:0% go all the way down and below this div 05:33:40.600 --> 05:33:42.708 align:start position:0% go all the way down and below this div we<05:33:40.718> can<05:33:40.920> create<05:33:41.320> a<05:33:41.520> new<05:33:41.798> Dynamic<05:33:42.280> block<05:33:42.558> of 05:33:42.708 --> 05:33:42.718 align:start position:0% we can create a new Dynamic block of 05:33:42.718 --> 05:33:46.708 align:start position:0% we can create a new Dynamic block of code<05:33:43.360> that<05:33:43.480> says<05:33:44.000> if<05:33:44.760> we<05:33:45.080> have<05:33:45.440> a<05:33:45.600> next<05:33:46.000> page<05:33:46.400> so 05:33:46.708 --> 05:33:46.718 align:start position:0% code that says if we have a next page so 05:33:46.718 --> 05:33:50.310 align:start position:0% code that says if we have a next page so has<05:33:47.000> next<05:33:47.718> page<05:33:48.718> and<05:33:49.120> if<05:33:49.280> there<05:33:49.440> is<05:33:49.638> no<05:33:49.878> search 05:33:50.310 --> 05:33:50.320 align:start position:0% has next page and if there is no search 05:33:50.320 --> 05:33:54.110 align:start position:0% has next page and if there is no search value<05:33:50.958> meaning<05:33:51.360> we<05:33:51.480> are<05:33:51.600> on<05:33:51.760> the<05:33:52.320> explore<05:33:53.320> and 05:33:54.110 --> 05:33:54.120 align:start position:0% value meaning we are on the explore and 05:33:54.120 --> 05:33:57.150 align:start position:0% value meaning we are on the explore and then<05:33:54.280> we<05:33:54.440> want<05:33:54.600> to<05:33:54.718> show<05:33:55.520> a<05:33:55.798> div<05:33:56.798> that's<05:33:57.000> going 05:33:57.150 --> 05:33:57.160 align:start position:0% then we want to show a div that's going 05:33:57.160 --> 05:33:59.390 align:start position:0% then we want to show a div that's going to<05:33:57.320> have<05:33:57.480> a<05:33:57.638> ref<05:33:58.200> this<05:33:58.320> is<05:33:58.480> really<05:33:58.718> important<05:33:59.200> a 05:33:59.390 --> 05:33:59.400 align:start position:0% to have a ref this is really important a 05:33:59.400 --> 05:34:00.990 align:start position:0% to have a ref this is really important a ref 05:34:00.990 --> 05:34:01.000 align:start position:0% ref 05:34:01.000 --> 05:34:04.788 align:start position:0% ref called<05:34:01.520> ref<05:34:02.520> and<05:34:02.680> a<05:34:02.920> class<05:34:03.240> name<05:34:04.120> of<05:34:04.360> margin 05:34:04.788 --> 05:34:04.798 align:start position:0% called ref and a class name of margin 05:34:04.798 --> 05:34:06.190 align:start position:0% called ref and a class name of margin top<05:34:05.040> of 05:34:06.190 --> 05:34:06.200 align:start position:0% top of 05:34:06.200 --> 05:34:08.590 align:start position:0% top of 10<05:34:07.200> of<05:34:07.360> course<05:34:07.558> the<05:34:07.680> app<05:34:07.920> is<05:34:08.000> going<05:34:08.160> to<05:34:08.280> break 05:34:08.590 --> 05:34:08.600 align:start position:0% 10 of course the app is going to break 05:34:08.600 --> 05:34:10.230 align:start position:0% 10 of course the app is going to break now<05:34:08.878> because<05:34:09.120> we<05:34:09.240> haven't<05:34:09.520> yet<05:34:09.680> created<05:34:10.040> this 05:34:10.230 --> 05:34:10.240 align:start position:0% now because we haven't yet created this 05:34:10.240 --> 05:34:13.430 align:start position:0% now because we haven't yet created this ref<05:34:11.240> and<05:34:11.360> we<05:34:11.480> can<05:34:11.638> add<05:34:11.760> a<05:34:11.920> loader<05:34:12.638> right<05:34:12.878> here 05:34:13.430 --> 05:34:13.440 align:start position:0% ref and we can add a loader right here 05:34:13.440 --> 05:34:16.070 align:start position:0% ref and we can add a loader right here when<05:34:13.600> we're<05:34:13.798> loading<05:34:14.080> for<05:34:14.280> the<05:34:14.440> next<05:34:14.760> page<05:34:15.760> now 05:34:16.070 --> 05:34:16.080 align:start position:0% when we're loading for the next page now 05:34:16.080 --> 05:34:18.070 align:start position:0% when we're loading for the next page now why<05:34:16.160> are<05:34:16.280> we<05:34:16.440> adding<05:34:16.680> a<05:34:16.878> ref<05:34:17.400> to<05:34:17.638> this<05:34:17.798> little 05:34:18.070 --> 05:34:18.080 align:start position:0% why are we adding a ref to this little 05:34:18.080 --> 05:34:19.910 align:start position:0% why are we adding a ref to this little div<05:34:18.440> right<05:34:18.600> here<05:34:18.718> at<05:34:18.840> the<05:34:19.000> bottom<05:34:19.558> well<05:34:19.760> once 05:34:19.910 --> 05:34:19.920 align:start position:0% div right here at the bottom well once 05:34:19.920 --> 05:34:22.150 align:start position:0% div right here at the bottom well once we<05:34:20.040> scroll<05:34:20.360> to<05:34:20.558> it<05:34:21.040> and<05:34:21.240> once<05:34:21.480> this<05:34:21.718> reference 05:34:22.150 --> 05:34:22.160 align:start position:0% we scroll to it and once this reference 05:34:22.160 --> 05:34:24.070 align:start position:0% we scroll to it and once this reference gets<05:34:22.320> in<05:34:22.520> view<05:34:23.160> it<05:34:23.280> means<05:34:23.558> we're<05:34:23.718> at<05:34:23.920> the 05:34:24.070 --> 05:34:24.080 align:start position:0% gets in view it means we're at the 05:34:24.080 --> 05:34:26.110 align:start position:0% gets in view it means we're at the bottom<05:34:24.320> of<05:34:24.440> the<05:34:24.638> page<05:34:25.240> and<05:34:25.400> we<05:34:25.480> want<05:34:25.638> to<05:34:25.760> start 05:34:26.110 --> 05:34:26.120 align:start position:0% bottom of the page and we want to start 05:34:26.120 --> 05:34:28.670 align:start position:0% bottom of the page and we want to start loading<05:34:26.680> the<05:34:26.840> new<05:34:27.120> posts<05:34:27.878> so<05:34:28.040> let<05:34:28.120> me<05:34:28.280> show<05:34:28.480> you 05:34:28.670 --> 05:34:28.680 align:start position:0% loading the new posts so let me show you 05:34:28.680 --> 05:34:31.110 align:start position:0% loading the new posts so let me show you how<05:34:28.798> to<05:34:29.000> implement<05:34:29.520> that<05:34:30.120> right<05:34:30.320> at<05:34:30.480> the<05:34:30.680> top 05:34:31.110 --> 05:34:31.120 align:start position:0% how to implement that right at the top 05:34:31.120 --> 05:34:34.070 align:start position:0% how to implement that right at the top we<05:34:31.240> can<05:34:31.480> install<05:34:32.000> a<05:34:32.200> new<05:34:32.798> package<05:34:33.798> this 05:34:34.070 --> 05:34:34.080 align:start position:0% we can install a new package this 05:34:34.080 --> 05:34:36.910 align:start position:0% we can install a new package this package<05:34:34.400> is<05:34:34.558> called<05:34:34.958> react<05:34:35.680> intersection 05:34:36.910 --> 05:34:36.920 align:start position:0% package is called react intersection 05:34:36.920 --> 05:34:39.270 align:start position:0% package is called react intersection Observer<05:34:37.920> you<05:34:38.000> can<05:34:38.120> see<05:34:38.320> it<05:34:38.558> right<05:34:38.760> here<05:34:39.040> on 05:34:39.270 --> 05:34:39.280 align:start position:0% Observer you can see it right here on 05:34:39.280 --> 05:34:42.190 align:start position:0% Observer you can see it right here on mpm<05:34:40.280> you<05:34:40.400> can<05:34:40.600> implement<05:34:41.000> it<05:34:41.200> in<05:34:41.400> Hooks<05:34:42.040> and 05:34:42.190 --> 05:34:42.200 align:start position:0% mpm you can implement it in Hooks and 05:34:42.200 --> 05:34:44.270 align:start position:0% mpm you can implement it in Hooks and it's<05:34:42.320> going<05:34:42.480> to<05:34:42.638> give<05:34:42.760> us<05:34:43.040> access<05:34:43.280> to<05:34:43.520> this<05:34:43.878> use 05:34:44.270 --> 05:34:44.280 align:start position:0% it's going to give us access to this use 05:34:44.280 --> 05:34:46.830 align:start position:0% it's going to give us access to this use in<05:34:44.680> view<05:34:45.400> it's<05:34:45.520> going<05:34:45.680> to<05:34:45.840> be<05:34:46.080> really<05:34:46.360> easy<05:34:46.638> to 05:34:46.830 --> 05:34:46.840 align:start position:0% in view it's going to be really easy to 05:34:46.840 --> 05:34:49.830 align:start position:0% in view it's going to be really easy to monitor<05:34:47.798> specific<05:34:48.240> elements<05:34:49.160> in<05:34:49.360> this<05:34:49.558> case 05:34:49.830 --> 05:34:49.840 align:start position:0% monitor specific elements in this case 05:34:49.840 --> 05:34:52.070 align:start position:0% monitor specific elements in this case that<05:34:50.080> ref<05:34:50.480> at<05:34:50.600> the<05:34:50.760> bottom<05:34:51.520> the<05:34:51.638> only<05:34:51.840> thing<05:34:51.958> we 05:34:52.070 --> 05:34:52.080 align:start position:0% that ref at the bottom the only thing we 05:34:52.080 --> 05:34:54.948 align:start position:0% that ref at the bottom the only thing we have<05:34:52.200> to<05:34:52.360> do<05:34:52.798> is<05:34:53.000> import<05:34:53.360> it<05:34:54.160> attach<05:34:54.400> a<05:34:54.558> ref<05:34:54.798> to 05:34:54.948 --> 05:34:54.958 align:start position:0% have to do is import it attach a ref to 05:34:54.958 --> 05:34:56.548 align:start position:0% have to do is import it attach a ref to it<05:34:55.360> and<05:34:55.480> then<05:34:55.600> we're<05:34:55.718> going<05:34:55.798> to<05:34:55.958> know<05:34:56.200> once<05:34:56.360> we 05:34:56.548 --> 05:34:56.558 align:start position:0% it and then we're going to know once we 05:34:56.558 --> 05:34:58.990 align:start position:0% it and then we're going to know once we reach<05:34:56.840> the<05:34:57.000> bottom<05:34:57.280> of<05:34:57.400> the<05:34:57.558> page<05:34:58.440> again<05:34:58.760> don't 05:34:58.990 --> 05:34:59.000 align:start position:0% reach the bottom of the page again don't 05:34:59.000 --> 05:35:00.830 align:start position:0% reach the bottom of the page again don't read<05:34:59.280> when<05:34:59.480> the<05:34:59.558> wheel<05:35:00.000> when<05:35:00.120> you<05:35:00.200> can<05:35:00.400> find<05:35:00.718> a 05:35:00.830 --> 05:35:00.840 align:start position:0% read when the wheel when you can find a 05:35:00.840 --> 05:35:03.910 align:start position:0% read when the wheel when you can find a simple<05:35:01.280> package<05:35:01.680> like<05:35:02.080> so<05:35:03.080> and<05:35:03.320> we<05:35:03.400> can<05:35:03.558> easily 05:35:03.910 --> 05:35:03.920 align:start position:0% simple package like so and we can easily 05:35:03.920 --> 05:35:06.670 align:start position:0% simple package like so and we can easily install<05:35:04.280> it<05:35:04.480> by<05:35:04.600> running<05:35:04.958> mpm<05:35:05.440> install<05:35:06.080> react 05:35:06.670 --> 05:35:06.680 align:start position:0% install it by running mpm install react 05:35:06.680 --> 05:35:09.628 align:start position:0% install it by running mpm install react intersection<05:35:07.798> Observer<05:35:08.798> there<05:35:08.920> we<05:35:09.120> go<05:35:09.440> the 05:35:09.628 --> 05:35:09.638 align:start position:0% intersection Observer there we go the 05:35:09.638 --> 05:35:12.030 align:start position:0% intersection Observer there we go the package<05:35:09.920> got<05:35:10.120> installed<05:35:10.958> and<05:35:11.120> we<05:35:11.240> can<05:35:11.400> use<05:35:11.638> it 05:35:12.030 --> 05:35:12.040 align:start position:0% package got installed and we can use it 05:35:12.040 --> 05:35:16.590 align:start position:0% package got installed and we can use it by<05:35:12.600> importing<05:35:13.600> the<05:35:13.840> use<05:35:14.320> in<05:35:14.878> view<05:35:15.400> hook<05:35:16.200> coming 05:35:16.590 --> 05:35:16.600 align:start position:0% by importing the use in view hook coming 05:35:16.600 --> 05:35:20.910 align:start position:0% by importing the use in view hook coming from<05:35:17.320> react<05:35:18.280> intersection<05:35:19.600> Observer<05:35:20.600> now 05:35:20.910 --> 05:35:20.920 align:start position:0% from react intersection Observer now 05:35:20.920 --> 05:35:23.110 align:start position:0% from react intersection Observer now right<05:35:21.120> at<05:35:21.280> the<05:35:21.480> top<05:35:21.958> we<05:35:22.080> can<05:35:22.240> declare<05:35:22.680> a<05:35:22.840> new 05:35:23.110 --> 05:35:23.120 align:start position:0% right at the top we can declare a new 05:35:23.120 --> 05:35:27.708 align:start position:0% right at the top we can declare a new ref<05:35:23.958> const<05:35:24.520> ref<05:35:25.360> and<05:35:25.680> in<05:35:26.080> view<05:35:27.080> which<05:35:27.200> is<05:35:27.440> equal 05:35:27.708 --> 05:35:27.718 align:start position:0% ref const ref and in view which is equal 05:35:27.718 --> 05:35:32.150 align:start position:0% ref const ref and in view which is equal to<05:35:28.440> the<05:35:28.638> call<05:35:29.040> of<05:35:29.240> the<05:35:29.360> used<05:35:30.000> in<05:35:30.520> view<05:35:31.200> hook 05:35:32.150 --> 05:35:32.160 align:start position:0% to the call of the used in view hook 05:35:32.160 --> 05:35:33.590 align:start position:0% to the call of the used in view hook just<05:35:32.558> like 05:35:33.590 --> 05:35:33.600 align:start position:0% just like 05:35:33.600 --> 05:35:37.230 align:start position:0% just like so<05:35:34.600> and<05:35:34.840> then<05:35:35.160> we<05:35:35.280> can<05:35:35.480> also<05:35:35.878> import<05:35:36.320> use 05:35:37.230 --> 05:35:37.240 align:start position:0% so and then we can also import use 05:35:37.240 --> 05:35:40.510 align:start position:0% so and then we can also import use effect<05:35:38.240> coming<05:35:38.520> from<05:35:38.878> react<05:35:39.878> we<05:35:40.000> can<05:35:40.200> Define 05:35:40.510 --> 05:35:40.520 align:start position:0% effect coming from react we can Define 05:35:40.520 --> 05:35:43.270 align:start position:0% effect coming from react we can Define it<05:35:40.760> right<05:35:40.878> here<05:35:41.040> at<05:35:41.200> the<05:35:41.400> top<05:35:41.840> by<05:35:42.000> saying<05:35:42.400> use 05:35:43.270 --> 05:35:43.280 align:start position:0% it right here at the top by saying use 05:35:43.280 --> 05:35:46.910 align:start position:0% it right here at the top by saying use effect<05:35:44.280> don't<05:35:44.638> Define<05:35:44.958> it<05:35:45.240> below<05:35:46.040> the<05:35:46.320> if 05:35:46.910 --> 05:35:46.920 align:start position:0% effect don't Define it below the if 05:35:46.920 --> 05:35:49.470 align:start position:0% effect don't Define it below the if statement<05:35:47.920> use<05:35:48.240> effects<05:35:48.600> have<05:35:48.718> to<05:35:48.878> be<05:35:49.120> above 05:35:49.470 --> 05:35:49.480 align:start position:0% statement use effects have to be above 05:35:49.480 --> 05:35:50.868 align:start position:0% statement use effects have to be above all<05:35:50.000> conditional 05:35:50.868 --> 05:35:50.878 align:start position:0% all conditional 05:35:50.878 --> 05:35:53.190 align:start position:0% all conditional renderings<05:35:51.878> and<05:35:52.080> it's<05:35:52.240> going<05:35:52.400> to<05:35:52.600> render 05:35:53.190 --> 05:35:53.200 align:start position:0% renderings and it's going to render 05:35:53.200 --> 05:35:56.310 align:start position:0% renderings and it's going to render whenever<05:35:53.558> the<05:35:53.798> inw<05:35:54.400> variable<05:35:55.040> changes<05:35:55.958> or 05:35:56.310 --> 05:35:56.320 align:start position:0% whenever the inw variable changes or 05:35:56.320 --> 05:35:58.670 align:start position:0% whenever the inw variable changes or whenever<05:35:56.638> the<05:35:56.798> search<05:35:57.600> value 05:35:58.670 --> 05:35:58.680 align:start position:0% whenever the search value 05:35:58.680 --> 05:36:01.350 align:start position:0% whenever the search value changes<05:35:59.760> what<05:35:59.878> we<05:35:59.958> want<05:36:00.080> to<05:36:00.200> do<05:36:00.798> is<05:36:00.920> we<05:36:01.040> want<05:36:01.160> to 05:36:01.350 --> 05:36:01.360 align:start position:0% changes what we want to do is we want to 05:36:01.360 --> 05:36:05.910 align:start position:0% changes what we want to do is we want to check<05:36:02.040> if<05:36:02.600> it<05:36:02.718> is<05:36:03.000> in<05:36:03.480> View<05:36:04.480> and<05:36:04.958> if<05:36:05.280> we're<05:36:05.638> not 05:36:05.910 --> 05:36:05.920 align:start position:0% check if it is in View and if we're not 05:36:05.920 --> 05:36:07.788 align:start position:0% check if it is in View and if we're not searching<05:36:06.360> for<05:36:06.600> something<05:36:07.120> so<05:36:07.280> if<05:36:07.360> there's<05:36:07.558> no 05:36:07.788 --> 05:36:07.798 align:start position:0% searching for something so if there's no 05:36:07.798 --> 05:36:10.788 align:start position:0% searching for something so if there's no search<05:36:08.200> value<05:36:09.160> then<05:36:09.440> we<05:36:09.558> want<05:36:09.680> to<05:36:09.840> fetch<05:36:10.400> next 05:36:10.788 --> 05:36:10.798 align:start position:0% search value then we want to fetch next 05:36:10.798 --> 05:36:13.990 align:start position:0% search value then we want to fetch next page<05:36:11.798> and<05:36:12.080> this<05:36:12.240> is<05:36:12.718> my<05:36:12.958> people<05:36:13.638> how<05:36:13.798> you 05:36:13.990 --> 05:36:14.000 align:start position:0% page and this is my people how you 05:36:14.000 --> 05:36:16.830 align:start position:0% page and this is my people how you implement<05:36:14.798> infinite<05:36:15.280> scroll<05:36:16.200> so<05:36:16.400> let's<05:36:16.600> save 05:36:16.830 --> 05:36:16.840 align:start position:0% implement infinite scroll so let's save 05:36:16.840 --> 05:36:20.070 align:start position:0% implement infinite scroll so let's save it<05:36:17.480> let's<05:36:17.718> go<05:36:17.878> back<05:36:18.000> to<05:36:18.520> application<05:36:19.520> and<05:36:19.718> now 05:36:20.070 --> 05:36:20.080 align:start position:0% it let's go back to application and now 05:36:20.080 --> 05:36:21.590 align:start position:0% it let's go back to application and now as<05:36:20.200> you<05:36:20.320> get<05:36:20.440> to<05:36:20.600> the<05:36:20.760> bottom<05:36:21.200> you<05:36:21.320> should<05:36:21.480> be 05:36:21.590 --> 05:36:21.600 align:start position:0% as you get to the bottom you should be 05:36:21.600 --> 05:36:24.070 align:start position:0% as you get to the bottom you should be able<05:36:21.798> to<05:36:21.878> see<05:36:22.040> the<05:36:22.200> scroll<05:36:22.558> up<05:36:23.520> of<05:36:23.718> course<05:36:23.958> it's 05:36:24.070 --> 05:36:24.080 align:start position:0% able to see the scroll up of course it's 05:36:24.080 --> 05:36:25.868 align:start position:0% able to see the scroll up of course it's not<05:36:24.280> going<05:36:24.440> to<05:36:24.558> give<05:36:24.718> us<05:36:24.920> anything<05:36:25.400> right<05:36:25.558> now 05:36:25.868 --> 05:36:25.878 align:start position:0% not going to give us anything right now 05:36:25.878 --> 05:36:27.470 align:start position:0% not going to give us anything right now because<05:36:26.080> there<05:36:26.200> are<05:36:26.360> no<05:36:26.600> new 05:36:27.470 --> 05:36:27.480 align:start position:0% because there are no new 05:36:27.480 --> 05:36:29.868 align:start position:0% because there are no new posts<05:36:28.480> but<05:36:28.718> if<05:36:28.840> we<05:36:29.000> limit<05:36:29.280> the<05:36:29.400> number<05:36:29.558> of<05:36:29.760> of 05:36:29.868 --> 05:36:29.878 align:start position:0% posts but if we limit the number of of 05:36:29.878 --> 05:36:32.390 align:start position:0% posts but if we limit the number of of posts<05:36:30.240> per<05:36:30.558> page<05:36:31.320> and<05:36:31.558> if<05:36:31.638> we<05:36:31.798> create<05:36:32.120> more 05:36:32.390 --> 05:36:32.400 align:start position:0% posts per page and if we create more 05:36:32.400 --> 05:36:35.030 align:start position:0% posts per page and if we create more posts<05:36:32.920> it's<05:36:33.080> going<05:36:33.280> to<05:36:33.480> work<05:36:34.400> we<05:36:34.520> can<05:36:34.680> test<05:36:34.920> it 05:36:35.030 --> 05:36:35.040 align:start position:0% posts it's going to work we can test it 05:36:35.040 --> 05:36:38.708 align:start position:0% posts it's going to work we can test it out<05:36:35.360> really<05:36:36.120> soon<05:36:37.120> so<05:36:37.680> up<05:36:37.798> to<05:36:38.040> this<05:36:38.240> point 05:36:38.708 --> 05:36:38.718 align:start position:0% out really soon so up to this point 05:36:38.718 --> 05:36:41.788 align:start position:0% out really soon so up to this point we've<05:36:39.000> implemented<05:36:39.840> a<05:36:40.120> lot<05:36:40.600> of<05:36:40.878> stuff<05:36:41.600> so 05:36:41.788 --> 05:36:41.798 align:start position:0% we've implemented a lot of stuff so 05:36:41.798 --> 05:36:44.310 align:start position:0% we've implemented a lot of stuff so let's<05:36:42.000> close<05:36:42.400> these<05:36:42.680> files<05:36:43.480> let's<05:36:43.760> expand 05:36:44.310 --> 05:36:44.320 align:start position:0% let's close these files let's expand 05:36:44.320 --> 05:36:46.708 align:start position:0% let's close these files let's expand this<05:36:44.520> to<05:36:44.718> its<05:36:44.878> full<05:36:45.200> glory<05:36:45.878> and<05:36:46.080> let's<05:36:46.280> see 05:36:46.708 --> 05:36:46.718 align:start position:0% this to its full glory and let's see 05:36:46.718 --> 05:36:49.030 align:start position:0% this to its full glory and let's see what<05:36:46.920> we<05:36:47.080> have<05:36:47.280> implemented<05:36:48.160> up<05:36:48.320> to<05:36:48.558> this 05:36:49.030 --> 05:36:49.040 align:start position:0% what we have implemented up to this 05:36:49.040 --> 05:36:53.628 align:start position:0% what we have implemented up to this point<05:36:50.040> we<05:36:50.320> have<05:36:50.878> a<05:36:51.480> phenomenal<05:36:52.638> registration 05:36:53.628 --> 05:36:53.638 align:start position:0% point we have a phenomenal registration 05:36:53.638 --> 05:36:56.548 align:start position:0% point we have a phenomenal registration and<05:36:53.878> login<05:36:54.240> screen<05:36:55.080> so<05:36:55.400> here<05:36:55.718> we<05:36:55.840> can<05:36:56.040> login 05:36:56.548 --> 05:36:56.558 align:start position:0% and login screen so here we can login 05:36:56.558 --> 05:36:58.708 align:start position:0% and login screen so here we can login into<05:36:56.798> our<05:36:57.040> account<05:36:57.558> or<05:36:57.798> we<05:36:57.920> can<05:36:58.120> sign<05:36:58.400> up<05:36:58.520> for 05:36:58.708 --> 05:36:58.718 align:start position:0% into our account or we can sign up for 05:36:58.718 --> 05:37:01.670 align:start position:0% into our account or we can sign up for an<05:36:58.920> account<05:36:59.280> if<05:36:59.400> we<05:36:59.718> don't<05:36:59.920> have<05:37:00.080> one<05:37:00.680> already 05:37:01.670 --> 05:37:01.680 align:start position:0% an account if we don't have one already 05:37:01.680 --> 05:37:04.548 align:start position:0% an account if we don't have one already and<05:37:01.840> in<05:37:02.080> this<05:37:02.280> case<05:37:02.680> we<05:37:02.798> can<05:37:02.958> log<05:37:03.240> in<05:37:03.760> with<05:37:04.000> our 05:37:04.548 --> 05:37:04.558 align:start position:0% and in this case we can log in with our 05:37:04.558 --> 05:37:06.548 align:start position:0% and in this case we can log in with our password<05:37:05.120> and 05:37:06.548 --> 05:37:06.558 align:start position:0% password and 05:37:06.558 --> 05:37:09.310 align:start position:0% password and email<05:37:07.558> immediately<05:37:08.240> we<05:37:08.360> are<05:37:08.558> redirected<05:37:09.160> to 05:37:09.310 --> 05:37:09.320 align:start position:0% email immediately we are redirected to 05:37:09.320 --> 05:37:11.270 align:start position:0% email immediately we are redirected to our<05:37:09.520> home<05:37:09.760> screen<05:37:10.240> where<05:37:10.400> we<05:37:10.480> can<05:37:10.638> see<05:37:10.958> our 05:37:11.270 --> 05:37:11.280 align:start position:0% our home screen where we can see our 05:37:11.280 --> 05:37:12.708 align:start position:0% our home screen where we can see our great 05:37:12.708 --> 05:37:12.718 align:start position:0% great 05:37:12.718 --> 05:37:16.830 align:start position:0% great posts<05:37:13.718> each<05:37:14.080> post<05:37:14.638> can<05:37:14.840> be<05:37:15.040> liked<05:37:15.760> unliked<05:37:16.600> and 05:37:16.830 --> 05:37:16.840 align:start position:0% posts each post can be liked unliked and 05:37:16.840 --> 05:37:20.270 align:start position:0% posts each post can be liked unliked and also<05:37:17.600> saved<05:37:18.600> let's<05:37:18.798> not<05:37:19.040> forget<05:37:19.638> that<05:37:19.798> we<05:37:20.000> also 05:37:20.270 --> 05:37:20.280 align:start position:0% also saved let's not forget that we also 05:37:20.280 --> 05:37:22.510 align:start position:0% also saved let's not forget that we also have<05:37:20.480> a<05:37:20.680> phenomenal<05:37:21.400> explore<05:37:21.920> page<05:37:22.280> where<05:37:22.440> we 05:37:22.510 --> 05:37:22.520 align:start position:0% have a phenomenal explore page where we 05:37:22.520 --> 05:37:24.548 align:start position:0% have a phenomenal explore page where we can<05:37:22.638> see<05:37:22.920> more<05:37:23.400> posts<05:37:23.840> that<05:37:23.958> are<05:37:24.160> popular 05:37:24.548 --> 05:37:24.558 align:start position:0% can see more posts that are popular 05:37:24.558 --> 05:37:26.868 align:start position:0% can see more posts that are popular today<05:37:25.400> if<05:37:25.480> you<05:37:25.600> want<05:37:25.920> you<05:37:26.000> can<05:37:26.200> add<05:37:26.440> additional 05:37:26.868 --> 05:37:26.878 align:start position:0% today if you want you can add additional 05:37:26.878 --> 05:37:29.590 align:start position:0% today if you want you can add additional filters<05:37:27.878> and<05:37:28.040> we<05:37:28.200> have<05:37:28.558> complete<05:37:29.240> search 05:37:29.590 --> 05:37:29.600 align:start position:0% filters and we have complete search 05:37:29.600 --> 05:37:31.390 align:start position:0% filters and we have complete search search<05:37:30.000> so<05:37:30.160> if<05:37:30.240> you<05:37:30.360> search<05:37:30.600> for<05:37:30.798> something 05:37:31.390 --> 05:37:31.400 align:start position:0% search so if you search for something 05:37:31.400 --> 05:37:33.708 align:start position:0% search so if you search for something it's<05:37:31.558> going<05:37:31.718> to<05:37:31.840> show<05:37:32.120> up<05:37:32.520> and<05:37:32.760> also<05:37:33.080> lead<05:37:33.360> you 05:37:33.708 --> 05:37:33.718 align:start position:0% it's going to show up and also lead you 05:37:33.718 --> 05:37:37.110 align:start position:0% it's going to show up and also lead you to<05:37:34.000> that<05:37:34.200> post<05:37:34.520> Details<05:37:35.240> page<05:37:36.240> also<05:37:36.878> don't 05:37:37.110 --> 05:37:37.120 align:start position:0% to that post Details page also don't 05:37:37.120 --> 05:37:39.350 align:start position:0% to that post Details page also don't forget<05:37:37.638> that<05:37:37.878> everything<05:37:38.280> is<05:37:38.600> completely 05:37:39.350 --> 05:37:39.360 align:start position:0% forget that everything is completely 05:37:39.360 --> 05:37:42.510 align:start position:0% forget that everything is completely mobile<05:37:39.840> responsive<05:37:40.840> and<05:37:41.080> it<05:37:41.280> has<05:37:41.558> this<05:37:41.840> native 05:37:42.510 --> 05:37:42.520 align:start position:0% mobile responsive and it has this native 05:37:42.520 --> 05:37:45.750 align:start position:0% mobile responsive and it has this native mobile<05:37:43.000> UI<05:37:43.958> we've<05:37:44.280> laid<05:37:44.638> down<05:37:44.878> the<05:37:45.040> foundation 05:37:45.750 --> 05:37:45.760 align:start position:0% mobile UI we've laid down the foundation 05:37:45.760 --> 05:37:48.070 align:start position:0% mobile UI we've laid down the foundation for<05:37:46.080> creating<05:37:46.520> something<05:37:46.920> extraordinary<05:37:47.920> a 05:37:48.070 --> 05:37:48.080 align:start position:0% for creating something extraordinary a 05:37:48.080 --> 05:37:51.070 align:start position:0% for creating something extraordinary a fullblown<05:37:48.958> social<05:37:49.280> media<05:37:49.920> application<05:37:50.920> of 05:37:51.070 --> 05:37:51.080 align:start position:0% fullblown social media application of 05:37:51.080 --> 05:37:52.708 align:start position:0% fullblown social media application of course<05:37:51.520> there's<05:37:51.760> a<05:37:51.920> couple<05:37:52.120> of<05:37:52.320> pages<05:37:52.600> that 05:37:52.708 --> 05:37:52.718 align:start position:0% course there's a couple of pages that 05:37:52.718 --> 05:37:54.990 align:start position:0% course there's a couple of pages that are<05:37:52.878> missing<05:37:53.718> such<05:37:53.878> as<05:37:54.040> the<05:37:54.200> People<05:37:54.600> page 05:37:54.990 --> 05:37:55.000 align:start position:0% are missing such as the People page 05:37:55.000 --> 05:37:57.670 align:start position:0% are missing such as the People page where<05:37:55.120> we<05:37:55.240> show<05:37:55.558> all<05:37:55.760> the<05:37:56.080> users<05:37:57.080> the<05:37:57.200> saved 05:37:57.670 --> 05:37:57.680 align:start position:0% where we show all the users the saved 05:37:57.680 --> 05:37:59.910 align:start position:0% where we show all the users the saved page<05:37:58.000> where<05:37:58.120> we<05:37:58.280> simply<05:37:58.600> have<05:37:58.718> to<05:37:58.920> fetch<05:37:59.638> all 05:37:59.910 --> 05:37:59.920 align:start position:0% page where we simply have to fetch all 05:37:59.920 --> 05:38:02.590 align:start position:0% page where we simply have to fetch all the<05:38:00.040> saved<05:38:00.480> posts<05:38:01.120> and<05:38:01.240> then<05:38:01.440> display<05:38:01.878> them 05:38:02.590 --> 05:38:02.600 align:start position:0% the saved posts and then display them 05:38:02.600 --> 05:38:04.990 align:start position:0% the saved posts and then display them these<05:38:02.798> two<05:38:03.040> pages<05:38:03.360> look<05:38:03.680> like<05:38:03.920> this<05:38:04.520> here<05:38:04.840> you 05:38:04.990 --> 05:38:05.000 align:start position:0% these two pages look like this here you 05:38:05.000 --> 05:38:07.270 align:start position:0% these two pages look like this here you fetch<05:38:05.360> people<05:38:05.798> and<05:38:05.920> you<05:38:06.000> show<05:38:06.320> them<05:38:06.920> and<05:38:07.160> if 05:38:07.270 --> 05:38:07.280 align:start position:0% fetch people and you show them and if 05:38:07.280 --> 05:38:09.270 align:start position:0% fetch people and you show them and if you<05:38:07.400> notice<05:38:07.798> the<05:38:08.000> saved<05:38:08.440> it's<05:38:08.600> going<05:38:08.760> to<05:38:08.958> look 05:38:09.270 --> 05:38:09.280 align:start position:0% you notice the saved it's going to look 05:38:09.280 --> 05:38:12.548 align:start position:0% you notice the saved it's going to look almost<05:38:09.718> exactly<05:38:10.200> the<05:38:10.360> same<05:38:11.040> as<05:38:11.200> our<05:38:11.558> explore 05:38:12.548 --> 05:38:12.558 align:start position:0% almost exactly the same as our explore 05:38:12.558 --> 05:38:14.350 align:start position:0% almost exactly the same as our explore that's<05:38:12.798> because<05:38:13.040> we're<05:38:13.320> reusing<05:38:13.958> the<05:38:14.120> same 05:38:14.350 --> 05:38:14.360 align:start position:0% that's because we're reusing the same 05:38:14.360 --> 05:38:17.230 align:start position:0% that's because we're reusing the same grid<05:38:14.718> component<05:38:15.718> finally<05:38:16.520> there<05:38:16.798> is<05:38:17.040> the 05:38:17.230 --> 05:38:17.240 align:start position:0% grid component finally there is the 05:38:17.240 --> 05:38:19.470 align:start position:0% grid component finally there is the profile<05:38:17.680> page<05:38:18.400> where<05:38:18.558> we<05:38:18.638> can<05:38:18.760> see<05:38:18.958> the<05:38:19.120> likes 05:38:19.470 --> 05:38:19.480 align:start position:0% profile page where we can see the likes 05:38:19.480 --> 05:38:23.390 align:start position:0% profile page where we can see the likes as<05:38:19.680> well<05:38:20.680> and<05:38:21.040> the<05:38:21.200> edit<05:38:21.638> profile<05:38:22.638> but<05:38:23.120> I<05:38:23.200> want 05:38:23.390 --> 05:38:23.400 align:start position:0% as well and the edit profile but I want 05:38:23.400 --> 05:38:25.910 align:start position:0% as well and the edit profile but I want you<05:38:23.558> to<05:38:23.798> pause<05:38:24.160> here<05:38:24.320> for<05:38:24.520> a<05:38:24.680> second<05:38:25.520> first<05:38:25.760> of 05:38:25.910 --> 05:38:25.920 align:start position:0% you to pause here for a second first of 05:38:25.920 --> 05:38:28.430 align:start position:0% you to pause here for a second first of all<05:38:26.400> congratulations<05:38:27.040> on<05:38:27.280> coming<05:38:27.760> this<05:38:28.000> far 05:38:28.430 --> 05:38:28.440 align:start position:0% all congratulations on coming this far 05:38:28.440 --> 05:38:30.548 align:start position:0% all congratulations on coming this far into<05:38:28.718> this<05:38:28.878> tutorial<05:38:29.600> it<05:38:29.760> has<05:38:29.920> been<05:38:30.120> a<05:38:30.280> long 05:38:30.548 --> 05:38:30.558 align:start position:0% into this tutorial it has been a long 05:38:30.558 --> 05:38:33.510 align:start position:0% into this tutorial it has been a long one<05:38:31.320> you've<05:38:31.558> shown<05:38:32.040> a<05:38:32.240> lot<05:38:32.480> of<05:38:32.680> dedication<05:38:33.280> to 05:38:33.510 --> 05:38:33.520 align:start position:0% one you've shown a lot of dedication to 05:38:33.520 --> 05:38:36.390 align:start position:0% one you've shown a lot of dedication to learning<05:38:34.040> and<05:38:34.240> trying<05:38:34.680> new<05:38:34.958> things<05:38:35.240> out<05:38:35.878> so 05:38:36.390 --> 05:38:36.400 align:start position:0% learning and trying new things out so 05:38:36.400 --> 05:38:39.390 align:start position:0% learning and trying new things out so pat<05:38:36.638> yourself<05:38:36.958> on<05:38:37.120> the<05:38:37.280> back<05:38:37.680> and<05:38:37.840> be<05:38:38.400> proud 05:38:39.390 --> 05:38:39.400 align:start position:0% pat yourself on the back and be proud 05:38:39.400 --> 05:38:42.190 align:start position:0% pat yourself on the back and be proud over<05:38:39.680> the<05:38:39.878> years<05:38:40.520> many<05:38:40.760> of<05:38:40.920> you<05:38:41.120> have<05:38:41.320> asked<05:38:41.638> me 05:38:42.190 --> 05:38:42.200 align:start position:0% over the years many of you have asked me 05:38:42.200 --> 05:38:45.070 align:start position:0% over the years many of you have asked me how<05:38:42.600> I<05:38:43.160> approach<05:38:43.798> something<05:38:44.360> or<05:38:44.600> develop 05:38:45.070 --> 05:38:45.080 align:start position:0% how I approach something or develop 05:38:45.080 --> 05:38:47.708 align:start position:0% how I approach something or develop something<05:38:46.080> that<05:38:46.320> mindset<05:38:46.878> that<05:38:47.080> developers 05:38:47.708 --> 05:38:47.718 align:start position:0% something that mindset that developers 05:38:47.718 --> 05:38:50.190 align:start position:0% something that mindset that developers have<05:38:48.558> and<05:38:48.718> today<05:38:49.200> I<05:38:49.280> want<05:38:49.440> to<05:38:49.558> do<05:38:49.798> something 05:38:50.190 --> 05:38:50.200 align:start position:0% have and today I want to do something 05:38:50.200 --> 05:38:52.270 align:start position:0% have and today I want to do something special<05:38:51.120> I<05:38:51.200> want<05:38:51.360> to<05:38:51.520> tell<05:38:51.680> you<05:38:51.840> how<05:38:52.040> I 05:38:52.270 --> 05:38:52.280 align:start position:0% special I want to tell you how I 05:38:52.280 --> 05:38:54.310 align:start position:0% special I want to tell you how I approach<05:38:52.718> things<05:38:53.240> for<05:38:53.558> the<05:38:53.798> rest<05:38:54.040> of<05:38:54.200> the 05:38:54.310 --> 05:38:54.320 align:start position:0% approach things for the rest of the 05:38:54.320 --> 05:38:57.230 align:start position:0% approach things for the rest of the features<05:38:55.040> that<05:38:55.200> we'll<05:38:55.400> be<05:38:55.558> building<05:38:56.120> today<05:38:57.120> if 05:38:57.230 --> 05:38:57.240 align:start position:0% features that we'll be building today if 05:38:57.240 --> 05:38:59.510 align:start position:0% features that we'll be building today if you<05:38:57.360> see<05:38:57.958> many<05:38:58.240> people<05:38:58.478> are<05:38:58.718> successfully 05:38:59.510 --> 05:38:59.520 align:start position:0% you see many people are successfully 05:38:59.520 --> 05:39:01.270 align:start position:0% you see many people are successfully able<05:38:59.718> to<05:38:59.840> do<05:39:00.080> something<05:39:00.520> by<05:39:00.638> following<05:39:01.080> a 05:39:01.270 --> 05:39:01.280 align:start position:0% able to do something by following a 05:39:01.280 --> 05:39:04.270 align:start position:0% able to do something by following a tutorial<05:39:01.840> like<05:39:02.120> this<05:39:02.520> or<05:39:02.798> other<05:39:03.160> content<05:39:04.080> but 05:39:04.270 --> 05:39:04.280 align:start position:0% tutorial like this or other content but 05:39:04.280 --> 05:39:06.430 align:start position:0% tutorial like this or other content but their<05:39:04.478> real<05:39:04.840> struggles<05:39:05.400> begin<05:39:05.920> when<05:39:06.080> they're 05:39:06.430 --> 05:39:06.440 align:start position:0% their real struggles begin when they're 05:39:06.440 --> 05:39:09.468 align:start position:0% their real struggles begin when they're faced<05:39:07.000> with<05:39:07.160> something<05:39:07.600> new<05:39:08.600> most<05:39:08.840> of<05:39:09.040> us<05:39:09.240> will 05:39:09.468 --> 05:39:09.478 align:start position:0% faced with something new most of us will 05:39:09.478 --> 05:39:11.430 align:start position:0% faced with something new most of us will still<05:39:09.718> be<05:39:09.958> clueless<05:39:10.718> even<05:39:11.000> though<05:39:11.160> we<05:39:11.280> have 05:39:11.430 --> 05:39:11.440 align:start position:0% still be clueless even though we have 05:39:11.440 --> 05:39:13.310 align:start position:0% still be clueless even though we have done<05:39:11.680> something<05:39:12.040> similar<05:39:12.478> before<05:39:13.160> by 05:39:13.310 --> 05:39:13.320 align:start position:0% done something similar before by 05:39:13.320 --> 05:39:16.150 align:start position:0% done something similar before by following<05:39:13.920> a<05:39:14.120> YouTube<05:39:14.558> tutorial<05:39:15.558> this<05:39:16.000> is 05:39:16.150 --> 05:39:16.160 align:start position:0% following a YouTube tutorial this is 05:39:16.160 --> 05:39:19.430 align:start position:0% following a YouTube tutorial this is known<05:39:16.600> as<05:39:16.840> tutorial<05:39:17.400> hell<05:39:18.200> and<05:39:18.478> in<05:39:18.600> our<05:39:18.760> nextjs 05:39:19.430 --> 05:39:19.440 align:start position:0% known as tutorial hell and in our nextjs 05:39:19.440 --> 05:39:22.788 align:start position:0% known as tutorial hell and in our nextjs course<05:39:20.120> we<05:39:20.280> have<05:39:20.400> tried<05:39:20.680> to<05:39:20.798> solve<05:39:21.638> that<05:39:22.638> we 05:39:22.788 --> 05:39:22.798 align:start position:0% course we have tried to solve that we 05:39:22.798 --> 05:39:26.030 align:start position:0% course we have tried to solve that we have<05:39:23.000> created<05:39:23.760> a<05:39:24.040> So-Cal<05:39:25.040> active<05:39:25.600> lesson 05:39:26.030 --> 05:39:26.040 align:start position:0% have created a So-Cal active lesson 05:39:26.040 --> 05:39:28.628 align:start position:0% have created a So-Cal active lesson learning<05:39:27.040> where<05:39:27.400> you<05:39:27.638> still<05:39:27.958> have<05:39:28.240> all<05:39:28.360> of<05:39:28.520> the 05:39:28.628 --> 05:39:28.638 align:start position:0% learning where you still have all of the 05:39:28.638 --> 05:39:30.830 align:start position:0% learning where you still have all of the lessons<05:39:28.958> that<05:39:29.080> we<05:39:29.160> usually<05:39:29.400> us<05:39:29.760> have<05:39:30.360> such<05:39:30.558> as 05:39:30.830 --> 05:39:30.840 align:start position:0% lessons that we usually us have such as 05:39:30.840 --> 05:39:32.708 align:start position:0% lessons that we usually us have such as setting<05:39:31.280> everything<05:39:31.638> up<05:39:31.958> and<05:39:32.200> coding<05:39:32.520> things 05:39:32.708 --> 05:39:32.718 align:start position:0% setting everything up and coding things 05:39:32.718 --> 05:39:35.788 align:start position:0% setting everything up and coding things from<05:39:33.000> scratch<05:39:34.000> but<05:39:34.280> soon<05:39:34.600> enough<05:39:35.120> we<05:39:35.400> dive 05:39:35.788 --> 05:39:35.798 align:start position:0% from scratch but soon enough we dive 05:39:35.798 --> 05:39:38.468 align:start position:0% from scratch but soon enough we dive into<05:39:36.080> something<05:39:36.478> special<05:39:37.478> and<05:39:37.718> that<05:39:37.878> is 05:39:38.468 --> 05:39:38.478 align:start position:0% into something special and that is 05:39:38.478 --> 05:39:40.990 align:start position:0% into something special and that is active<05:39:39.160> lessons<05:39:40.160> they<05:39:40.360> start<05:39:40.680> from<05:39:40.840> the 05:39:40.990 --> 05:39:41.000 align:start position:0% active lessons they start from the 05:39:41.000 --> 05:39:43.468 align:start position:0% active lessons they start from the sidebar<05:39:41.878> and<05:39:42.080> then<05:39:42.638> whenever<05:39:42.958> you<05:39:43.120> want<05:39:43.240> to 05:39:43.468 --> 05:39:43.478 align:start position:0% sidebar and then whenever you want to 05:39:43.478 --> 05:39:45.628 align:start position:0% sidebar and then whenever you want to implement<05:39:44.000> something<05:39:44.760> before<05:39:45.040> we<05:39:45.160> do<05:39:45.320> it 05:39:45.628 --> 05:39:45.638 align:start position:0% implement something before we do it 05:39:45.638 --> 05:39:48.150 align:start position:0% implement something before we do it together<05:39:46.160> you<05:39:46.360> have<05:39:46.478> to<05:39:46.638> do<05:39:46.798> it<05:39:47.000> on<05:39:47.160> your 05:39:48.150 --> 05:39:48.160 align:start position:0% together you have to do it on your 05:39:48.160 --> 05:39:50.990 align:start position:0% together you have to do it on your own<05:39:49.160> let<05:39:49.280> me<05:39:49.440> give<05:39:49.520> you<05:39:49.638> an<05:39:49.798> example<05:39:50.638> for<05:39:50.840> the 05:39:50.990 --> 05:39:51.000 align:start position:0% own let me give you an example for the 05:39:51.000 --> 05:39:53.628 align:start position:0% own let me give you an example for the homepage<05:39:51.558> here<05:39:51.878> you<05:39:52.040> have<05:39:52.160> to<05:39:52.360> create<05:39:53.080> a 05:39:53.628 --> 05:39:53.638 align:start position:0% homepage here you have to create a 05:39:53.638 --> 05:39:57.070 align:start position:0% homepage here you have to create a question<05:39:54.080> card<05:39:54.680> UI<05:39:55.680> so<05:39:56.240> here<05:39:56.600> we<05:39:56.760> have<05:39:56.878> a 05:39:57.070 --> 05:39:57.080 align:start position:0% question card UI so here we have a 05:39:57.080 --> 05:39:59.590 align:start position:0% question card UI so here we have a complete<05:39:57.840> active<05:39:58.240> lesson<05:39:58.840> that<05:39:59.040> guides<05:39:59.478> you 05:39:59.590 --> 05:39:59.600 align:start position:0% complete active lesson that guides you 05:39:59.600 --> 05:40:01.628 align:start position:0% complete active lesson that guides you how<05:39:59.718> to<05:39:59.878> do<05:40:00.120> that<05:40:00.760> specifically<05:40:01.360> with<05:40:01.520> the 05:40:01.628 --> 05:40:01.638 align:start position:0% how to do that specifically with the 05:40:01.638 --> 05:40:03.788 align:start position:0% how to do that specifically with the mindset<05:40:02.080> part<05:40:02.638> teaching<05:40:03.040> you<05:40:03.440> how<05:40:03.558> to 05:40:03.788 --> 05:40:03.798 align:start position:0% mindset part teaching you how to 05:40:03.798 --> 05:40:06.030 align:start position:0% mindset part teaching you how to approach<05:40:04.120> it<05:40:04.360> like<05:40:04.520> a<05:40:04.680> real<05:40:04.958> developer<05:40:05.878> it 05:40:06.030 --> 05:40:06.040 align:start position:0% approach it like a real developer it 05:40:06.040 --> 05:40:07.670 align:start position:0% approach it like a real developer it gives<05:40:06.240> you<05:40:06.400> something<05:40:06.638> to<05:40:06.840> think<05:40:07.040> about 05:40:07.670 --> 05:40:07.680 align:start position:0% gives you something to think about 05:40:07.680 --> 05:40:10.708 align:start position:0% gives you something to think about additional<05:40:08.240> resources<05:40:09.240> and<05:40:09.520> even<05:40:09.878> hints<05:40:10.558> that 05:40:10.708 --> 05:40:10.718 align:start position:0% additional resources and even hints that 05:40:10.718 --> 05:40:13.150 align:start position:0% additional resources and even hints that you<05:40:10.840> can<05:40:11.040> uncover<05:40:11.798> by<05:40:12.000> hovering<05:40:12.440> over<05:40:13.040> and 05:40:13.150 --> 05:40:13.160 align:start position:0% you can uncover by hovering over and 05:40:13.160 --> 05:40:15.110 align:start position:0% you can uncover by hovering over and then<05:40:13.280> in<05:40:13.400> the<05:40:13.558> next<05:40:13.798> module<05:40:14.478> I<05:40:14.638> teach<05:40:14.840> you<05:40:15.000> how 05:40:15.110 --> 05:40:15.120 align:start position:0% then in the next module I teach you how 05:40:15.120 --> 05:40:18.070 align:start position:0% then in the next module I teach you how to<05:40:15.240> do<05:40:15.440> it<05:40:15.760> from<05:40:16.080> scratch<05:40:16.558> in<05:40:16.718> a<05:40:16.878> long<05:40:17.200> lecture 05:40:18.070 --> 05:40:18.080 align:start position:0% to do it from scratch in a long lecture 05:40:18.080 --> 05:40:20.468 align:start position:0% to do it from scratch in a long lecture and<05:40:18.320> why<05:40:18.440> am<05:40:18.520> I<05:40:18.638> telling<05:40:18.920> you<05:40:19.120> this<05:40:20.080> well<05:40:20.400> I 05:40:20.468 --> 05:40:20.478 align:start position:0% and why am I telling you this well I 05:40:20.478 --> 05:40:22.990 align:start position:0% and why am I telling you this well I don't<05:40:20.718> really<05:40:20.958> believe<05:40:21.478> in<05:40:21.638> tutorial<05:40:22.160> hell 05:40:22.990 --> 05:40:23.000 align:start position:0% don't really believe in tutorial hell 05:40:23.000 --> 05:40:25.350 align:start position:0% don't really believe in tutorial hell watching<05:40:23.400> tutorials<05:40:23.920> is<05:40:24.160> great<05:40:24.840> but<05:40:25.120> what<05:40:25.240> I 05:40:25.350 --> 05:40:25.360 align:start position:0% watching tutorials is great but what I 05:40:25.360 --> 05:40:28.628 align:start position:0% watching tutorials is great but what I believe<05:40:25.638> is<05:40:25.840> missing<05:40:26.440> is<05:40:26.638> the<05:40:26.798> thinking<05:40:27.638> part 05:40:28.628 --> 05:40:28.638 align:start position:0% believe is missing is the thinking part 05:40:28.638 --> 05:40:30.750 align:start position:0% believe is missing is the thinking part when<05:40:28.760> you're<05:40:28.920> watching<05:40:29.400> a<05:40:29.520> video<05:40:30.240> you<05:40:30.400> have<05:40:30.478> to 05:40:30.750 --> 05:40:30.760 align:start position:0% when you're watching a video you have to 05:40:30.760 --> 05:40:33.070 align:start position:0% when you're watching a video you have to stop<05:40:31.080> and<05:40:31.280> ask<05:40:31.520> yourself<05:40:32.440> how<05:40:32.638> would<05:40:32.878> I 05:40:33.070 --> 05:40:33.080 align:start position:0% stop and ask yourself how would I 05:40:33.080 --> 05:40:35.628 align:start position:0% stop and ask yourself how would I approach<05:40:33.440> it<05:40:33.958> and<05:40:34.200> only<05:40:34.718> then<05:40:35.200> watch<05:40:35.478> the 05:40:35.628 --> 05:40:35.638 align:start position:0% approach it and only then watch the 05:40:35.638 --> 05:40:38.590 align:start position:0% approach it and only then watch the solution<05:40:36.558> but<05:40:36.760> very<05:40:36.958> few<05:40:37.280> of<05:40:37.360> us<05:40:37.520> do<05:40:37.760> that<05:40:38.400> and 05:40:38.590 --> 05:40:38.600 align:start position:0% solution but very few of us do that and 05:40:38.600 --> 05:40:41.030 align:start position:0% solution but very few of us do that and this<05:40:38.718> is<05:40:38.878> why<05:40:39.000> we<05:40:39.120> blame<05:40:39.320> it<05:40:39.478> on<05:40:39.638> tutorial<05:40:40.120> hell 05:40:41.030 --> 05:40:41.040 align:start position:0% this is why we blame it on tutorial hell 05:40:41.040 --> 05:40:42.868 align:start position:0% this is why we blame it on tutorial hell and<05:40:41.320> why<05:40:41.478> you're<05:40:41.718> missing<05:40:42.080> that<05:40:42.240> developer 05:40:42.868 --> 05:40:42.878 align:start position:0% and why you're missing that developer 05:40:42.878 --> 05:40:45.628 align:start position:0% and why you're missing that developer mindset<05:40:43.878> that's<05:40:44.160> why<05:40:44.360> in<05:40:44.478> our<05:40:44.600> next<05:40:44.840> GS<05:40:45.280> course 05:40:45.628 --> 05:40:45.638 align:start position:0% mindset that's why in our next GS course 05:40:45.638 --> 05:40:48.070 align:start position:0% mindset that's why in our next GS course we<05:40:45.798> have<05:40:46.000> scattered<05:40:46.600> around<05:40:47.440> so<05:40:47.680> many<05:40:47.920> of 05:40:48.070 --> 05:40:48.080 align:start position:0% we have scattered around so many of 05:40:48.080 --> 05:40:50.030 align:start position:0% we have scattered around so many of these<05:40:48.400> active<05:40:48.760> lessons<05:40:49.360> so<05:40:49.520> that<05:40:49.638> you<05:40:49.760> can 05:40:50.030 --> 05:40:50.040 align:start position:0% these active lessons so that you can 05:40:50.040 --> 05:40:53.270 align:start position:0% these active lessons so that you can actually<05:40:50.400> learn<05:40:50.958> by<05:40:51.120> building<05:40:52.120> remember<05:40:53.000> good 05:40:53.270 --> 05:40:53.280 align:start position:0% actually learn by building remember good 05:40:53.280 --> 05:40:55.110 align:start position:0% actually learn by building remember good developers<05:40:53.920> don't<05:40:54.200> have<05:40:54.440> someone<05:40:54.760> holding 05:40:55.110 --> 05:40:55.120 align:start position:0% developers don't have someone holding 05:40:55.120 --> 05:40:57.390 align:start position:0% developers don't have someone holding their<05:40:55.320> hands<05:40:56.120> they<05:40:56.320> figure<05:40:56.718> things<05:40:56.958> out<05:40:57.240> on 05:40:57.390 --> 05:40:57.400 align:start position:0% their hands they figure things out on 05:40:57.400 --> 05:40:59.868 align:start position:0% their hands they figure things out on their<05:40:57.718> own<05:40:58.718> because<05:40:58.958> they<05:40:59.120> have<05:40:59.440> developed 05:40:59.868 --> 05:40:59.878 align:start position:0% their own because they have developed 05:40:59.878 --> 05:41:02.110 align:start position:0% their own because they have developed their<05:41:00.080> mindset<05:41:00.878> I<05:41:00.958> don't<05:41:01.200> have<05:41:01.360> any<05:41:01.638> graphics 05:41:02.110 --> 05:41:02.120 align:start position:0% their mindset I don't have any graphics 05:41:02.120 --> 05:41:04.310 align:start position:0% their mindset I don't have any graphics right<05:41:02.320> now<05:41:02.760> but<05:41:02.920> just<05:41:03.200> pause<05:41:03.478> for<05:41:03.638> a<05:41:03.840> second 05:41:04.310 --> 05:41:04.320 align:start position:0% right now but just pause for a second 05:41:04.320 --> 05:41:06.788 align:start position:0% right now but just pause for a second and<05:41:04.520> listen<05:41:05.400> there's<05:41:05.600> an<05:41:05.760> old<05:41:06.040> saying<05:41:06.638> that 05:41:06.788 --> 05:41:06.798 align:start position:0% and listen there's an old saying that 05:41:06.798 --> 05:41:08.990 align:start position:0% and listen there's an old saying that says<05:41:07.440> give<05:41:07.558> a<05:41:07.680> man<05:41:07.878> a<05:41:08.040> fish<05:41:08.478> and<05:41:08.600> you'll<05:41:08.760> feed 05:41:08.990 --> 05:41:09.000 align:start position:0% says give a man a fish and you'll feed 05:41:09.000 --> 05:41:11.510 align:start position:0% says give a man a fish and you'll feed him<05:41:09.160> for<05:41:09.280> a<05:41:09.478> day<05:41:10.080> teach<05:41:10.320> a<05:41:10.440> man<05:41:10.680> how<05:41:10.798> to<05:41:11.000> fish 05:41:11.510 --> 05:41:11.520 align:start position:0% him for a day teach a man how to fish 05:41:11.520 --> 05:41:14.070 align:start position:0% him for a day teach a man how to fish and<05:41:11.638> you'll<05:41:11.840> feed<05:41:12.040> him<05:41:12.200> for<05:41:12.320> a<05:41:12.798> lifetime<05:41:13.798> for 05:41:14.070 --> 05:41:14.080 align:start position:0% and you'll feed him for a lifetime for 05:41:14.080 --> 05:41:16.430 align:start position:0% and you'll feed him for a lifetime for that<05:41:14.320> reason<05:41:14.878> in<05:41:15.040> this<05:41:15.280> free<05:41:15.478> YouTube<05:41:15.840> video<05:41:16.360> I 05:41:16.430 --> 05:41:16.440 align:start position:0% that reason in this free YouTube video I 05:41:16.440 --> 05:41:17.868 align:start position:0% that reason in this free YouTube video I want<05:41:16.558> to<05:41:16.718> give<05:41:16.840> you<05:41:16.958> a<05:41:17.120> glimpse<05:41:17.440> of<05:41:17.600> what<05:41:17.718> we 05:41:17.868 --> 05:41:17.878 align:start position:0% want to give you a glimpse of what we 05:41:17.878 --> 05:41:20.310 align:start position:0% want to give you a glimpse of what we have<05:41:18.000> in<05:41:18.080> our<05:41:18.280> course<05:41:19.120> by<05:41:19.320> introducing<05:41:20.000> some 05:41:20.310 --> 05:41:20.320 align:start position:0% have in our course by introducing some 05:41:20.320 --> 05:41:22.868 align:start position:0% have in our course by introducing some active<05:41:20.680> lessons<05:41:21.360> for<05:41:21.558> the<05:41:21.878> remaining<05:41:22.240> pages 05:41:22.868 --> 05:41:22.878 align:start position:0% active lessons for the remaining pages 05:41:22.878 --> 05:41:25.070 align:start position:0% active lessons for the remaining pages to<05:41:23.040> see<05:41:23.360> how<05:41:23.680> you<05:41:24.080> will<05:41:24.320> approach<05:41:24.680> building 05:41:25.070 --> 05:41:25.080 align:start position:0% to see how you will approach building 05:41:25.080 --> 05:41:27.390 align:start position:0% to see how you will approach building them<05:41:25.718> I<05:41:25.840> hope<05:41:26.000> you're<05:41:26.240> excited<05:41:26.760> to<05:41:27.000> continue 05:41:27.390 --> 05:41:27.400 align:start position:0% them I hope you're excited to continue 05:41:27.400 --> 05:41:29.948 align:start position:0% them I hope you're excited to continue with<05:41:27.558> this<05:41:27.840> project<05:41:28.558> by<05:41:28.718> learning<05:41:29.638> while 05:41:29.948 --> 05:41:29.958 align:start position:0% with this project by learning while 05:41:29.958 --> 05:41:33.708 align:start position:0% with this project by learning while doing<05:41:30.878> so<05:41:31.120> let's<05:41:31.360> get<05:41:31.798> started<05:41:32.798> and<05:41:33.080> I<05:41:33.280> proudly 05:41:33.708 --> 05:41:33.718 align:start position:0% doing so let's get started and I proudly 05:41:33.718 --> 05:41:36.670 align:start position:0% doing so let's get started and I proudly present<05:41:34.000> to<05:41:34.160> you<05:41:34.878> active<05:41:35.280> lessons<05:41:36.000> for<05:41:36.400> our 05:41:36.670 --> 05:41:36.680 align:start position:0% present to you active lessons for our 05:41:36.680 --> 05:41:39.270 align:start position:0% present to you active lessons for our snapgram<05:41:37.520> application<05:41:38.520> the<05:41:38.680> link<05:41:38.958> is<05:41:39.080> going 05:41:39.270 --> 05:41:39.280 align:start position:0% snapgram application the link is going 05:41:39.280 --> 05:41:41.548 align:start position:0% snapgram application the link is going to<05:41:39.400> be<05:41:39.600> down<05:41:39.878> in<05:41:40.000> the<05:41:40.200> description<05:41:41.000> the<05:41:41.200> first 05:41:41.548 --> 05:41:41.558 align:start position:0% to be down in the description the first 05:41:41.558 --> 05:41:43.750 align:start position:0% to be down in the description the first active<05:41:41.878> lesson<05:41:42.360> is<05:41:42.520> about<05:41:42.878> implementing<05:41:43.558> the 05:41:43.750 --> 05:41:43.760 align:start position:0% active lesson is about implementing the 05:41:43.760 --> 05:41:46.310 align:start position:0% active lesson is about implementing the infinite<05:41:44.320> scroll<05:41:45.320> and<05:41:45.600> this<05:41:45.680> is<05:41:45.840> the<05:41:45.958> feature 05:41:46.310 --> 05:41:46.320 align:start position:0% infinite scroll and this is the feature 05:41:46.320 --> 05:41:48.270 align:start position:0% infinite scroll and this is the feature that<05:41:46.440> we<05:41:46.558> have<05:41:46.718> already<05:41:47.040> built<05:41:47.680> so<05:41:47.920> I<05:41:48.040> have 05:41:48.270 --> 05:41:48.280 align:start position:0% that we have already built so I have 05:41:48.280 --> 05:41:50.270 align:start position:0% that we have already built so I have specifically<05:41:48.878> introduced<05:41:49.440> this<05:41:49.558> one<05:41:49.920> to<05:41:50.120> go 05:41:50.270 --> 05:41:50.280 align:start position:0% specifically introduced this one to go 05:41:50.280 --> 05:41:52.230 align:start position:0% specifically introduced this one to go over<05:41:50.558> it<05:41:50.920> and<05:41:51.040> to<05:41:51.200> show<05:41:51.440> you<05:41:51.798> how<05:41:51.920> you're<05:41:52.080> going 05:41:52.230 --> 05:41:52.240 align:start position:0% over it and to show you how you're going 05:41:52.240 --> 05:41:54.788 align:start position:0% over it and to show you how you're going to<05:41:52.400> do<05:41:52.638> the<05:41:52.760> future<05:41:53.200> ones<05:41:53.600> on<05:41:53.760> your<05:41:53.920> own<05:41:54.600> now 05:41:54.788 --> 05:41:54.798 align:start position:0% to do the future ones on your own now 05:41:54.798 --> 05:41:56.628 align:start position:0% to do the future ones on your own now that<05:41:54.958> you<05:41:55.080> know<05:41:55.440> how<05:41:55.638> we<05:41:55.798> did<05:41:56.080> this<05:41:56.200> one 05:41:56.628 --> 05:41:56.638 align:start position:0% that you know how we did this one 05:41:56.638 --> 05:41:58.948 align:start position:0% that you know how we did this one together<05:41:57.360> so<05:41:57.600> the<05:41:57.798> task<05:41:58.200> and<05:41:58.360> the<05:41:58.478> mission<05:41:58.840> is 05:41:58.948 --> 05:41:58.958 align:start position:0% together so the task and the mission is 05:41:58.958 --> 05:42:01.350 align:start position:0% together so the task and the mission is to<05:41:59.360> think<05:41:59.718> and<05:41:59.920> try<05:42:00.320> the<05:42:00.478> infinite<05:42:00.840> Scrolls<05:42:01.240> in 05:42:01.350 --> 05:42:01.360 align:start position:0% to think and try the infinite Scrolls in 05:42:01.360 --> 05:42:04.350 align:start position:0% to think and try the infinite Scrolls in the<05:42:01.520> application<05:42:02.360> for<05:42:02.600> the<05:42:02.798> home<05:42:03.478> users<05:42:04.080> and 05:42:04.350 --> 05:42:04.360 align:start position:0% the application for the home users and 05:42:04.360 --> 05:42:06.390 align:start position:0% the application for the home users and profile<05:42:04.798> Pages<05:42:05.680> even<05:42:05.958> though<05:42:06.120> we<05:42:06.240> have 05:42:06.390 --> 05:42:06.400 align:start position:0% profile Pages even though we have 05:42:06.400 --> 05:42:08.350 align:start position:0% profile Pages even though we have already<05:42:06.798> implemented<05:42:07.360> it<05:42:07.520> for<05:42:07.718> the<05:42:07.878> explore 05:42:08.350 --> 05:42:08.360 align:start position:0% already implemented it for the explore 05:42:08.360 --> 05:42:10.910 align:start position:0% already implemented it for the explore page<05:42:09.040> you<05:42:09.160> can<05:42:09.400> also<05:42:09.680> make<05:42:09.878> it<05:42:10.040> go<05:42:10.400> right<05:42:10.638> here 05:42:10.910 --> 05:42:10.920 align:start position:0% page you can also make it go right here 05:42:10.920 --> 05:42:14.670 align:start position:0% page you can also make it go right here in<05:42:11.080> the<05:42:11.558> homepage<05:42:12.558> so<05:42:13.160> here<05:42:13.680> we<05:42:13.878> provided<05:42:14.320> you 05:42:14.670 --> 05:42:14.680 align:start position:0% in the homepage so here we provided you 05:42:14.680 --> 05:42:17.310 align:start position:0% in the homepage so here we provided you some<05:42:15.080> examples<05:42:16.080> saying<05:42:16.520> that<05:42:16.718> you<05:42:16.798> can<05:42:17.000> visit 05:42:17.310 --> 05:42:17.320 align:start position:0% some examples saying that you can visit 05:42:17.320 --> 05:42:19.590 align:start position:0% some examples saying that you can visit the<05:42:17.478> original<05:42:18.040> Instagram<05:42:18.600> application<05:42:19.440> and 05:42:19.590 --> 05:42:19.600 align:start position:0% the original Instagram application and 05:42:19.600 --> 05:42:21.708 align:start position:0% the original Instagram application and then<05:42:19.798> see<05:42:20.160> how<05:42:20.400> every<05:42:20.600> time<05:42:20.760> you<05:42:20.878> scroll<05:42:21.280> down 05:42:21.708 --> 05:42:21.718 align:start position:0% then see how every time you scroll down 05:42:21.718 --> 05:42:23.788 align:start position:0% then see how every time you scroll down new<05:42:22.000> posts<05:42:22.440> appear<05:42:23.360> and<05:42:23.478> then<05:42:23.600> some 05:42:23.788 --> 05:42:23.798 align:start position:0% new posts appear and then some 05:42:23.798 --> 05:42:25.948 align:start position:0% new posts appear and then some additional<05:42:24.240> resources<05:42:24.798> as<05:42:24.958> well<05:42:25.520> such<05:42:25.680> as<05:42:25.798> the 05:42:25.948 --> 05:42:25.958 align:start position:0% additional resources as well such as the 05:42:25.958 --> 05:42:28.868 align:start position:0% additional resources as well such as the query<05:42:26.320> key<05:42:26.798> query<05:42:27.200> function<05:42:27.840> infinite<05:42:28.280> query 05:42:28.868 --> 05:42:28.878 align:start position:0% query key query function infinite query 05:42:28.878 --> 05:42:32.150 align:start position:0% query key query function infinite query app<05:42:29.400> pagination<05:42:30.160> aate<05:42:30.600> queries<05:42:31.000> and<05:42:31.240> more<05:42:32.000> all 05:42:32.150 --> 05:42:32.160 align:start position:0% app pagination aate queries and more all 05:42:32.160 --> 05:42:34.510 align:start position:0% app pagination aate queries and more all of<05:42:32.320> the<05:42:32.520> resources<05:42:33.240> you<05:42:33.440> need<05:42:33.840> to<05:42:34.040> make<05:42:34.240> this 05:42:34.510 --> 05:42:34.520 align:start position:0% of the resources you need to make this 05:42:34.520 --> 05:42:36.590 align:start position:0% of the resources you need to make this possible<05:42:35.320> of<05:42:35.478> course<05:42:35.840> most<05:42:36.040> of<05:42:36.200> these<05:42:36.360> are 05:42:36.590 --> 05:42:36.600 align:start position:0% possible of course most of these are 05:42:36.600 --> 05:42:38.868 align:start position:0% possible of course most of these are actual<05:42:36.878> documentation<05:42:37.600> sites<05:42:38.478> and<05:42:38.638> then 05:42:38.868 --> 05:42:38.878 align:start position:0% actual documentation sites and then 05:42:38.878 --> 05:42:41.150 align:start position:0% actual documentation sites and then there's<05:42:39.160> also<05:42:39.400> a<05:42:39.600> mustre<05:42:40.240> resource<05:42:40.958> which<05:42:41.080> is 05:42:41.150 --> 05:42:41.160 align:start position:0% there's also a mustre resource which is 05:42:41.160 --> 05:42:44.150 align:start position:0% there's also a mustre resource which is a<05:42:41.360> react<05:42:41.760> query<05:42:42.200> article<05:42:42.840> on<05:42:43.160> infinite 05:42:44.150 --> 05:42:44.160 align:start position:0% a react query article on infinite 05:42:44.160 --> 05:42:47.150 align:start position:0% a react query article on infinite scroll<05:42:45.160> finally<05:42:45.798> we<05:42:46.000> have<05:42:46.200> some<05:42:46.440> hints<05:42:46.958> as 05:42:47.150 --> 05:42:47.160 align:start position:0% scroll finally we have some hints as 05:42:47.160 --> 05:42:49.390 align:start position:0% scroll finally we have some hints as well<05:42:47.920> the<05:42:48.080> entire<05:42:48.558> process<05:42:48.958> needed<05:42:49.240> to 05:42:49.390 --> 05:42:49.400 align:start position:0% well the entire process needed to 05:42:49.400 --> 05:42:51.910 align:start position:0% well the entire process needed to develop<05:42:49.840> this<05:42:50.200> is<05:42:50.478> nicely<05:42:50.840> laid<05:42:51.160> out<05:42:51.478> in<05:42:51.638> form 05:42:51.910 --> 05:42:51.920 align:start position:0% develop this is nicely laid out in form 05:42:51.920 --> 05:42:54.948 align:start position:0% develop this is nicely laid out in form of<05:42:52.120> hints<05:42:52.920> and<05:42:53.160> not<05:42:53.360> only<05:42:53.760> that<05:42:54.120> it<05:42:54.280> urges<05:42:54.718> you 05:42:54.948 --> 05:42:54.958 align:start position:0% of hints and not only that it urges you 05:42:54.958 --> 05:42:57.548 align:start position:0% of hints and not only that it urges you to<05:42:55.360> think<05:42:55.920> and<05:42:56.120> develop<05:42:56.638> that<05:42:57.000> developer 05:42:57.548 --> 05:42:57.558 align:start position:0% to think and develop that developer 05:42:57.558 --> 05:43:00.030 align:start position:0% to think and develop that developer mindset<05:42:58.558> so<05:42:58.718> it<05:42:58.840> asks<05:42:59.080> asks<05:42:59.320> you<05:42:59.638> what<05:42:59.760> do<05:42:59.878> we 05:43:00.030 --> 05:43:00.040 align:start position:0% mindset so it asks asks you what do we 05:43:00.040 --> 05:43:03.070 align:start position:0% mindset so it asks asks you what do we need<05:43:01.000> how<05:43:01.120> should<05:43:01.280> it<05:43:01.440> work<05:43:01.638> or<05:43:01.920> Ro<05:43:02.760> does<05:43:02.920> that 05:43:03.070 --> 05:43:03.080 align:start position:0% need how should it work or Ro does that 05:43:03.080 --> 05:43:04.430 align:start position:0% need how should it work or Ro does that mean<05:43:03.240> that<05:43:03.440> Instagram<05:43:03.840> is<05:43:03.920> showing<05:43:04.240> many 05:43:04.430 --> 05:43:04.440 align:start position:0% mean that Instagram is showing many 05:43:04.440 --> 05:43:07.070 align:start position:0% mean that Instagram is showing many posts<05:43:04.718> in<05:43:04.840> one<05:43:05.120> request<05:43:06.120> and<05:43:06.280> then<05:43:06.520> even<05:43:06.798> some 05:43:07.070 --> 05:43:07.080 align:start position:0% posts in one request and then even some 05:43:07.080 --> 05:43:09.628 align:start position:0% posts in one request and then even some code<05:43:07.360> blocks<05:43:07.878> to<05:43:08.160> get<05:43:08.320> you<05:43:08.600> to<05:43:08.878> implement<05:43:09.400> this 05:43:09.628 --> 05:43:09.638 align:start position:0% code blocks to get you to implement this 05:43:09.638 --> 05:43:12.030 align:start position:0% code blocks to get you to implement this on<05:43:09.798> your<05:43:09.958> own<05:43:10.638> in<05:43:10.798> case<05:43:10.958> you<05:43:11.120> get<05:43:11.320> stuck<05:43:11.878> and 05:43:12.030 --> 05:43:12.040 align:start position:0% on your own in case you get stuck and 05:43:12.040 --> 05:43:13.190 align:start position:0% on your own in case you get stuck and need<05:43:12.320> any 05:43:13.190 --> 05:43:13.200 align:start position:0% need any 05:43:13.200 --> 05:43:16.548 align:start position:0% need any assistance<05:43:14.200> as<05:43:14.320> you<05:43:14.400> can<05:43:14.558> see<05:43:15.080> it<05:43:15.240> goes<05:43:15.718> on<05:43:16.320> and 05:43:16.548 --> 05:43:16.558 align:start position:0% assistance as you can see it goes on and 05:43:16.558 --> 05:43:19.110 align:start position:0% assistance as you can see it goes on and on<05:43:16.878> and<05:43:17.080> on<05:43:17.680> and<05:43:17.840> gives<05:43:18.040> you<05:43:18.160> the<05:43:18.280> code<05:43:18.600> needed 05:43:19.110 --> 05:43:19.120 align:start position:0% on and on and gives you the code needed 05:43:19.120 --> 05:43:21.350 align:start position:0% on and on and gives you the code needed to<05:43:19.360> implement<05:43:19.878> these<05:43:20.080> features<05:43:20.920> within<05:43:21.200> the 05:43:21.350 --> 05:43:21.360 align:start position:0% to implement these features within the 05:43:21.360 --> 05:43:24.868 align:start position:0% to implement these features within the application<05:43:22.320> we<05:43:22.520> have<05:43:22.638> been<05:43:22.798> building<05:43:23.558> so<05:43:23.878> far 05:43:24.868 --> 05:43:24.878 align:start position:0% application we have been building so far 05:43:24.878 --> 05:43:27.230 align:start position:0% application we have been building so far how<05:43:25.280> cool<05:43:25.600> is<05:43:25.798> that<05:43:26.280> it's<05:43:26.400> a<05:43:26.558> completely<05:43:27.000> new 05:43:27.230 --> 05:43:27.240 align:start position:0% how cool is that it's a completely new 05:43:27.240 --> 05:43:29.628 align:start position:0% how cool is that it's a completely new paradigm<05:43:27.680> to<05:43:27.798> learning<05:43:28.360> so<05:43:29.080> just<05:43:29.240> give<05:43:29.360> it<05:43:29.478> a 05:43:29.628 --> 05:43:29.638 align:start position:0% paradigm to learning so just give it a 05:43:29.638 --> 05:43:32.468 align:start position:0% paradigm to learning so just give it a go<05:43:30.120> and<05:43:30.240> tell<05:43:30.400> me<05:43:30.600> how<05:43:30.718> you<05:43:30.878> like<05:43:31.080> it<05:43:32.000> and<05:43:32.240> once 05:43:32.468 --> 05:43:32.478 align:start position:0% go and tell me how you like it and once 05:43:32.478 --> 05:43:34.708 align:start position:0% go and tell me how you like it and once again<05:43:32.958> if<05:43:33.080> it's<05:43:33.240> not<05:43:33.440> working<05:43:33.760> as<05:43:34.000> expected 05:43:34.708 --> 05:43:34.718 align:start position:0% again if it's not working as expected 05:43:34.718 --> 05:43:37.070 align:start position:0% again if it's not working as expected don't<05:43:35.000> feel<05:43:35.360> frustrated<05:43:36.320> it's<05:43:36.478> a<05:43:36.638> part<05:43:36.798> of<05:43:36.920> the 05:43:37.070 --> 05:43:37.080 align:start position:0% don't feel frustrated it's a part of the 05:43:37.080 --> 05:43:39.310 align:start position:0% don't feel frustrated it's a part of the developer's<05:43:37.680> life<05:43:38.160> so<05:43:38.400> start<05:43:38.760> again<05:43:39.120> and 05:43:39.310 --> 05:43:39.320 align:start position:0% developer's life so start again and 05:43:39.320 --> 05:43:41.708 align:start position:0% developer's life so start again and debug<05:43:39.878> everything<05:43:40.280> line<05:43:40.558> by<05:43:40.798> line<05:43:41.440> see<05:43:41.638> if 05:43:41.708 --> 05:43:41.718 align:start position:0% debug everything line by line see if 05:43:41.718 --> 05:43:43.350 align:start position:0% debug everything line by line see if you're<05:43:41.878> getting<05:43:42.120> any<05:43:42.360> documents<05:43:43.040> and<05:43:43.160> check 05:43:43.350 --> 05:43:43.360 align:start position:0% you're getting any documents and check 05:43:43.360 --> 05:43:45.230 align:start position:0% you're getting any documents and check if<05:43:43.520> the<05:43:43.680> last<05:43:43.958> ID<05:43:44.240> is<05:43:44.360> being<05:43:44.600> calculated 05:43:45.230 --> 05:43:45.240 align:start position:0% if the last ID is being calculated 05:43:45.240 --> 05:43:46.990 align:start position:0% if the last ID is being calculated properly<05:43:45.878> and<05:43:46.040> whether<05:43:46.280> it's<05:43:46.440> being<05:43:46.718> passed 05:43:46.990 --> 05:43:47.000 align:start position:0% properly and whether it's being passed 05:43:47.000 --> 05:43:49.468 align:start position:0% properly and whether it's being passed to<05:43:47.120> the<05:43:47.240> query<05:43:47.600> function<05:43:48.120> or<05:43:48.400> not<05:43:49.080> just<05:43:49.280> keep 05:43:49.468 --> 05:43:49.478 align:start position:0% to the query function or not just keep 05:43:49.478 --> 05:43:51.948 align:start position:0% to the query function or not just keep trying<05:43:50.200> if<05:43:50.320> you<05:43:50.440> get<05:43:50.638> stuck<05:43:51.240> just<05:43:51.440> refer<05:43:51.798> to 05:43:51.948 --> 05:43:51.958 align:start position:0% trying if you get stuck just refer to 05:43:51.958 --> 05:43:54.548 align:start position:0% trying if you get stuck just refer to the<05:43:52.080> finished<05:43:52.440> code<05:43:52.680> repository<05:43:53.440> on<05:43:53.718> GitHub 05:43:54.548 --> 05:43:54.558 align:start position:0% the finished code repository on GitHub 05:43:54.558 --> 05:43:56.468 align:start position:0% the finished code repository on GitHub this<05:43:54.798> right<05:43:55.000> here<05:43:55.320> was<05:43:55.558> just<05:43:55.760> the<05:43:55.958> first<05:43:56.320> of 05:43:56.468 --> 05:43:56.478 align:start position:0% this right here was just the first of 05:43:56.478 --> 05:43:58.548 align:start position:0% this right here was just the first of the<05:43:56.680> active<05:43:56.958> lessons<05:43:57.680> we<05:43:57.840> have<05:43:58.040> implemented 05:43:58.548 --> 05:43:58.558 align:start position:0% the active lessons we have implemented 05:43:58.558 --> 05:44:00.868 align:start position:0% the active lessons we have implemented it<05:43:58.680> for<05:43:59.120> explore<05:43:59.558> page<05:44:00.200> but<05:44:00.400> you<05:44:00.478> can<05:44:00.638> do<05:44:00.760> it 05:44:00.868 --> 05:44:00.878 align:start position:0% it for explore page but you can do it 05:44:00.878 --> 05:44:03.788 align:start position:0% it for explore page but you can do it for<05:44:01.040> the<05:44:01.200> homepage<05:44:01.718> as<05:44:01.878> well<05:44:02.878> and<05:44:03.080> then<05:44:03.558> we 05:44:03.788 --> 05:44:03.798 align:start position:0% for the homepage as well and then we 05:44:03.798 --> 05:44:07.350 align:start position:0% for the homepage as well and then we have<05:44:04.478> five<05:44:05.080> more<05:44:06.080> the<05:44:06.240> top<05:44:06.478> creators<05:44:07.080> is<05:44:07.200> the 05:44:07.350 --> 05:44:07.360 align:start position:0% have five more the top creators is the 05:44:07.360 --> 05:44:09.990 align:start position:0% have five more the top creators is the next<05:44:07.558> feature<05:44:07.878> you<05:44:08.040> have<05:44:08.160> to<05:44:08.760> implement<05:44:09.760> and 05:44:09.990 --> 05:44:10.000 align:start position:0% next feature you have to implement and 05:44:10.000 --> 05:44:12.150 align:start position:0% next feature you have to implement and in<05:44:10.200> this<05:44:10.440> case<05:44:10.840> we<05:44:11.000> have<05:44:11.240> even<05:44:11.520> provided<05:44:11.878> you 05:44:12.150 --> 05:44:12.160 align:start position:0% in this case we have even provided you 05:44:12.160 --> 05:44:15.270 align:start position:0% in this case we have even provided you with<05:44:12.280> a<05:44:12.440> figma<05:44:13.080> design<05:44:14.080> you<05:44:14.200> can<05:44:14.320> see<05:44:14.520> it<05:44:14.718> here 05:44:15.270 --> 05:44:15.280 align:start position:0% with a figma design you can see it here 05:44:15.280 --> 05:44:16.868 align:start position:0% with a figma design you can see it here so<05:44:15.440> you<05:44:15.558> have<05:44:15.680> to<05:44:15.878> implement<05:44:16.400> the<05:44:16.600> top 05:44:16.868 --> 05:44:16.878 align:start position:0% so you have to implement the top 05:44:16.878 --> 05:44:20.708 align:start position:0% so you have to implement the top creators<05:44:17.798> right<05:44:18.760> sidebar<05:44:19.760> once<05:44:20.040> again<05:44:20.520> you 05:44:20.708 --> 05:44:20.718 align:start position:0% creators right sidebar once again you 05:44:20.718 --> 05:44:22.830 align:start position:0% creators right sidebar once again you have<05:44:21.200> everything<05:44:21.600> you<05:44:21.760> need<05:44:22.080> here<05:44:22.440> we<05:44:22.600> even 05:44:22.830 --> 05:44:22.840 align:start position:0% have everything you need here we even 05:44:22.840 --> 05:44:25.230 align:start position:0% have everything you need here we even recommend<05:44:23.360> to<05:44:23.520> play<05:44:23.680> a<05:44:23.760> little<05:44:23.958> flexb<05:44:24.638> game<05:44:25.040> to 05:44:25.230 --> 05:44:25.240 align:start position:0% recommend to play a little flexb game to 05:44:25.240 --> 05:44:27.708 align:start position:0% recommend to play a little flexb game to test<05:44:25.478> out<05:44:25.638> your<05:44:25.798> Flex<05:44:26.160> skills<05:44:26.958> and<05:44:27.080> then<05:44:27.320> again 05:44:27.708 --> 05:44:27.718 align:start position:0% test out your Flex skills and then again 05:44:27.718 --> 05:44:30.030 align:start position:0% test out your Flex skills and then again we<05:44:27.920> dive<05:44:28.200> into<05:44:28.400> a<05:44:28.520> large<05:44:29.040> number<05:44:29.360> of<05:44:29.520> different 05:44:30.030 --> 05:44:30.040 align:start position:0% we dive into a large number of different 05:44:30.040 --> 05:44:33.230 align:start position:0% we dive into a large number of different hints<05:44:31.040> they<05:44:31.200> go<05:44:31.440> linearly<05:44:32.320> from<05:44:32.600> start<05:44:33.040> to 05:44:33.230 --> 05:44:33.240 align:start position:0% hints they go linearly from start to 05:44:33.240 --> 05:44:35.190 align:start position:0% hints they go linearly from start to finish<05:44:33.798> so<05:44:33.958> you<05:44:34.040> can<05:44:34.240> try<05:44:34.440> coding<05:44:34.760> it<05:44:34.920> on<05:44:35.040> your 05:44:35.190 --> 05:44:35.200 align:start position:0% finish so you can try coding it on your 05:44:35.200 --> 05:44:38.350 align:start position:0% finish so you can try coding it on your own<05:44:35.760> and<05:44:35.920> then<05:44:36.160> try<05:44:36.360> to<05:44:36.600> think<05:44:37.160> in<05:44:37.360> layouts<05:44:38.120> try 05:44:38.350 --> 05:44:38.360 align:start position:0% own and then try to think in layouts try 05:44:38.360 --> 05:44:40.590 align:start position:0% own and then try to think in layouts try to<05:44:38.520> implement<05:44:39.000> different<05:44:39.280> things<05:44:40.000> try<05:44:40.240> to<05:44:40.400> do 05:44:40.590 --> 05:44:40.600 align:start position:0% to implement different things try to do 05:44:40.600 --> 05:44:43.590 align:start position:0% to implement different things try to do it<05:44:40.878> on<05:44:41.080> your<05:44:41.280> own<05:44:42.120> but<05:44:42.360> if<05:44:42.478> you<05:44:42.638> get<05:44:42.798> stuck<05:44:43.440> you 05:44:43.590 --> 05:44:43.600 align:start position:0% it on your own but if you get stuck you 05:44:43.600 --> 05:44:46.030 align:start position:0% it on your own but if you get stuck you can<05:44:43.798> visit<05:44:44.240> the<05:44:44.400> hints<05:44:45.400> then<05:44:45.600> again<05:44:45.878> we're 05:44:46.030 --> 05:44:46.040 align:start position:0% can visit the hints then again we're 05:44:46.040 --> 05:44:48.468 align:start position:0% can visit the hints then again we're going<05:44:46.160> to<05:44:46.320> implement<05:44:46.760> the<05:44:46.920> all<05:44:47.400> users<05:44:48.000> section 05:44:48.468 --> 05:44:48.478 align:start position:0% going to implement the all users section 05:44:48.478 --> 05:44:51.270 align:start position:0% going to implement the all users section next<05:44:49.400> here<05:44:49.718> you<05:44:49.840> can<05:44:50.000> check<05:44:50.200> out<05:44:50.400> the<05:44:50.558> design 05:44:51.270 --> 05:44:51.280 align:start position:0% next here you can check out the design 05:44:51.280 --> 05:44:53.350 align:start position:0% next here you can check out the design and<05:44:51.440> then<05:44:51.638> we<05:44:51.798> go<05:44:52.200> through<05:44:52.520> different<05:44:53.040> must 05:44:53.350 --> 05:44:53.360 align:start position:0% and then we go through different must 05:44:53.360 --> 05:44:55.948 align:start position:0% and then we go through different must plays<05:44:53.718> or<05:44:53.958> must<05:44:54.240> reads<05:44:55.160> as<05:44:55.360> well<05:44:55.558> as<05:44:55.718> some 05:44:55.948 --> 05:44:55.958 align:start position:0% plays or must reads as well as some 05:44:55.958 --> 05:44:57.670 align:start position:0% plays or must reads as well as some additional<05:44:56.440> hints<05:44:56.920> you<05:44:57.000> can<05:44:57.160> follow<05:44:57.520> to 05:44:57.670 --> 05:44:57.680 align:start position:0% additional hints you can follow to 05:44:57.680 --> 05:44:59.390 align:start position:0% additional hints you can follow to implement<05:44:58.080> the<05:44:58.200> feature 05:44:59.390 --> 05:44:59.400 align:start position:0% implement the feature 05:44:59.400 --> 05:45:01.150 align:start position:0% implement the feature and<05:44:59.680> I<05:44:59.760> don't<05:44:59.920> think<05:45:00.040> I<05:45:00.160> got<05:45:00.280> to<05:45:00.440> say<05:45:00.638> it<05:45:01.000> but 05:45:01.150 --> 05:45:01.160 align:start position:0% and I don't think I got to say it but 05:45:01.160 --> 05:45:03.310 align:start position:0% and I don't think I got to say it but this<05:45:01.240> is<05:45:01.400> repeated<05:45:01.840> for<05:45:01.958> the<05:45:02.120> save<05:45:02.520> posts<05:45:03.120> for 05:45:03.310 --> 05:45:03.320 align:start position:0% this is repeated for the save posts for 05:45:03.320 --> 05:45:06.070 align:start position:0% this is repeated for the save posts for the<05:45:03.478> edit<05:45:03.840> profile<05:45:04.840> and<05:45:05.120> finally<05:45:05.638> for<05:45:05.878> the 05:45:06.070 --> 05:45:06.080 align:start position:0% the edit profile and finally for the 05:45:06.080 --> 05:45:09.030 align:start position:0% the edit profile and finally for the profile<05:45:06.478> page<05:45:07.080> itself<05:45:08.080> I<05:45:08.200> truly<05:45:08.558> believe<05:45:08.878> that 05:45:09.030 --> 05:45:09.040 align:start position:0% profile page itself I truly believe that 05:45:09.040 --> 05:45:11.390 align:start position:0% profile page itself I truly believe that this<05:45:09.160> is<05:45:09.240> a<05:45:09.440> new<05:45:09.680> way<05:45:09.840> to<05:45:10.000> learning<05:45:10.840> of<05:45:11.040> course 05:45:11.390 --> 05:45:11.400 align:start position:0% this is a new way to learning of course 05:45:11.400 --> 05:45:13.350 align:start position:0% this is a new way to learning of course feel<05:45:11.638> free<05:45:11.840> to<05:45:12.080> let<05:45:12.200> me<05:45:12.360> know<05:45:12.600> what<05:45:12.718> you<05:45:12.920> think 05:45:13.350 --> 05:45:13.360 align:start position:0% feel free to let me know what you think 05:45:13.360 --> 05:45:15.150 align:start position:0% feel free to let me know what you think down<05:45:13.600> in<05:45:13.718> the<05:45:13.920> comments<05:45:14.558> and<05:45:14.760> if<05:45:14.920> you'd<05:45:15.040> like 05:45:15.150 --> 05:45:15.160 align:start position:0% down in the comments and if you'd like 05:45:15.160 --> 05:45:16.868 align:start position:0% down in the comments and if you'd like me<05:45:15.280> to<05:45:15.360> do<05:45:15.558> more<05:45:15.840> things<05:45:16.120> like<05:45:16.320> this<05:45:16.600> in<05:45:16.718> the 05:45:16.868 --> 05:45:16.878 align:start position:0% me to do more things like this in the 05:45:16.878 --> 05:45:20.070 align:start position:0% me to do more things like this in the future<05:45:17.840> with<05:45:18.040> that<05:45:18.280> said<05:45:18.920> give<05:45:19.040> it<05:45:19.160> a<05:45:19.320> go<05:45:19.840> try 05:45:20.070 --> 05:45:20.080 align:start position:0% future with that said give it a go try 05:45:20.080 --> 05:45:22.110 align:start position:0% future with that said give it a go try to<05:45:20.240> go<05:45:20.478> through<05:45:20.840> as<05:45:21.040> many<05:45:21.320> of<05:45:21.520> these<05:45:21.798> active 05:45:22.110 --> 05:45:22.120 align:start position:0% to go through as many of these active 05:45:22.120 --> 05:45:24.270 align:start position:0% to go through as many of these active lessons<05:45:22.478> as<05:45:22.680> possible<05:45:23.478> see<05:45:23.760> how<05:45:23.878> you<05:45:24.040> like 05:45:24.270 --> 05:45:24.280 align:start position:0% lessons as possible see how you like 05:45:24.280 --> 05:45:25.948 align:start position:0% lessons as possible see how you like them<05:45:24.600> try<05:45:24.840> to<05:45:25.040> implement<05:45:25.478> some<05:45:25.600> of<05:45:25.718> the 05:45:25.948 --> 05:45:25.958 align:start position:0% them try to implement some of the 05:45:25.958 --> 05:45:28.310 align:start position:0% them try to implement some of the features<05:45:26.958> and<05:45:27.160> then<05:45:27.558> come<05:45:27.798> back<05:45:27.958> to<05:45:28.120> this 05:45:28.310 --> 05:45:28.320 align:start position:0% features and then come back to this 05:45:28.320 --> 05:45:30.788 align:start position:0% features and then come back to this video<05:45:28.840> to<05:45:29.000> deploy<05:45:29.360> the<05:45:29.558> project<05:45:29.920> to<05:45:30.120> the 05:45:30.788 --> 05:45:30.798 align:start position:0% video to deploy the project to the 05:45:30.798 --> 05:45:34.110 align:start position:0% video to deploy the project to the Internet<05:45:31.798> so<05:45:32.400> how<05:45:32.558> did<05:45:32.718> it<05:45:32.878> go<05:45:33.520> I<05:45:33.638> hope<05:45:33.798> you<05:45:33.920> are 05:45:34.110 --> 05:45:34.120 align:start position:0% Internet so how did it go I hope you are 05:45:34.120 --> 05:45:36.590 align:start position:0% Internet so how did it go I hope you are able<05:45:34.400> to<05:45:34.600> take<05:45:34.760> your<05:45:35.000> time<05:45:35.638> and<05:45:35.920> I<05:45:36.080> know<05:45:36.320> it<05:45:36.440> can 05:45:36.590 --> 05:45:36.600 align:start position:0% able to take your time and I know it can 05:45:36.600 --> 05:45:38.788 align:start position:0% able to take your time and I know it can take<05:45:36.798> a<05:45:36.920> lot<05:45:37.080> of<05:45:37.240> time<05:45:37.558> maybe<05:45:37.878> even<05:45:38.200> more<05:45:38.600> than 05:45:38.788 --> 05:45:38.798 align:start position:0% take a lot of time maybe even more than 05:45:38.798 --> 05:45:40.750 align:start position:0% take a lot of time maybe even more than the<05:45:38.958> entire<05:45:39.360> video<05:45:39.638> you've<05:45:39.840> been<05:45:40.040> watching 05:45:40.750 --> 05:45:40.760 align:start position:0% the entire video you've been watching 05:45:40.760 --> 05:45:42.990 align:start position:0% the entire video you've been watching because<05:45:41.120> implementing<05:45:41.760> things<05:45:41.958> on<05:45:42.120> your<05:45:42.280> own 05:45:42.990 --> 05:45:43.000 align:start position:0% because implementing things on your own 05:45:43.000 --> 05:45:45.868 align:start position:0% because implementing things on your own actually<05:45:43.440> challenges<05:45:44.000> you<05:45:44.320> a<05:45:44.558> lot<05:45:45.240> so<05:45:45.600> I<05:45:45.718> hope 05:45:45.868 --> 05:45:45.878 align:start position:0% actually challenges you a lot so I hope 05:45:45.878 --> 05:45:48.150 align:start position:0% actually challenges you a lot so I hope you<05:45:46.000> did<05:45:46.280> good<05:45:46.958> if<05:45:47.120> not<05:45:47.440> there's<05:45:47.718> more<05:45:47.958> things 05:45:48.150 --> 05:45:48.160 align:start position:0% you did good if not there's more things 05:45:48.160 --> 05:45:50.350 align:start position:0% you did good if not there's more things to<05:45:48.280> do<05:45:48.520> and<05:45:48.680> more<05:45:48.878> things<05:45:49.080> to<05:45:49.240> learn<05:45:49.920> but 05:45:50.350 --> 05:45:50.360 align:start position:0% to do and more things to learn but 05:45:50.360 --> 05:45:53.830 align:start position:0% to do and more things to learn but learning<05:45:51.040> means<05:45:51.638> improving<05:45:52.638> so<05:45:53.040> in<05:45:53.240> any<05:45:53.520> case 05:45:53.830 --> 05:45:53.840 align:start position:0% learning means improving so in any case 05:45:53.840 --> 05:45:55.830 align:start position:0% learning means improving so in any case now<05:45:54.558> however<05:45:54.798> much<05:45:55.000> of<05:45:55.120> the<05:45:55.320> project<05:45:55.638> you've 05:45:55.830 --> 05:45:55.840 align:start position:0% now however much of the project you've 05:45:55.840 --> 05:45:57.910 align:start position:0% now however much of the project you've finished<05:45:56.520> let's<05:45:56.760> go<05:45:56.878> ahead<05:45:57.160> and<05:45:57.320> deploy<05:45:57.760> to 05:45:57.910 --> 05:45:57.920 align:start position:0% finished let's go ahead and deploy to 05:45:57.920 --> 05:45:59.990 align:start position:0% finished let's go ahead and deploy to the<05:45:58.040> internet<05:45:58.478> to<05:45:58.638> get<05:45:58.920> together<05:45:59.558> we'll<05:45:59.840> be 05:45:59.990 --> 05:46:00.000 align:start position:0% the internet to get together we'll be 05:46:00.000 --> 05:46:02.628 align:start position:0% the internet to get together we'll be deploying<05:46:00.558> our<05:46:01.000> project<05:46:01.400> to<05:46:01.680> versell<05:46:02.400> so<05:46:02.520> you 05:46:02.628 --> 05:46:02.638 align:start position:0% deploying our project to versell so you 05:46:02.638 --> 05:46:05.628 align:start position:0% deploying our project to versell so you can<05:46:02.798> head<05:46:02.958> to<05:46:03.160> versell<05:46:03.718> decom<05:46:04.400> and<05:46:04.680> log<05:46:04.920> in<05:46:05.280> or 05:46:05.628 --> 05:46:05.638 align:start position:0% can head to versell decom and log in or 05:46:05.638 --> 05:46:08.270 align:start position:0% can head to versell decom and log in or sign<05:46:05.958> up<05:46:06.920> once<05:46:07.080> you<05:46:07.240> log<05:46:07.520> in<05:46:07.840> you<05:46:07.958> should<05:46:08.160> be 05:46:08.270 --> 05:46:08.280 align:start position:0% sign up once you log in you should be 05:46:08.280 --> 05:46:10.390 align:start position:0% sign up once you log in you should be able<05:46:08.478> to<05:46:08.600> see<05:46:08.798> your<05:46:09.080> projects<05:46:09.798> and<05:46:10.000> you<05:46:10.160> might 05:46:10.390 --> 05:46:10.400 align:start position:0% able to see your projects and you might 05:46:10.400 --> 05:46:13.390 align:start position:0% able to see your projects and you might not<05:46:10.718> have<05:46:10.958> as<05:46:11.080> many<05:46:11.440> as<05:46:11.638> I<05:46:11.840> do<05:46:12.718> as<05:46:12.840> you<05:46:12.958> can<05:46:13.080> see 05:46:13.390 --> 05:46:13.400 align:start position:0% not have as many as I do as you can see 05:46:13.400 --> 05:46:15.070 align:start position:0% not have as many as I do as you can see we<05:46:13.558> have<05:46:13.798> hundreds<05:46:14.240> and<05:46:14.440> hundreds<05:46:14.840> of 05:46:15.070 --> 05:46:15.080 align:start position:0% we have hundreds and hundreds of 05:46:15.080 --> 05:46:17.590 align:start position:0% we have hundreds and hundreds of projects<05:46:15.520> right<05:46:15.718> here<05:46:16.400> most<05:46:16.638> of<05:46:16.840> them<05:46:17.040> belong 05:46:17.590 --> 05:46:17.600 align:start position:0% projects right here most of them belong 05:46:17.600 --> 05:46:19.990 align:start position:0% projects right here most of them belong to<05:46:17.840> our<05:46:18.200> JSM<05:46:18.760> masterclass<05:46:19.400> experience 05:46:19.990 --> 05:46:20.000 align:start position:0% to our JSM masterclass experience 05:46:20.000 --> 05:46:23.030 align:start position:0% to our JSM masterclass experience students<05:46:20.958> so<05:46:21.638> in<05:46:21.798> our<05:46:22.040> master<05:46:22.440> class<05:46:22.840> which<05:46:22.958> is 05:46:23.030 --> 05:46:23.040 align:start position:0% students so in our master class which is 05:46:23.040 --> 05:46:26.310 align:start position:0% students so in our master class which is the<05:46:23.200> JSM<05:46:23.680> boot<05:46:24.000> camp<05:46:24.718> we<05:46:25.200> actively<05:46:25.958> teach 05:46:26.310 --> 05:46:26.320 align:start position:0% the JSM boot camp we actively teach 05:46:26.320 --> 05:46:28.468 align:start position:0% the JSM boot camp we actively teach people<05:46:26.638> how<05:46:26.760> to<05:46:27.000> develop<05:46:27.520> projects<05:46:28.080> on<05:46:28.320> their 05:46:28.468 --> 05:46:28.478 align:start position:0% people how to develop projects on their 05:46:28.478 --> 05:46:29.390 align:start position:0% people how to develop projects on their own 05:46:29.390 --> 05:46:29.400 align:start position:0% own 05:46:29.400 --> 05:46:32.150 align:start position:0% own within<05:46:29.920> a<05:46:30.120> team<05:46:30.958> and<05:46:31.240> this<05:46:31.360> can<05:46:31.478> be<05:46:31.680> considered 05:46:32.150 --> 05:46:32.160 align:start position:0% within a team and this can be considered 05:46:32.160 --> 05:46:34.230 align:start position:0% within a team and this can be considered even<05:46:32.360> an<05:46:32.558> additional<05:46:33.120> step<05:46:33.440> to<05:46:33.680> these<05:46:33.920> active 05:46:34.230 --> 05:46:34.240 align:start position:0% even an additional step to these active 05:46:34.240 --> 05:46:36.430 align:start position:0% even an additional step to these active lessons<05:46:35.120> the<05:46:35.360> active<05:46:35.638> lessons<05:46:36.120> though<05:46:36.280> are 05:46:36.430 --> 05:46:36.440 align:start position:0% lessons the active lessons though are 05:46:36.440 --> 05:46:38.750 align:start position:0% lessons the active lessons though are reserved<05:46:36.878> for<05:46:37.000> the<05:46:37.080> nextjs<05:46:37.638> course<05:46:38.240> Andy<05:46:38.638> will 05:46:38.750 --> 05:46:38.760 align:start position:0% reserved for the nextjs course Andy will 05:46:38.760 --> 05:46:40.788 align:start position:0% reserved for the nextjs course Andy will also<05:46:38.958> gotten<05:46:39.200> a<05:46:39.360> chance<05:46:39.600> to<05:46:39.840> experience<05:46:40.400> them 05:46:40.788 --> 05:46:40.798 align:start position:0% also gotten a chance to experience them 05:46:40.798 --> 05:46:43.310 align:start position:0% also gotten a chance to experience them in<05:46:41.000> this<05:46:41.200> video<05:46:42.080> so<05:46:42.320> with<05:46:42.478> that<05:46:42.680> said<05:46:43.000> let's<05:46:43.200> go 05:46:43.310 --> 05:46:43.320 align:start position:0% in this video so with that said let's go 05:46:43.320 --> 05:46:45.310 align:start position:0% in this video so with that said let's go ahead<05:46:43.558> and<05:46:43.760> click<05:46:44.080> add<05:46:44.320> new<05:46:44.958> and<05:46:45.080> we<05:46:45.200> can 05:46:45.310 --> 05:46:45.320 align:start position:0% ahead and click add new and we can 05:46:45.320 --> 05:46:48.030 align:start position:0% ahead and click add new and we can select<05:46:46.200> project<05:46:47.200> you<05:46:47.320> can<05:46:47.478> notice<05:46:47.760> that<05:46:47.878> it's 05:46:48.030 --> 05:46:48.040 align:start position:0% select project you can notice that it's 05:46:48.040 --> 05:46:50.110 align:start position:0% select project you can notice that it's going<05:46:48.200> to<05:46:48.440> ask<05:46:48.680> us<05:46:49.000> to<05:46:49.320> import<05:46:49.680> a<05:46:49.878> get 05:46:50.110 --> 05:46:50.120 align:start position:0% going to ask us to import a get 05:46:50.120 --> 05:46:51.948 align:start position:0% going to ask us to import a get repository<05:46:50.920> which<05:46:51.080> means<05:46:51.320> that<05:46:51.478> we<05:46:51.600> have<05:46:51.718> to 05:46:51.948 --> 05:46:51.958 align:start position:0% repository which means that we have to 05:46:51.958 --> 05:46:54.868 align:start position:0% repository which means that we have to upload<05:46:52.360> our<05:46:52.558> project<05:46:52.958> to<05:46:53.280> GitHub<05:46:54.280> and<05:46:54.478> to<05:46:54.638> do 05:46:54.868 --> 05:46:54.878 align:start position:0% upload our project to GitHub and to do 05:46:54.878 --> 05:46:57.430 align:start position:0% upload our project to GitHub and to do that<05:46:55.200> you<05:46:55.320> can<05:46:55.520> go<05:46:55.638> to<05:46:55.920> github.com 05:46:57.430 --> 05:46:57.440 align:start position:0% that you can go to github.com 05:46:57.440 --> 05:47:00.190 align:start position:0% that you can go to github.com slne<05:46:58.440> and<05:46:58.798> create<05:46:59.000> a<05:46:59.120> new<05:46:59.400> project<05:46:59.840> called 05:47:00.190 --> 05:47:00.200 align:start position:0% slne and create a new project called 05:47:00.200 --> 05:47:01.590 align:start position:0% slne and create a new project called something<05:47:00.600> like 05:47:01.590 --> 05:47:01.600 align:start position:0% something like 05:47:01.600 --> 05:47:04.390 align:start position:0% something like snapgram<05:47:02.600> you<05:47:02.718> can<05:47:02.920> make<05:47:03.040> it<05:47:03.280> public<05:47:03.638> or 05:47:04.390 --> 05:47:04.400 align:start position:0% snapgram you can make it public or 05:47:04.400 --> 05:47:06.510 align:start position:0% snapgram you can make it public or private<05:47:05.400> I'm<05:47:05.558> going<05:47:05.638> to<05:47:05.798> make<05:47:05.920> it<05:47:06.080> private<05:47:06.360> in 05:47:06.510 --> 05:47:06.520 align:start position:0% private I'm going to make it private in 05:47:06.520 --> 05:47:10.670 align:start position:0% private I'm going to make it private in this<05:47:06.760> case<05:47:07.160> and<05:47:07.360> click<05:47:07.680> create 05:47:10.670 --> 05:47:10.680 align:start position:0% 05:47:10.680 --> 05:47:13.230 align:start position:0% repository<05:47:11.680> once<05:47:11.878> the<05:47:12.000> repo<05:47:12.440> is<05:47:12.638> there<05:47:12.958> we<05:47:13.040> can 05:47:13.230 --> 05:47:13.240 align:start position:0% repository once the repo is there we can 05:47:13.240 --> 05:47:15.868 align:start position:0% repository once the repo is there we can push<05:47:13.400> our<05:47:13.558> code<05:47:13.798> to<05:47:14.000> it<05:47:15.000> by<05:47:15.200> dragging<05:47:15.638> this<05:47:15.760> to 05:47:15.868 --> 05:47:15.878 align:start position:0% push our code to it by dragging this to 05:47:15.878 --> 05:47:18.708 align:start position:0% push our code to it by dragging this to the<05:47:16.120> side<05:47:16.878> opening<05:47:17.280> up<05:47:17.440> our<05:47:17.638> terminal<05:47:18.558> of 05:47:18.708 --> 05:47:18.718 align:start position:0% the side opening up our terminal of 05:47:18.718 --> 05:47:20.910 align:start position:0% the side opening up our terminal of course<05:47:18.920> we<05:47:19.040> have<05:47:19.160> to<05:47:19.320> stop<05:47:19.558> it<05:47:19.680> from<05:47:19.920> running 05:47:20.910 --> 05:47:20.920 align:start position:0% course we have to stop it from running 05:47:20.920 --> 05:47:26.110 align:start position:0% course we have to stop it from running and<05:47:21.120> then<05:47:21.520> you<05:47:21.638> can<05:47:21.798> run<05:47:22.400> get<05:47:23.000> init<05:47:24.000> get<05:47:24.360> add 05:47:26.110 --> 05:47:26.120 align:start position:0% and then you can run get init get add 05:47:26.120 --> 05:47:32.030 align:start position:0% and then you can run get init get add dot<05:47:27.120> get<05:47:27.718> commit<05:47:29.120> Dash<05:47:29.878> first 05:47:32.030 --> 05:47:32.040 align:start position:0% dot get commit Dash first 05:47:32.040 --> 05:47:34.070 align:start position:0% dot get commit Dash first commit<05:47:33.040> and<05:47:33.200> then<05:47:33.320> you<05:47:33.400> need<05:47:33.558> to<05:47:33.718> copy<05:47:33.958> a 05:47:34.070 --> 05:47:34.080 align:start position:0% commit and then you need to copy a 05:47:34.080 --> 05:47:36.230 align:start position:0% commit and then you need to copy a couple<05:47:34.280> of<05:47:34.400> command<05:47:34.798> from<05:47:35.040> here<05:47:35.558> such<05:47:35.760> as<05:47:36.000> git 05:47:36.230 --> 05:47:36.240 align:start position:0% couple of command from here such as git 05:47:36.240 --> 05:47:40.430 align:start position:0% couple of command from here such as git Branch<05:47:36.920> M<05:47:37.440> main<05:47:38.400> get<05:47:38.600> remote<05:47:39.040> at<05:47:39.360> origin<05:47:40.240> and 05:47:40.430 --> 05:47:40.440 align:start position:0% Branch M main get remote at origin and 05:47:40.440 --> 05:47:42.910 align:start position:0% Branch M main get remote at origin and get<05:47:40.680> push<05:47:41.000> you<05:47:41.360> origin 05:47:42.910 --> 05:47:42.920 align:start position:0% get push you origin 05:47:42.920 --> 05:47:45.468 align:start position:0% get push you origin Master<05:47:43.920> once<05:47:44.080> you<05:47:44.240> do<05:47:44.400> it<05:47:44.798> our<05:47:45.000> code<05:47:45.240> should 05:47:45.468 --> 05:47:45.478 align:start position:0% Master once you do it our code should 05:47:45.478 --> 05:47:47.910 align:start position:0% Master once you do it our code should now<05:47:45.638> be<05:47:45.920> live<05:47:46.240> on<05:47:46.600> GitHub<05:47:47.240> which<05:47:47.360> you<05:47:47.440> can<05:47:47.600> see 05:47:47.910 --> 05:47:47.920 align:start position:0% now be live on GitHub which you can see 05:47:47.920 --> 05:47:51.070 align:start position:0% now be live on GitHub which you can see if<05:47:48.000> you<05:47:48.160> simply<05:47:48.920> reload<05:47:49.920> and<05:47:50.120> there<05:47:50.240> we<05:47:50.440> go<05:47:50.878> our 05:47:51.070 --> 05:47:51.080 align:start position:0% if you simply reload and there we go our 05:47:51.080 --> 05:47:53.910 align:start position:0% if you simply reload and there we go our code<05:47:51.320> is<05:47:51.558> here<05:47:52.360> now<05:47:52.600> that<05:47:52.840> repo<05:47:53.240> is<05:47:53.400> live<05:47:53.840> we 05:47:53.910 --> 05:47:53.920 align:start position:0% code is here now that repo is live we 05:47:53.920 --> 05:47:55.910 align:start position:0% code is here now that repo is live we can<05:47:54.080> go<05:47:54.320> back<05:47:54.478> to<05:47:54.718> versel<05:47:55.600> and<05:47:55.760> it 05:47:55.910 --> 05:47:55.920 align:start position:0% can go back to versel and it 05:47:55.920 --> 05:47:57.548 align:start position:0% can go back to versel and it automatically<05:47:56.478> figured<05:47:56.840> that<05:47:56.958> we<05:47:57.080> have<05:47:57.200> a<05:47:57.320> new 05:47:57.548 --> 05:47:57.558 align:start position:0% automatically figured that we have a new 05:47:57.558 --> 05:47:59.670 align:start position:0% automatically figured that we have a new V<05:47:58.000> project<05:47:58.360> right<05:47:58.478> here<05:47:58.718> here<05:47:59.080> which<05:47:59.240> we<05:47:59.360> can 05:47:59.670 --> 05:47:59.680 align:start position:0% V project right here here which we can 05:47:59.680 --> 05:48:02.030 align:start position:0% V project right here here which we can import<05:48:00.680> once<05:48:00.840> you<05:48:01.000> import<05:48:01.320> it<05:48:01.520> you'll<05:48:01.718> have<05:48:01.840> to 05:48:02.030 --> 05:48:02.040 align:start position:0% import once you import it you'll have to 05:48:02.040 --> 05:48:04.510 align:start position:0% import once you import it you'll have to add<05:48:02.200> your<05:48:02.400> environment<05:48:03.000> variables<05:48:04.000> so<05:48:04.320> back 05:48:04.510 --> 05:48:04.520 align:start position:0% add your environment variables so back 05:48:04.520 --> 05:48:08.750 align:start position:0% add your environment variables so back in<05:48:04.638> our<05:48:04.878> code<05:48:05.400> you<05:48:05.520> can<05:48:05.798> go<05:48:06.080> to<05:48:06.478> our<05:48:07.160> env.<05:48:07.920> looc 05:48:08.750 --> 05:48:08.760 align:start position:0% in our code you can go to our env. looc 05:48:08.760 --> 05:48:11.510 align:start position:0% in our code you can go to our env. looc copy<05:48:09.200> all<05:48:09.440> the<05:48:09.638> variables<05:48:10.600> and<05:48:10.840> simply<05:48:11.240> paste 05:48:11.510 --> 05:48:11.520 align:start position:0% copy all the variables and simply paste 05:48:11.520 --> 05:48:12.910 align:start position:0% copy all the variables and simply paste them<05:48:11.760> right<05:48:11.958> here<05:48:12.478> it's<05:48:12.638> going<05:48:12.760> to 05:48:12.910 --> 05:48:12.920 align:start position:0% them right here it's going to 05:48:12.920 --> 05:48:14.788 align:start position:0% them right here it's going to automatically<05:48:13.558> figure<05:48:13.878> out<05:48:14.280> all<05:48:14.680> the 05:48:14.788 --> 05:48:14.798 align:start position:0% automatically figure out all the 05:48:14.798 --> 05:48:18.510 align:start position:0% automatically figure out all the individual<05:48:15.638> variables<05:48:16.638> and<05:48:16.920> click<05:48:17.400> deploy<05:48:18.400> as 05:48:18.510 --> 05:48:18.520 align:start position:0% individual variables and click deploy as 05:48:18.520 --> 05:48:21.230 align:start position:0% individual variables and click deploy as you<05:48:18.600> can<05:48:18.760> see<05:48:18.958> the<05:48:19.120> deployment<05:48:19.638> is<05:48:20.000> cued<05:48:21.000> so 05:48:21.230 --> 05:48:21.240 align:start position:0% you can see the deployment is cued so 05:48:21.240 --> 05:48:23.150 align:start position:0% you can see the deployment is cued so let's<05:48:21.440> give<05:48:21.558> it<05:48:21.680> a<05:48:21.798> minute<05:48:22.320> and<05:48:22.520> let's<05:48:22.760> see<05:48:23.040> if 05:48:23.150 --> 05:48:23.160 align:start position:0% let's give it a minute and let's see if 05:48:23.160 --> 05:48:26.070 align:start position:0% let's give it a minute and let's see if it's<05:48:23.600> successful<05:48:24.600> and<05:48:24.798> in<05:48:25.000> just<05:48:25.200> 30<05:48:25.558> seconds 05:48:26.070 --> 05:48:26.080 align:start position:0% it's successful and in just 30 seconds 05:48:26.080 --> 05:48:29.070 align:start position:0% it's successful and in just 30 seconds our<05:48:26.360> website<05:48:26.920> is<05:48:27.160> now<05:48:27.478> live<05:48:28.400> and<05:48:28.638> and<05:48:28.798> let's<05:48:28.958> go 05:48:29.070 --> 05:48:29.080 align:start position:0% our website is now live and and let's go 05:48:29.080 --> 05:48:30.830 align:start position:0% our website is now live and and let's go ahead<05:48:29.280> and<05:48:29.478> click<05:48:29.798> here<05:48:30.040> to<05:48:30.320> visit<05:48:30.638> our 05:48:30.830 --> 05:48:30.840 align:start position:0% ahead and click here to visit our 05:48:30.840 --> 05:48:31.990 align:start position:0% ahead and click here to visit our deployed 05:48:31.990 --> 05:48:32.000 align:start position:0% deployed 05:48:32.000 --> 05:48:34.948 align:start position:0% deployed application<05:48:33.000> there<05:48:33.320> we<05:48:33.638> go<05:48:34.160> our<05:48:34.400> sign<05:48:34.638> in<05:48:34.840> is 05:48:34.948 --> 05:48:34.958 align:start position:0% application there we go our sign in is 05:48:34.958 --> 05:48:37.868 align:start position:0% application there we go our sign in is looking<05:48:35.360> great<05:48:35.958> but<05:48:36.160> if<05:48:36.240> you<05:48:36.360> go<05:48:36.558> to<05:48:36.878> inspect 05:48:37.868 --> 05:48:37.878 align:start position:0% looking great but if you go to inspect 05:48:37.878 --> 05:48:40.390 align:start position:0% looking great but if you go to inspect and<05:48:38.120> if<05:48:38.240> you<05:48:38.400> look<05:48:38.600> into<05:48:38.840> the<05:48:39.080> console<05:48:40.080> you<05:48:40.200> can 05:48:40.390 --> 05:48:40.400 align:start position:0% and if you look into the console you can 05:48:40.400 --> 05:48:42.390 align:start position:0% and if you look into the console you can notice<05:48:40.958> that<05:48:41.280> we<05:48:41.440> cannot<05:48:41.760> really<05:48:41.958> make<05:48:42.160> a 05:48:42.390 --> 05:48:42.400 align:start position:0% notice that we cannot really make a 05:48:42.400 --> 05:48:45.628 align:start position:0% notice that we cannot really make a request<05:48:43.000> to<05:48:43.240> our<05:48:43.478> new<05:48:43.760> domain<05:48:44.400> or<05:48:44.798> rather<05:48:45.360> the 05:48:45.628 --> 05:48:45.638 align:start position:0% request to our new domain or rather the 05:48:45.638 --> 05:48:47.948 align:start position:0% request to our new domain or rather the access<05:48:45.958> to<05:48:46.200> ight<05:48:46.840> is<05:48:46.958> being<05:48:47.280> blocked<05:48:47.680> from<05:48:47.798> our 05:48:47.948 --> 05:48:47.958 align:start position:0% access to ight is being blocked from our 05:48:47.958 --> 05:48:50.270 align:start position:0% access to ight is being blocked from our new<05:48:48.200> domain<05:48:49.160> that's<05:48:49.400> because<05:48:49.600> of<05:48:49.760> the<05:48:49.920> course 05:48:50.270 --> 05:48:50.280 align:start position:0% new domain that's because of the course 05:48:50.280 --> 05:48:52.548 align:start position:0% new domain that's because of the course policy<05:48:51.160> something<05:48:51.520> that<05:48:51.718> developers<05:48:52.200> don't 05:48:52.548 --> 05:48:52.558 align:start position:0% policy something that developers don't 05:48:52.558 --> 05:48:54.510 align:start position:0% policy something that developers don't really<05:48:52.878> like<05:48:53.600> but<05:48:53.760> thankfully<05:48:54.160> there's<05:48:54.360> an 05:48:54.510 --> 05:48:54.520 align:start position:0% really like but thankfully there's an 05:48:54.520 --> 05:48:57.510 align:start position:0% really like but thankfully there's an easy<05:48:54.760> way<05:48:54.958> around<05:48:55.240> it<05:48:56.000> you<05:48:56.160> need<05:48:56.320> to<05:48:56.478> go<05:48:56.638> to 05:48:57.510 --> 05:48:57.520 align:start position:0% easy way around it you need to go to 05:48:57.520 --> 05:49:00.430 align:start position:0% easy way around it you need to go to aight<05:48:59.000> and<05:48:59.160> then<05:48:59.280> you<05:48:59.400> need<05:48:59.520> to<05:48:59.760> add<05:49:00.000> a<05:49:00.160> new 05:49:00.430 --> 05:49:00.440 align:start position:0% aight and then you need to add a new 05:49:00.440 --> 05:49:02.430 align:start position:0% aight and then you need to add a new platform<05:49:01.160> in<05:49:01.360> this<05:49:01.520> case<05:49:01.680> we're<05:49:01.840> going<05:49:01.920> to<05:49:02.040> do 05:49:02.430 --> 05:49:02.440 align:start position:0% platform in this case we're going to do 05:49:02.440 --> 05:49:06.788 align:start position:0% platform in this case we're going to do web<05:49:03.440> the<05:49:03.600> name<05:49:04.040> is<05:49:04.200> going<05:49:04.360> to<05:49:04.520> be 05:49:06.788 --> 05:49:06.798 align:start position:0% 05:49:06.798 --> 05:49:09.190 align:start position:0% snapgram<05:49:07.798> and<05:49:08.000> the<05:49:08.120> host<05:49:08.440> name<05:49:08.680> can<05:49:08.840> be 05:49:09.190 --> 05:49:09.200 align:start position:0% snapgram and the host name can be 05:49:09.200 --> 05:49:11.708 align:start position:0% snapgram and the host name can be everything<05:49:09.718> ad<05:49:10.040> verell<05:49:10.600> thata<05:49:11.360> and<05:49:11.478> we<05:49:11.558> can 05:49:11.708 --> 05:49:11.718 align:start position:0% everything ad verell thata and we can 05:49:11.718 --> 05:49:12.750 align:start position:0% everything ad verell thata and we can click 05:49:12.750 --> 05:49:12.760 align:start position:0% click 05:49:12.760 --> 05:49:16.310 align:start position:0% click next<05:49:13.760> finally<05:49:14.200> let's<05:49:14.558> skip<05:49:14.798> optional 05:49:16.310 --> 05:49:16.320 align:start position:0% next finally let's skip optional 05:49:16.320 --> 05:49:19.590 align:start position:0% next finally let's skip optional steps<05:49:17.320> and<05:49:17.558> this<05:49:17.798> created<05:49:18.240> a<05:49:18.440> new<05:49:18.680> integration 05:49:19.590 --> 05:49:19.600 align:start position:0% steps and this created a new integration 05:49:19.600 --> 05:49:21.430 align:start position:0% steps and this created a new integration with<05:49:19.798> a<05:49:20.000> web<05:49:20.320> platform<05:49:20.958> where<05:49:21.120> we<05:49:21.240> have 05:49:21.430 --> 05:49:21.440 align:start position:0% with a web platform where we have 05:49:21.440 --> 05:49:23.788 align:start position:0% with a web platform where we have deployed<05:49:21.878> our<05:49:22.040> snapgram<05:49:23.040> and<05:49:23.280> every<05:49:23.478> single 05:49:23.788 --> 05:49:23.798 align:start position:0% deployed our snapgram and every single 05:49:23.798 --> 05:49:26.510 align:start position:0% deployed our snapgram and every single host<05:49:24.080> name<05:49:24.240> on<05:49:24.478> verell<05:49:25.120> should<05:49:25.440> work<05:49:26.120> so<05:49:26.280> let's 05:49:26.510 --> 05:49:26.520 align:start position:0% host name on verell should work so let's 05:49:26.520 --> 05:49:29.590 align:start position:0% host name on verell should work so let's go<05:49:27.040> back<05:49:28.040> clear<05:49:28.360> the<05:49:28.520> the<05:49:28.638> console<05:49:29.040> and<05:49:29.200> reload 05:49:29.590 --> 05:49:29.600 align:start position:0% go back clear the the console and reload 05:49:29.600 --> 05:49:30.830 align:start position:0% go back clear the the console and reload the 05:49:30.830 --> 05:49:30.840 align:start position:0% the 05:49:30.840 --> 05:49:34.390 align:start position:0% the page<05:49:31.840> we<05:49:32.280> immediately<05:49:33.280> get<05:49:33.478> logged<05:49:33.840> in<05:49:34.120> into 05:49:34.390 --> 05:49:34.400 align:start position:0% page we immediately get logged in into 05:49:34.400 --> 05:49:36.510 align:start position:0% page we immediately get logged in into our<05:49:34.558> new<05:49:34.718> domain<05:49:35.520> if<05:49:35.718> that<05:49:35.878> hasn't<05:49:36.120> worked<05:49:36.320> for 05:49:36.510 --> 05:49:36.520 align:start position:0% our new domain if that hasn't worked for 05:49:36.520 --> 05:49:38.948 align:start position:0% our new domain if that hasn't worked for you<05:49:36.798> you<05:49:36.920> can<05:49:37.080> just<05:49:37.280> manually<05:49:37.680> log<05:49:37.958> in<05:49:38.680> and 05:49:38.948 --> 05:49:38.958 align:start position:0% you you can just manually log in and 05:49:38.958 --> 05:49:40.548 align:start position:0% you you can just manually log in and with<05:49:39.120> that<05:49:39.320> said<05:49:39.760> you<05:49:39.840> should<05:49:40.040> be<05:49:40.160> able<05:49:40.360> to 05:49:40.548 --> 05:49:40.558 align:start position:0% with that said you should be able to 05:49:40.558 --> 05:49:42.948 align:start position:0% with that said you should be able to have<05:49:40.760> this<05:49:40.958> explore<05:49:41.440> features<05:49:42.200> the<05:49:42.360> people<05:49:42.798> as 05:49:42.948 --> 05:49:42.958 align:start position:0% have this explore features the people as 05:49:42.958 --> 05:49:45.030 align:start position:0% have this explore features the people as well<05:49:43.280> if<05:49:43.400> you<05:49:43.520> have<05:49:43.718> implemented<05:49:44.240> it<05:49:44.638> saved 05:49:45.030 --> 05:49:45.040 align:start position:0% well if you have implemented it saved 05:49:45.040 --> 05:49:47.590 align:start position:0% well if you have implemented it saved features<05:49:45.478> as<05:49:45.638> well<05:49:46.320> everything<05:49:46.840> is<05:49:47.160> working 05:49:47.590 --> 05:49:47.600 align:start position:0% features as well everything is working 05:49:47.600 --> 05:49:50.868 align:start position:0% features as well everything is working flawlessly<05:49:48.520> on<05:49:48.760> our<05:49:48.958> newly<05:49:49.360> deployed<05:49:49.878> website 05:49:50.868 --> 05:49:50.878 align:start position:0% flawlessly on our newly deployed website 05:49:50.878 --> 05:49:53.750 align:start position:0% flawlessly on our newly deployed website how<05:49:51.280> great<05:49:51.718> is<05:49:51.958> that<05:49:52.718> so<05:49:53.200> how<05:49:53.320> did<05:49:53.478> you<05:49:53.600> like 05:49:53.750 --> 05:49:53.760 align:start position:0% how great is that so how did you like 05:49:53.760 --> 05:49:55.830 align:start position:0% how great is that so how did you like the<05:49:53.878> build<05:49:54.600> if<05:49:54.718> you're<05:49:54.920> watching<05:49:55.320> all<05:49:55.558> the<05:49:55.638> way 05:49:55.830 --> 05:49:55.840 align:start position:0% the build if you're watching all the way 05:49:55.840 --> 05:49:58.510 align:start position:0% the build if you're watching all the way until<05:49:56.080> the<05:49:56.200> end<05:49:56.760> I<05:49:56.878> hope<05:49:57.040> you<05:49:57.280> loved<05:49:57.558> it<05:49:58.200> Andy 05:49:58.510 --> 05:49:58.520 align:start position:0% until the end I hope you loved it Andy 05:49:58.520 --> 05:49:59.788 align:start position:0% until the end I hope you loved it Andy and<05:49:58.680> how<05:49:58.798> did<05:49:58.920> you<05:49:59.000> like<05:49:59.160> the<05:49:59.280> new<05:49:59.478> active 05:49:59.788 --> 05:49:59.798 align:start position:0% and how did you like the new active 05:49:59.798 --> 05:50:02.590 align:start position:0% and how did you like the new active lessons<05:50:00.798> I<05:50:00.920> hope<05:50:01.120> they<05:50:01.280> truly<05:50:01.638> tested<05:50:02.080> you<05:50:02.400> and 05:50:02.590 --> 05:50:02.600 align:start position:0% lessons I hope they truly tested you and 05:50:02.600 --> 05:50:04.910 align:start position:0% lessons I hope they truly tested you and helped<05:50:02.878> you<05:50:03.080> build<05:50:03.360> your<05:50:03.520> own<05:50:03.840> developer 05:50:04.910 --> 05:50:04.920 align:start position:0% helped you build your own developer 05:50:04.920 --> 05:50:07.310 align:start position:0% helped you build your own developer mindset<05:50:05.920> if<05:50:06.040> you<05:50:06.120> want<05:50:06.240> to<05:50:06.478> improve<05:50:06.798> your<05:50:07.000> game 05:50:07.310 --> 05:50:07.320 align:start position:0% mindset if you want to improve your game 05:50:07.320 --> 05:50:09.708 align:start position:0% mindset if you want to improve your game and<05:50:07.478> build<05:50:07.840> even<05:50:08.120> better<05:50:08.478> applications<05:50:09.478> now 05:50:09.708 --> 05:50:09.718 align:start position:0% and build even better applications now 05:50:09.718 --> 05:50:12.548 align:start position:0% and build even better applications now using<05:50:10.040> nextjs<05:50:10.798> instead<05:50:11.080> of<05:50:11.240> react<05:50:12.040> you<05:50:12.200> can<05:50:12.360> do 05:50:12.548 --> 05:50:12.558 align:start position:0% using nextjs instead of react you can do 05:50:12.558 --> 05:50:15.270 align:start position:0% using nextjs instead of react you can do so<05:50:12.840> in<05:50:12.958> your<05:50:13.120> nextjs<05:50:13.680> 13<05:50:14.120> course<05:50:14.760> so<05:50:14.958> just<05:50:15.120> go 05:50:15.270 --> 05:50:15.280 align:start position:0% so in your nextjs 13 course so just go 05:50:15.280 --> 05:50:19.548 align:start position:0% so in your nextjs 13 course so just go to<05:50:15.600> jm.pro<05:50:16.600> and<05:50:17.200> check<05:50:17.400> it<05:50:17.680> out<05:50:18.680> within<05:50:18.958> it<05:50:19.320> we 05:50:19.548 --> 05:50:19.558 align:start position:0% to jm.pro and check it out within it we 05:50:19.558 --> 05:50:22.270 align:start position:0% to jm.pro and check it out within it we have<05:50:19.958> many<05:50:20.240> more<05:50:20.600> active<05:50:20.958> lessons<05:50:21.638> and<05:50:21.920> a<05:50:22.080> lot 05:50:22.270 --> 05:50:22.280 align:start position:0% have many more active lessons and a lot 05:50:22.280 --> 05:50:24.670 align:start position:0% have many more active lessons and a lot of<05:50:22.520> interesting<05:50:22.958> things<05:50:23.200> to<05:50:23.360> learn<05:50:23.878> to<05:50:24.080> land<05:50:24.478> a 05:50:24.670 --> 05:50:24.680 align:start position:0% of interesting things to learn to land a 05:50:24.680 --> 05:50:28.510 align:start position:0% of interesting things to learn to land a developer<05:50:25.400> job<05:50:26.400> and<05:50:26.718> finally<05:50:27.360> huge<05:50:27.798> thanks<05:50:28.080> to 05:50:28.510 --> 05:50:28.520 align:start position:0% developer job and finally huge thanks to 05:50:28.520 --> 05:50:31.190 align:start position:0% developer job and finally huge thanks to aight<05:50:29.120> not<05:50:29.360> only<05:50:29.600> for<05:50:29.878> sponsoring<05:50:30.440> this<05:50:30.600> video 05:50:31.190 --> 05:50:31.200 align:start position:0% aight not only for sponsoring this video 05:50:31.200 --> 05:50:33.350 align:start position:0% aight not only for sponsoring this video but<05:50:31.360> for<05:50:31.638> building<05:50:32.080> such<05:50:32.240> a<05:50:32.478> phenomenal 05:50:33.350 --> 05:50:33.360 align:start position:0% but for building such a phenomenal 05:50:33.360 --> 05:50:36.230 align:start position:0% but for building such a phenomenal open-source<05:50:34.040> platform<05:50:34.718> that<05:50:34.840> lets<05:50:35.080> us<05:50:35.280> add<05:50:35.638> OD 05:50:36.230 --> 05:50:36.240 align:start position:0% open-source platform that lets us add OD 05:50:36.240 --> 05:50:39.110 align:start position:0% open-source platform that lets us add OD databases<05:50:37.160> function<05:50:37.520> and<05:50:37.760> storage<05:50:38.718> in<05:50:38.920> a 05:50:39.110 --> 05:50:39.120 align:start position:0% databases function and storage in a 05:50:39.120 --> 05:50:41.548 align:start position:0% databases function and storage in a matter<05:50:39.400> of<05:50:39.600> minutes<05:50:40.520> once<05:50:40.798> again<05:50:41.280> thank<05:50:41.440> you 05:50:41.548 --> 05:50:41.558 align:start position:0% matter of minutes once again thank you 05:50:41.558 --> 05:50:44.190 align:start position:0% matter of minutes once again thank you so<05:50:41.718> much<05:50:41.878> for<05:50:42.120> watching<05:50:43.040> and<05:50:43.360> I'll<05:50:43.520> see<05:50:43.760> you<05:50:44.040> in 05:50:44.190 --> 05:50:44.200 align:start position:0% so much for watching and I'll see you in 05:50:44.200 --> 05:50:48.878 align:start position:0% so much for watching and I'll see you in the<05:50:44.320> next<05:50:44.638> one<05:50:45.320> have<05:50:45.478> a<05:50:45.680> wonderful<05:50:46.280> day 2622311

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.