Skip to content

Commit b457789

Browse files
3230 Sign-in broken following 13.3.0 (#4221)
* 3230 Sign-in broken following 13.3.0 * 3230 Sign-in broken following 13.3.0 * 3230 Sign-in broken following 13.3.0 * PWA-3230::merged code for pwa-3214 git add packages/peregrine/lib/talons/SignIn/useSignIn.js * PWA-3230::merged code for pwa-3214 * PWA-3230::merged code for pwa-3214 * PWA-3230::merged code for pwa-3214 * PWA-3230::merged code for pwa-3214 --------- Co-authored-by: glo82145 <[email protected]> Co-authored-by: Aanchal Pawar <[email protected]>
1 parent 50a22b6 commit b457789

File tree

2 files changed

+32
-10
lines changed

2 files changed

+32
-10
lines changed

packages/peregrine/lib/talons/SignIn/__tests__/useSignIn.spec.js

+13
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,19 @@ test('handleForgotPassword triggers callbacks', () => {
200200
expect(initialProps.showForgotPassword).toHaveBeenCalled();
201201
});
202202

203+
test('forgotPasswordHandleEnterKeyPress triggers callbacks on click', () => {
204+
const mockUsername = '[email protected]';
205+
const mockApi = {
206+
getValue: jest.fn().mockReturnValue(mockUsername)
207+
};
208+
var event = new KeyboardEvent('keydown', { keyCode: 13 });
209+
document.dispatchEvent(event);
210+
211+
const { result } = renderHookWithProviders();
212+
act(() => result.current.setFormApi(mockApi));
213+
act(() => result.current.forgotPasswordHandleEnterKeyPress());
214+
});
215+
203216
test('handleCreateAccount triggers callbacks', () => {
204217
const mockUsername = '[email protected]';
205218
const mockApi = {

packages/peregrine/lib/talons/SignIn/useSignIn.js

+19-10
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,13 @@ import { useCartContext } from '../../context/cart';
77
import { useUserContext } from '../../context/user';
88
import { useAwaitQuery } from '../../hooks/useAwaitQuery';
99
import { retrieveCartId } from '../../store/actions/cart';
10+
import { useDropdown } from '@magento/peregrine/lib/hooks/useDropdown';
1011

1112
import DEFAULT_OPERATIONS from './signIn.gql';
1213
import { useEventingContext } from '../../context/eventing';
1314

1415
export const useSignIn = props => {
1516
const {
16-
handleTriggerClick,
1717
getCartDetailsQuery,
1818
setDefaultUsername,
1919
showCreateAccount,
@@ -64,10 +64,17 @@ export const useSignIn = props => {
6464
const formApiRef = useRef(null);
6565
const setFormApi = useCallback(api => (formApiRef.current = api), []);
6666

67+
const { setExpanded: setCurrencyMenuIsOpen } = useDropdown();
68+
69+
const handleTrigger = useCallback(() => {
70+
// Toggle Stores Menu.
71+
setCurrencyMenuIsOpen(isOpen => !isOpen);
72+
}, [setCurrencyMenuIsOpen]);
73+
6774
const handleSubmit = useCallback(
6875
async ({ email, password }) => {
6976
setIsSigningIn(true);
70-
handleTriggerClick();
77+
handleTrigger();
7178
try {
7279
// Get source cart id (guest cart id).
7380
const sourceCartId = cartId;
@@ -98,13 +105,15 @@ export const useSignIn = props => {
98105
});
99106
const destinationCartId = await retrieveCartId();
100107

101-
// Merge the guest cart into the customer cart.
102-
await mergeCarts({
103-
variables: {
104-
destinationCartId,
105-
sourceCartId
106-
}
107-
});
108+
if (destinationCartId != sourceCartId) {
109+
// Merge the guest cart into the customer cart.
110+
await mergeCarts({
111+
variables: {
112+
destinationCartId,
113+
sourceCartId
114+
}
115+
});
116+
}
108117

109118
// Ensure old stores are updated with any new data.
110119

@@ -145,7 +154,7 @@ export const useSignIn = props => {
145154
getCartDetails,
146155
fetchCartDetails,
147156
dispatch,
148-
handleTriggerClick
157+
handleTrigger
149158
]
150159
);
151160

0 commit comments

Comments
 (0)