Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:02,090 --> 00:00:04,530
So now that the Context is defined
2
00:00:04,530 --> 00:00:09,410
and we wrap our components here with our Context provider,
3
00:00:09,410 --> 00:00:12,130
it's time to start using that Context.
4
00:00:12,130 --> 00:00:15,340
Now I mentioned that I wanna show the notification here
5
00:00:15,340 --> 00:00:17,820
in this underscore App.js file.
6
00:00:17,820 --> 00:00:20,680
And I would actually have problems with that
7
00:00:20,680 --> 00:00:22,820
because that's also the file
8
00:00:22,820 --> 00:00:26,810
where we wrap with our Notification Context Provider.
9
00:00:26,810 --> 00:00:29,040
So this component itself,
10
00:00:29,040 --> 00:00:32,150
this MyApp component in which I use the notification
11
00:00:32,150 --> 00:00:36,110
is not wrapped by Notification Context Provider
12
00:00:36,110 --> 00:00:38,610
because it's this component's JSX code
13
00:00:38,610 --> 00:00:40,320
where we do the wrapping.
14
00:00:40,320 --> 00:00:43,450
Hence we can't tap into our Context here
15
00:00:43,450 --> 00:00:46,290
inside of this component function.
16
00:00:46,290 --> 00:00:47,900
But that's no problem,
17
00:00:47,900 --> 00:00:49,880
we can get rid of the notification here
18
00:00:49,880 --> 00:00:54,540
and cut it and remove its import,
19
00:00:54,540 --> 00:00:57,520
and instead of just use the layout component
20
00:00:57,520 --> 00:01:01,930
because that also is a wrapper around all our other content.
21
00:01:01,930 --> 00:01:05,260
And it's the perfect component for rendering a notification.
22
00:01:05,260 --> 00:01:08,100
Also, if we have a look at its name, layout,
23
00:01:08,100 --> 00:01:13,100
it is per definition, a wrapper for visual content.
24
00:01:13,460 --> 00:01:16,050
And therefore, if I go to my layout component,
25
00:01:16,050 --> 00:01:18,750
I'll simply add the notification there,
26
00:01:18,750 --> 00:01:21,010
and then of course also add the import
27
00:01:21,010 --> 00:01:25,873
for the notification component from the UI folder like this.
28
00:01:26,820 --> 00:01:28,760
And now in the layout component,
29
00:01:28,760 --> 00:01:31,430
we can tap into our Context.
30
00:01:31,430 --> 00:01:34,380
And for that I'll import the use Context hook
31
00:01:34,380 --> 00:01:36,230
which allows us to do that.
32
00:01:36,230 --> 00:01:40,450
We can call use Context and then pass the Context
33
00:01:40,450 --> 00:01:42,870
to which we want to establish a connection
34
00:01:42,870 --> 00:01:46,220
as a argument to use Context.
35
00:01:46,220 --> 00:01:47,330
So to make that work,
36
00:01:47,330 --> 00:01:51,040
we should import the Context to which we want to connect.
37
00:01:51,040 --> 00:01:53,770
And that's the Notification Context,
38
00:01:53,770 --> 00:01:57,180
not the Notification Context Provider,
39
00:01:57,180 --> 00:02:00,350
but just the Notification Context,
40
00:02:00,350 --> 00:02:05,350
because I just want to connect to this Context object here.
41
00:02:06,750 --> 00:02:10,630
So not the provider component, but this Context object,
42
00:02:10,630 --> 00:02:14,100
this one, which is exported as a default.
43
00:02:14,100 --> 00:02:17,150
That's what I need for use Context.
44
00:02:17,150 --> 00:02:18,880
So in the layout component,
45
00:02:18,880 --> 00:02:23,660
that's what I'll import from my store folder.
46
00:02:23,660 --> 00:02:27,540
So for my store Notification Context file.
47
00:02:27,540 --> 00:02:32,540
So pass Notification Context as a argument to use Context
48
00:02:32,770 --> 00:02:37,083
and that gives us access to that Context value.
49
00:02:38,120 --> 00:02:40,080
Now we can use that Context
50
00:02:40,080 --> 00:02:43,520
to call, show, or a hide notification,
51
00:02:43,520 --> 00:02:46,930
or to get the current notification data.
52
00:02:46,930 --> 00:02:50,130
And that's what we need here in this layout component
53
00:02:50,130 --> 00:02:52,773
to conditionally show the notification.
54
00:02:53,830 --> 00:02:56,480
So here I'll then get access to the notification,
55
00:02:56,480 --> 00:02:58,143
and I'll name this activeNotification.
56
00:03:01,100 --> 00:03:04,820
So I'll store it in notification, managed by my Context
57
00:03:04,820 --> 00:03:07,670
in a constant here in this component.
58
00:03:07,670 --> 00:03:09,560
And if that is not null,
59
00:03:09,560 --> 00:03:13,340
so if we have an activeNotification in our Context,
60
00:03:13,340 --> 00:03:15,970
then I want to render this notification
61
00:03:15,970 --> 00:03:20,350
with the data stored in activeNotification.
62
00:03:20,350 --> 00:03:23,360
So we want to render notification conditionally,
63
00:03:23,360 --> 00:03:26,040
and we can do it as we always do it,
64
00:03:26,040 --> 00:03:31,040
with this syntax here, and then just populate the props here
65
00:03:32,150 --> 00:03:36,750
with the active values from the active notification.
66
00:03:36,750 --> 00:03:39,270
So activeNotification.title,
67
00:03:39,270 --> 00:03:43,700
and also set the message to activeNotification.message,
68
00:03:43,700 --> 00:03:45,290
and for the status,
69
00:03:45,290 --> 00:03:49,253
I'll set this to activeNotification.status.
70
00:03:50,390 --> 00:03:53,930
So now this notification component is rendered
71
00:03:53,930 --> 00:03:57,730
whenever we have an activeNotification in our store,
72
00:03:57,730 --> 00:03:59,063
in our Context.
73
00:04:00,690 --> 00:04:04,520
At the moment though, we never have an activeNotification
74
00:04:04,520 --> 00:04:06,470
because we have no place
75
00:04:06,470 --> 00:04:09,670
that would trigger the show notification handler
76
00:04:09,670 --> 00:04:14,100
by calling show notification on the Context object.
77
00:04:14,100 --> 00:04:16,240
And that's what I want to change now.
78
00:04:16,240 --> 00:04:19,120
Now that all the Context is set up,
79
00:04:19,120 --> 00:04:21,540
I want to dive into the components
80
00:04:21,540 --> 00:04:25,150
where we do send http requests
81
00:04:25,150 --> 00:04:27,880
to then call show notification
82
00:04:27,880 --> 00:04:30,350
from inside those components
83
00:04:30,350 --> 00:04:33,430
to show and update that notification
84
00:04:33,430 --> 00:04:35,613
with the appropriate data.
6674
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.