diff --git a/src/components/LoginButton.tsx b/src/components/LoginButton.tsx index 8c6e19d..22f3296 100644 --- a/src/components/LoginButton.tsx +++ b/src/components/LoginButton.tsx @@ -21,6 +21,7 @@ export default function LoginButton(props: LoginButton) { authType, rerequest, reauthorize, + extras, onError, onSuccess, ...rest @@ -40,6 +41,7 @@ export default function LoginButton(props: LoginButton) { authType, rerequest, reauthorize, + extras, }); onSuccess?.(response); diff --git a/src/hooks/useLogin.ts b/src/hooks/useLogin.ts index 8f4a0a6..e21505e 100644 --- a/src/hooks/useLogin.ts +++ b/src/hooks/useLogin.ts @@ -9,6 +9,7 @@ export type LoginOptions = { authType?: string[]; rerequest?: boolean; reauthorize?: boolean; + extras?: Record; }; export default function useLogin() { diff --git a/src/utils/Facebook.ts b/src/utils/Facebook.ts index 94bc64f..8c4385a 100644 --- a/src/utils/Facebook.ts +++ b/src/utils/Facebook.ts @@ -19,6 +19,7 @@ export type LoginOptions = { authType?: string[]; rerequest?: boolean; reauthorize?: boolean; + extras?: Record; }; declare global { interface Window { @@ -173,11 +174,12 @@ export default class Facebook { } async login(options: LoginOptions) { - const { scope, authType = [], returnScopes, rerequest, reauthorize } = options; + const { scope, authType = [], returnScopes, rerequest, reauthorize, extras } = options; const loginOptions: { return_scopes?: boolean; auth_type?: string; scope?: string; + extras?: Record; } = { scope, }; @@ -198,6 +200,10 @@ export default class Facebook { loginOptions.auth_type = authType.join(','); } + if (extras) { + loginOptions.extras = extras; + } + return this.process(Namespace.LOGIN, [], [loginOptions]); }