1
1
import React from "react" ;
2
- import Login , { LoginProps } from "./Login" ;
2
+ import Login , { LoginProps , RenderLoginProps } from "./Login" ;
3
3
4
4
export type CustomProvider = {
5
5
id : string ;
@@ -16,62 +16,96 @@ export type LoginProviderProps = {
16
16
postLoginRedirect ?: string ;
17
17
customProviders ?: CustomProvider [ ] ;
18
18
label ?: ( name : string ) => string ;
19
+ customRenderer ?: ( props : RenderLoginProps ) => JSX . Element ;
19
20
} ;
20
21
21
- type LoginWrapperProps = Pick < LoginProps , "postLoginRedirect" | "label" > ;
22
+ type LoginWrapperProps = Pick <
23
+ LoginProps ,
24
+ "postLoginRedirect" | "label" | "customRenderer"
25
+ > ;
22
26
23
- const AzureADLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
27
+ const AzureADLogin = ( {
28
+ postLoginRedirect,
29
+ label,
30
+ customRenderer,
31
+ } : LoginWrapperProps ) => (
24
32
< Login
25
33
name = "Azure AD"
26
34
id = "aad"
27
35
postLoginRedirect = { postLoginRedirect }
28
36
label = { label }
29
37
key = "aad"
38
+ customRenderer = { customRenderer }
30
39
/>
31
40
) ;
32
- const FacebookLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
41
+ const FacebookLogin = ( {
42
+ postLoginRedirect,
43
+ label,
44
+ customRenderer,
45
+ } : LoginWrapperProps ) => (
33
46
< Login
34
47
name = "Facebook"
35
48
id = "facebook"
36
49
postLoginRedirect = { postLoginRedirect }
37
50
label = { label }
38
51
key = "facebook"
52
+ customRenderer = { customRenderer }
39
53
/>
40
54
) ;
41
- const TwitterLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
55
+ const TwitterLogin = ( {
56
+ postLoginRedirect,
57
+ label,
58
+ customRenderer,
59
+ } : LoginWrapperProps ) => (
42
60
< Login
43
61
name = "Twitter"
44
62
id = "twitter"
45
63
postLoginRedirect = { postLoginRedirect }
46
64
label = { label }
47
65
key = "twitter"
66
+ customRenderer = { customRenderer }
48
67
/>
49
68
) ;
50
- const GitHubLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
69
+ const GitHubLogin = ( {
70
+ postLoginRedirect,
71
+ label,
72
+ customRenderer,
73
+ } : LoginWrapperProps ) => (
51
74
< Login
52
75
name = "GitHub"
53
76
id = "github"
54
77
postLoginRedirect = { postLoginRedirect }
55
78
label = { label }
56
79
key = "github"
80
+ customRenderer = { customRenderer }
57
81
/>
58
82
) ;
59
- const GoogleLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
83
+ const GoogleLogin = ( {
84
+ postLoginRedirect,
85
+ label,
86
+ customRenderer,
87
+ } : LoginWrapperProps ) => (
60
88
< Login
61
89
name = "Google"
62
90
id = "google"
63
91
postLoginRedirect = { postLoginRedirect }
64
92
label = { label }
65
93
key = "google"
94
+ customRenderer = { customRenderer }
66
95
/>
67
96
) ;
68
- const AppleLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
97
+ const AppleLogin = ( {
98
+ postLoginRedirect,
99
+ label,
100
+ customRenderer,
101
+ } : LoginWrapperProps ) => (
69
102
< Login
70
103
name = "Apple"
71
104
id = "apple"
72
105
postLoginRedirect = { postLoginRedirect }
73
106
label = { label }
74
107
key = "apple"
108
+ customRenderer = { customRenderer }
75
109
/>
76
110
) ;
77
111
@@ -80,13 +114,15 @@ const CustomProviderLogin = ({
80
114
id,
81
115
name,
82
116
label,
117
+ customRenderer,
83
118
} : LoginWrapperProps & CustomProvider ) => (
84
119
< Login
85
120
name = { name || id }
86
121
id = { id }
87
122
postLoginRedirect = { postLoginRedirect }
88
123
label = { label }
89
124
key = { id }
125
+ customRenderer = { customRenderer }
90
126
/>
91
127
) ;
92
128
@@ -99,6 +135,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
99
135
postLoginRedirect = { props . postLoginRedirect }
100
136
label = { props . label }
101
137
key = "aad"
138
+ customRenderer = { props . customRenderer }
102
139
/>
103
140
) ;
104
141
}
@@ -108,6 +145,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
108
145
postLoginRedirect = { props . postLoginRedirect }
109
146
label = { props . label }
110
147
key = "apple"
148
+ customRenderer = { props . customRenderer }
111
149
/>
112
150
) ;
113
151
}
@@ -117,6 +155,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
117
155
postLoginRedirect = { props . postLoginRedirect }
118
156
label = { props . label }
119
157
key = "facebook"
158
+ customRenderer = { props . customRenderer }
120
159
/>
121
160
) ;
122
161
}
@@ -126,6 +165,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
126
165
postLoginRedirect = { props . postLoginRedirect }
127
166
label = { props . label }
128
167
key = "twitter"
168
+ customRenderer = { props . customRenderer }
129
169
/>
130
170
) ;
131
171
}
@@ -135,6 +175,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
135
175
postLoginRedirect = { props . postLoginRedirect }
136
176
label = { props . label }
137
177
key = "github"
178
+ customRenderer = { props . customRenderer }
138
179
/>
139
180
) ;
140
181
}
@@ -144,6 +185,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
144
185
postLoginRedirect = { props . postLoginRedirect }
145
186
label = { props . label }
146
187
key = "google"
188
+ customRenderer = { props . customRenderer }
147
189
/>
148
190
) ;
149
191
}
@@ -157,6 +199,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
157
199
postLoginRedirect = { props . postLoginRedirect }
158
200
label = { props . label }
159
201
key = { provider . id }
202
+ customRenderer = { props . customRenderer }
160
203
/>
161
204
) ;
162
205
}
0 commit comments