DB-GPT/web/lib/google-one-tap.ts
Dreammy23 471689ba20
feat(web): Unified frontend code style (#1923)
Co-authored-by: Fangyin Cheng <staneyffer@gmail.com>
Co-authored-by: 谨欣 <echo.cmy@antgroup.com>
Co-authored-by: 严志勇 <yanzhiyong@tiansuixiansheng.com>
Co-authored-by: yanzhiyong <932374019@qq.com>
2024-08-30 14:03:06 +08:00

28 lines
896 B
TypeScript

import { CredentialResponse, IdConfiguration } from 'google-one-tap';
export default function googleOneTap(
{ client_id, auto_select = false, cancel_on_tap_outside = false, context = 'signin' }: IdConfiguration,
callback: (response: CredentialResponse) => void,
otherOptions?: Omit<IdConfiguration, 'client_id'>,
) {
const contextValue = ['signin', 'signup', 'use'].includes(context) ? context : 'signin';
if (!client_id) {
throw new Error('client_id is required');
}
if (typeof window !== 'undefined' && window.document) {
try {
window.google.accounts.id.initialize({
client_id: client_id,
callback: callback,
auto_select: auto_select,
cancel_on_tap_outside: cancel_on_tap_outside,
context: contextValue,
...otherOptions,
});
window.google.accounts.id.prompt();
} catch {
/* empty */
}
}
}