feature/IO-3255-simplified-parts-management -Checkpoint
This commit is contained in:
@@ -10,6 +10,7 @@ import RomeLogo from "../../assets/RomeOnlineBlue.png";
|
||||
import ImEXOnlineLogo from "../../assets/logo192.png";
|
||||
import { emailSignInStart, sendPasswordReset } from "../../redux/user/user.actions";
|
||||
import { selectCurrentUser, selectLoginLoading, selectSignInError } from "../../redux/user/user.selectors";
|
||||
import { selectIsPartsEntry } from "../../redux/application/application.selectors";
|
||||
import InstanceRenderManager from "../../utils/instanceRenderMgr";
|
||||
import AlertComponent from "../alert/alert.component";
|
||||
import "./sign-in-form.styles.scss";
|
||||
@@ -17,7 +18,8 @@ import "./sign-in-form.styles.scss";
|
||||
const mapStateToProps = createStructuredSelector({
|
||||
currentUser: selectCurrentUser,
|
||||
signInError: selectSignInError,
|
||||
loginLoading: selectLoginLoading
|
||||
loginLoading: selectLoginLoading,
|
||||
isPartsEntry: selectIsPartsEntry
|
||||
});
|
||||
|
||||
const mapDispatchToProps = (dispatch) => ({
|
||||
@@ -25,7 +27,7 @@ const mapDispatchToProps = (dispatch) => ({
|
||||
sendPasswordReset: (email) => dispatch(sendPasswordReset(email))
|
||||
});
|
||||
|
||||
export function SignInComponent({ emailSignInStart, currentUser, signInError, sendPasswordReset, loginLoading }) {
|
||||
export function SignInComponent({ emailSignInStart, currentUser, signInError, loginLoading, isPartsEntry }) {
|
||||
const { redirect } = queryString.parse(useLocation().search);
|
||||
const navigate = useNavigate();
|
||||
|
||||
@@ -38,15 +40,16 @@ export function SignInComponent({ emailSignInStart, currentUser, signInError, se
|
||||
|
||||
useEffect(() => {
|
||||
if (currentUser.authorized === true) {
|
||||
navigate(redirect || "/manage/");
|
||||
navigate(redirect || (isPartsEntry ? "/parts/" : "/manage/"));
|
||||
}
|
||||
}, [currentUser, redirect, navigate]);
|
||||
}, [currentUser, redirect, navigate, isPartsEntry]);
|
||||
|
||||
useEffect(() => {
|
||||
const handleSeamlessLogin = (event) => {
|
||||
console.log("Received message event:", event); // Log the received message event
|
||||
|
||||
if (event.data?.type !== "seamlessLoginRequest") return; // Filter to only handle relevant messages
|
||||
console.log("Received seamless login request:", event.data);
|
||||
|
||||
const { email, password } = event.data || {}; // Use event.data instead of event.detail
|
||||
const requestOrigin = event.origin; // Use event.origin automatically
|
||||
|
||||
@@ -62,7 +65,7 @@ export function SignInComponent({ emailSignInStart, currentUser, signInError, se
|
||||
// Check if the user is already logged in
|
||||
if (currentUser.authorized === true) {
|
||||
console.log("User is already logged in, redirecting...");
|
||||
navigate(redirect || "/manage/");
|
||||
navigate(redirect || (isPartsEntry ? "/parts/" : "/manage/"));
|
||||
window.parent.postMessage({ type: "seamlessLoginResponse", status: "already_logged_in" }, requestOrigin || "*");
|
||||
return;
|
||||
}
|
||||
@@ -72,12 +75,12 @@ export function SignInComponent({ emailSignInStart, currentUser, signInError, se
|
||||
window.parent.postMessage({ type: "seamlessLoginResponse", status: "login_attempted" }, requestOrigin || "*");
|
||||
};
|
||||
|
||||
window.addEventListener("message", handleSeamlessLogin); // Listen for "message"
|
||||
window.addEventListener("message", handleSeamlessLogin);
|
||||
|
||||
return () => {
|
||||
window.removeEventListener("message", handleSeamlessLogin);
|
||||
};
|
||||
}, [emailSignInStart, currentUser, navigate, redirect]);
|
||||
}, [emailSignInStart, currentUser, navigate, redirect, isPartsEntry]);
|
||||
|
||||
return (
|
||||
<div className="login-container">
|
||||
|
||||
Reference in New Issue
Block a user