Make AuthModal works with decoupled Pairing creation

This commit is contained in:
Sosthene 2025-08-27 17:36:57 +02:00
parent e081585fd9
commit 87483af243

View File

@ -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);