Make AuthModal works with decoupled Pairing creation
This commit is contained in:
parent
e081585fd9
commit
87483af243
@ -70,6 +70,20 @@ export default function AuthModal({ isOpen, onClose }: AuthModalProps) {
|
||||
iframeRef.current.contentWindow!.postMessage({ type: 'GET_PAIRING_ID', accessToken: message.accessToken, messageId }, targetOrigin);
|
||||
break;
|
||||
}
|
||||
|
||||
case 'PAIRING_CREATED': {
|
||||
console.log('[AuthModal] PAIRING_CREATED:', message);
|
||||
User.getInstance().setPairingId(message.userPairingId);
|
||||
setAuthSuccess(true);
|
||||
|
||||
setTimeout(() => {
|
||||
setShowIframe(false);
|
||||
setIsIframeReady(false);
|
||||
setAuthSuccess(false);
|
||||
onClose();
|
||||
}, 500);
|
||||
break;
|
||||
}
|
||||
|
||||
case 'GET_PAIRING_ID': {
|
||||
User.getInstance().setPairingId(message.userPairingId);
|
||||
@ -83,6 +97,36 @@ export default function AuthModal({ isOpen, onClose }: AuthModalProps) {
|
||||
}, 500);
|
||||
break;
|
||||
}
|
||||
|
||||
case 'ERROR': {
|
||||
console.error('[AuthModal] handleMessage: error', message);
|
||||
if (message.messageId.includes('GET_PAIRING_ID')) {
|
||||
// We are not paired yet
|
||||
const accessToken = User.getInstance().getAccessToken();
|
||||
if (accessToken) {
|
||||
// create a new pairing
|
||||
const messageId = `CREATE_PAIRING_${uuidv4()}`;
|
||||
iframeRef.current.contentWindow!.postMessage({ type: 'CREATE_PAIRING', accessToken, messageId }, targetOrigin);
|
||||
} else {
|
||||
// We don't have an access token
|
||||
// Shouldn't happen
|
||||
console.error('[AuthModal] handleMessage: error: we don\'t have an access token');
|
||||
setShowIframe(false);
|
||||
setIsIframeReady(false);
|
||||
setAuthSuccess(false);
|
||||
onClose();
|
||||
}
|
||||
} else if (message.messageId.includes('CREATE_PAIRING')) {
|
||||
// Something went wrong while creating a pairing
|
||||
// show stopper for now
|
||||
console.error('[AuthModal] CREATE_PAIRING error:', message.error);
|
||||
setShowIframe(false);
|
||||
setIsIframeReady(false);
|
||||
setAuthSuccess(false);
|
||||
onClose();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
window.addEventListener('message', handleMessage);
|
||||
|
Loading…
x
Reference in New Issue
Block a user