react-web-native-sketch
Version:
[TODO: We need an overview of how this can be used via npm vs as a local package]
210 lines • 8.46 kB
JavaScript
;
var __assign = (this && this.__assign) || Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
// import { googleSignOut } from '../../nativeComponents/ButtonGoogleComponent/googleLoginUtils';
var platform_1 = require("../../primitives/platform/platform");
var commonActions_1 = require("./commonActions");
var utils_1 = require("./utils");
var TypeKeys;
(function (TypeKeys) {
TypeKeys["FB_LOAD_SDK"] = "react-web-native-sketch/auth/FB_LOAD_SDK";
TypeKeys["FB_SDK_LOADED"] = "react-web-native-sketch/auth/FB_SDK_LOADED";
TypeKeys["FB_STATUS_CHANGE"] = "react-web-native-sketch/auth/FB_STATUS_CHANGE";
TypeKeys["GOOGLE_LOAD_SDK"] = "react-web-native-sketch/auth/GOOGLE_LOAD_SDK";
TypeKeys["GOOGLE_SDK_LOADED"] = "react-web-native-sketch/auth/GOOGLE_SDK_LOADED";
})(TypeKeys = exports.TypeKeys || (exports.TypeKeys = {}));
var initialState = {
forgotSuccess: undefined,
googleSdkIsLoaded: false,
loadedFbSdk: false,
loadingFbSdk: false,
loadingForgot: false,
loadingGoogleSdk: false,
loggingIn: false,
loggingOut: false,
signingUp: false,
validateSuccess: false,
validating: false,
};
exports.auth = function (state, action) {
if (state === void 0) { state = initialState; }
switch (action.type) {
case TypeKeys.FB_LOAD_SDK:
return __assign({}, state, { loadingFbSdk: true });
case TypeKeys.FB_SDK_LOADED:
return __assign({}, state, { loadingFbSdk: false, loadedFbSdk: true });
case TypeKeys.FB_STATUS_CHANGE:
return __assign({}, state);
case commonActions_1.CommonTypeKeys.SOCIAL_LOGIN:
case commonActions_1.CommonTypeKeys.LOGIN:
return __assign({}, state, { loggingIn: true });
case commonActions_1.CommonTypeKeys.SOCIAL_LOGIN_SUCCESS:
case commonActions_1.CommonTypeKeys.LOGIN_SUCCESS:
return __assign({}, state, { loggingIn: false });
case commonActions_1.CommonTypeKeys.LOGIN_FAIL:
return __assign({}, state, { loggingIn: false });
case commonActions_1.CommonTypeKeys.SOCIAL_LOGIN_FAIL:
// fbSignOut();
// googleSignOut();
return __assign({}, state, { loggingIn: false });
case commonActions_1.CommonTypeKeys.SIGNUP:
return __assign({}, state, { signingUp: true });
case commonActions_1.CommonTypeKeys.SIGNUP_SUCCESS:
return __assign({}, state, { signingUp: false });
case commonActions_1.CommonTypeKeys.SIGNUP_FAIL:
return __assign({}, state, { signingUp: false });
case commonActions_1.CommonTypeKeys.VALIDATE_2FA:
return __assign({}, state, { validating: true, validateSuccess: false });
case commonActions_1.CommonTypeKeys.VALIDATE_2FA_SUCCESS:
return __assign({}, state, { validating: false, validateSuccess: true });
case commonActions_1.CommonTypeKeys.VALIDATE_2FA_FAIL:
return __assign({}, state, { validating: false, validateSuccess: false });
case commonActions_1.CommonTypeKeys.LOGOUT:
return __assign({}, state, { loggingOut: true });
case commonActions_1.CommonTypeKeys.LOGOUT_SUCCESS:
if (platform_1.isWeb) {
localStorage.removeItem(utils_1.getUserDataLocalStorageName());
document.cookie = 'auth=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
// googleSignOut();
// fbSignOut();
return __assign({}, state, { loggingOut: false });
case commonActions_1.CommonTypeKeys.LOGOUT_FAIL:
return __assign({}, state, { loggingOut: false });
case TypeKeys.GOOGLE_LOAD_SDK:
return __assign({}, state, { loadingGoogleSdk: true, googleSdkIsLoaded: false });
case TypeKeys.GOOGLE_SDK_LOADED:
return __assign({}, state, { loadingGoogleSdk: false, googleSdkIsLoaded: true });
default:
return state;
}
};
function fbSdkLoaded() {
return {
type: TypeKeys.FB_SDK_LOADED
};
}
exports.fbSdkLoaded = fbSdkLoaded;
function fbStatusChangeCallback(inviteCode, response) {
if (response.status === 'connected') {
var authResponse = response.authResponse;
return {
types: [commonActions_1.CommonTypeKeys.SOCIAL_LOGIN, commonActions_1.CommonTypeKeys.SOCIAL_LOGIN_SUCCESS, commonActions_1.CommonTypeKeys.SOCIAL_LOGIN_FAIL],
method: 'post',
url: 'oauth-login',
body: {
providerUserId: authResponse.userID,
oauthToken: authResponse.accessToken,
providerName: 'facebook',
invite_code: inviteCode,
redirect_uri: null
},
};
}
else if (response.status === 'not_authorized') {
console.log('Please log into this app.');
}
else {
console.log('Please log into Facebook.');
}
return {
type: TypeKeys.FB_STATUS_CHANGE
};
}
exports.fbStatusChangeCallback = fbStatusChangeCallback;
exports.fbLoadSdk = function (appId, fbSdkLoaded, fbStatusChangeCallback, inviteCode) {
window.fbAsyncInit = function () {
FB.init({
appId: appId,
cookie: false,
xfbml: true,
version: 'v2.5'
});
FB.Event.subscribe('auth.statusChange', fbStatusChangeCallback.bind(null, inviteCode));
fbSdkLoaded();
};
// Load the SDK asynchronously
(function (d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id))
return;
js = d.createElement(s);
js.id = id;
js.src = '//connect.facebook.net/en_US/sdk.js';
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
return {
type: TypeKeys.FB_LOAD_SDK
};
};
exports.loadGoogleSdk = function () {
return {
type: TypeKeys.GOOGLE_LOAD_SDK,
};
};
exports.loadedGoogleSdk = function () {
return {
type: TypeKeys.GOOGLE_SDK_LOADED,
};
};
exports.login = function (body, url, method) {
return {
types: [commonActions_1.CommonTypeKeys.LOGIN, commonActions_1.CommonTypeKeys.LOGIN_SUCCESS, commonActions_1.CommonTypeKeys.LOGIN_FAIL],
method: method,
url: url,
body: body,
};
};
exports.socialLogin = function (url, method, providerName, oauthToken, providerUserId, invite_code, redirect_uri) {
return {
types: [commonActions_1.CommonTypeKeys.SOCIAL_LOGIN, commonActions_1.CommonTypeKeys.SOCIAL_LOGIN_SUCCESS, commonActions_1.CommonTypeKeys.SOCIAL_LOGIN_FAIL],
method: method,
url: url,
body: { providerName: providerName, oauthToken: oauthToken, providerUserId: providerUserId, invite_code: invite_code, redirect_uri: redirect_uri },
};
};
exports.signup = function (body, url, method) {
return {
types: [commonActions_1.CommonTypeKeys.SIGNUP, commonActions_1.CommonTypeKeys.SIGNUP_SUCCESS, commonActions_1.CommonTypeKeys.SIGNUP_FAIL],
method: method,
url: url,
body: body,
};
};
exports.validate2FA = function (body, url, method, types) {
return {
types: types && types.length == 3
? types
: [commonActions_1.CommonTypeKeys.VALIDATE_2FA, commonActions_1.CommonTypeKeys.VALIDATE_2FA_SUCCESS, commonActions_1.CommonTypeKeys.VALIDATE_2FA_FAIL],
method: method,
url: url,
body: body,
};
};
exports.logout = function (body, url, method) {
return {
types: [commonActions_1.CommonTypeKeys.LOGOUT, commonActions_1.CommonTypeKeys.LOGOUT_SUCCESS, commonActions_1.CommonTypeKeys.LOGOUT_FAIL],
url: url,
method: method,
body: body,
};
};
exports.logoutLocal = function (props) {
if (platform_1.isWeb) {
localStorage.removeItem(utils_1.getUserDataLocalStorageName());
document.cookie = 'auth=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
}
// googleSignOut();
// fbSignOut();
return !!props
? props
: { type: commonActions_1.CommonTypeKeys.LOGOUT_SUCCESS };
};
//# sourceMappingURL=auth.js.map