react-native-gigya-sdk
Version:
SAP CDC/Gigya SDK for your React Native applications
53 lines (49 loc) • 1.52 kB
JavaScript
import { NativeModules } from 'react-native';
const {
GigyaSdk
} = NativeModules;
import logout from './logout';
import getState from './getState';
import isGigyaError from './isGigyaError';
import { setState } from '../internals/state';
import handleSdkCall from '../internals/handleSdkCall';
import clearErrorState from '../internals/clearErrorState';
import saveAuthenticationAttempt from '../internals/saveAuthenticationAttempt';
export default function (provider, params) {
return new Promise(async (resolve, reject) => {
if (params !== null && params !== void 0 && params.loginMode && !params.regToken) {
reject(new Error("regToken is required when using loginMode. Use GigyaSdk.linkToSocialProvider() instead if you're trying to resolve an account conflict."));
}
try {
const state = await getState();
const {
lang,
...rest
} = params || {
lang: state.lang
};
await logout();
const response = await handleSdkCall(GigyaSdk.socialLogin(provider, JSON.stringify({
lang,
...(rest && rest)
})));
await setState({
UID: response.UID
});
try {
await clearErrorState();
} catch (err) {}
resolve(response);
} catch (e) {
if (await isGigyaError(e)) {
try {
await saveAuthenticationAttempt(provider, e);
} catch (err) {
return reject(err);
}
}
reject(e);
}
});
}
//# sourceMappingURL=socialLogin.js.map