11import React from "react" ;
2- import Login , { LoginProps } from "./Login" ;
2+ import Login , { LoginProps , RenderLoginProps } from "./Login" ;
33
44export type CustomProvider = {
55 id : string ;
@@ -16,62 +16,96 @@ export type LoginProviderProps = {
1616 postLoginRedirect ?: string ;
1717 customProviders ?: CustomProvider [ ] ;
1818 label ?: ( name : string ) => string ;
19+ customRenderer ?: ( props : RenderLoginProps ) => JSX . Element ;
1920} ;
2021
21- type LoginWrapperProps = Pick < LoginProps , "postLoginRedirect" | "label" > ;
22+ type LoginWrapperProps = Pick <
23+ LoginProps ,
24+ "postLoginRedirect" | "label" | "customRenderer"
25+ > ;
2226
23- const AzureADLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
27+ const AzureADLogin = ( {
28+ postLoginRedirect,
29+ label,
30+ customRenderer,
31+ } : LoginWrapperProps ) => (
2432 < Login
2533 name = "Azure AD"
2634 id = "aad"
2735 postLoginRedirect = { postLoginRedirect }
2836 label = { label }
2937 key = "aad"
38+ customRenderer = { customRenderer }
3039 />
3140) ;
32- const FacebookLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
41+ const FacebookLogin = ( {
42+ postLoginRedirect,
43+ label,
44+ customRenderer,
45+ } : LoginWrapperProps ) => (
3346 < Login
3447 name = "Facebook"
3548 id = "facebook"
3649 postLoginRedirect = { postLoginRedirect }
3750 label = { label }
3851 key = "facebook"
52+ customRenderer = { customRenderer }
3953 />
4054) ;
41- const TwitterLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
55+ const TwitterLogin = ( {
56+ postLoginRedirect,
57+ label,
58+ customRenderer,
59+ } : LoginWrapperProps ) => (
4260 < Login
4361 name = "Twitter"
4462 id = "twitter"
4563 postLoginRedirect = { postLoginRedirect }
4664 label = { label }
4765 key = "twitter"
66+ customRenderer = { customRenderer }
4867 />
4968) ;
50- const GitHubLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
69+ const GitHubLogin = ( {
70+ postLoginRedirect,
71+ label,
72+ customRenderer,
73+ } : LoginWrapperProps ) => (
5174 < Login
5275 name = "GitHub"
5376 id = "github"
5477 postLoginRedirect = { postLoginRedirect }
5578 label = { label }
5679 key = "github"
80+ customRenderer = { customRenderer }
5781 />
5882) ;
59- const GoogleLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
83+ const GoogleLogin = ( {
84+ postLoginRedirect,
85+ label,
86+ customRenderer,
87+ } : LoginWrapperProps ) => (
6088 < Login
6189 name = "Google"
6290 id = "google"
6391 postLoginRedirect = { postLoginRedirect }
6492 label = { label }
6593 key = "google"
94+ customRenderer = { customRenderer }
6695 />
6796) ;
68- const AppleLogin = ( { postLoginRedirect, label } : LoginWrapperProps ) => (
97+ const AppleLogin = ( {
98+ postLoginRedirect,
99+ label,
100+ customRenderer,
101+ } : LoginWrapperProps ) => (
69102 < Login
70103 name = "Apple"
71104 id = "apple"
72105 postLoginRedirect = { postLoginRedirect }
73106 label = { label }
74107 key = "apple"
108+ customRenderer = { customRenderer }
75109 />
76110) ;
77111
@@ -80,13 +114,15 @@ const CustomProviderLogin = ({
80114 id,
81115 name,
82116 label,
117+ customRenderer,
83118} : LoginWrapperProps & CustomProvider ) => (
84119 < Login
85120 name = { name || id }
86121 id = { id }
87122 postLoginRedirect = { postLoginRedirect }
88123 label = { label }
89124 key = { id }
125+ customRenderer = { customRenderer }
90126 />
91127) ;
92128
@@ -99,6 +135,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
99135 postLoginRedirect = { props . postLoginRedirect }
100136 label = { props . label }
101137 key = "aad"
138+ customRenderer = { props . customRenderer }
102139 />
103140 ) ;
104141 }
@@ -108,6 +145,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
108145 postLoginRedirect = { props . postLoginRedirect }
109146 label = { props . label }
110147 key = "apple"
148+ customRenderer = { props . customRenderer }
111149 />
112150 ) ;
113151 }
@@ -117,6 +155,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
117155 postLoginRedirect = { props . postLoginRedirect }
118156 label = { props . label }
119157 key = "facebook"
158+ customRenderer = { props . customRenderer }
120159 />
121160 ) ;
122161 }
@@ -126,6 +165,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
126165 postLoginRedirect = { props . postLoginRedirect }
127166 label = { props . label }
128167 key = "twitter"
168+ customRenderer = { props . customRenderer }
129169 />
130170 ) ;
131171 }
@@ -135,6 +175,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
135175 postLoginRedirect = { props . postLoginRedirect }
136176 label = { props . label }
137177 key = "github"
178+ customRenderer = { props . customRenderer }
138179 />
139180 ) ;
140181 }
@@ -144,6 +185,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
144185 postLoginRedirect = { props . postLoginRedirect }
145186 label = { props . label }
146187 key = "google"
188+ customRenderer = { props . customRenderer }
147189 />
148190 ) ;
149191 }
@@ -157,6 +199,7 @@ const StaticWebAuthLogins = (props: LoginProviderProps) => {
157199 postLoginRedirect = { props . postLoginRedirect }
158200 label = { props . label }
159201 key = { provider . id }
202+ customRenderer = { props . customRenderer }
160203 />
161204 ) ;
162205 }
0 commit comments