|
|
@@ -13,10 +13,9 @@
|
|
|
let success = '';
|
|
|
let successTimeout;
|
|
|
|
|
|
- const kycStatusEndpoint = `${apiUrl}/company/user/kyc/status`;
|
|
|
+ const kycStatusEndpoint = `${apiUrl}/user/kyc/status`;
|
|
|
const KYC_POLL_INTERVAL_MS = 10_000;
|
|
|
- const LOGIN_KYC_PENDING_KEY = 'login_kyc_pending_state';
|
|
|
- const LOGIN_KYC_PENDING_TTL_MS = 1000 * 60 * 30;
|
|
|
+ const LOGIN_KYC_PENDING_KEY = 'login_kyc_pending_number_token';
|
|
|
|
|
|
let kycMode = null;
|
|
|
let kycLink = '';
|
|
|
@@ -39,30 +38,26 @@
|
|
|
}, 4000);
|
|
|
}
|
|
|
|
|
|
- function savePendingState(state) {
|
|
|
+ function savePendingNumberToken(token) {
|
|
|
if (!browser) return;
|
|
|
try {
|
|
|
- const payload = { ...state, savedAt: Date.now() };
|
|
|
- localStorage.setItem(LOGIN_KYC_PENDING_KEY, JSON.stringify(payload));
|
|
|
+ if (!token) {
|
|
|
+ localStorage.removeItem(LOGIN_KYC_PENDING_KEY);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ localStorage.setItem(LOGIN_KYC_PENDING_KEY, token);
|
|
|
} catch (err) {
|
|
|
console.warn('Não foi possível salvar o estado de pendência de KYC:', err);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function loadPendingState() {
|
|
|
- if (!browser) return null;
|
|
|
+ function loadPendingNumberToken() {
|
|
|
+ if (!browser) return '';
|
|
|
try {
|
|
|
- const raw = localStorage.getItem(LOGIN_KYC_PENDING_KEY);
|
|
|
- if (!raw) return null;
|
|
|
- const data = JSON.parse(raw);
|
|
|
- if (data?.savedAt && Date.now() - data.savedAt > LOGIN_KYC_PENDING_TTL_MS) {
|
|
|
- localStorage.removeItem(LOGIN_KYC_PENDING_KEY);
|
|
|
- return null;
|
|
|
- }
|
|
|
- return data;
|
|
|
+ return localStorage.getItem(LOGIN_KYC_PENDING_KEY) ?? '';
|
|
|
} catch (err) {
|
|
|
console.warn('Não foi possível restaurar o estado de pendência de KYC:', err);
|
|
|
- return null;
|
|
|
+ return '';
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -244,12 +239,7 @@
|
|
|
error = '';
|
|
|
success = '';
|
|
|
if (persist) {
|
|
|
- savePendingState({
|
|
|
- mode: 'PF_PENDING',
|
|
|
- link,
|
|
|
- numberToken,
|
|
|
- message: kycStatusMessage
|
|
|
- });
|
|
|
+ savePendingNumberToken(numberToken);
|
|
|
}
|
|
|
await renderQrCode(link);
|
|
|
startKycPolling();
|
|
|
@@ -314,16 +304,12 @@
|
|
|
console.warn('Falha ao recuperar mensagem de sucesso:', err);
|
|
|
}
|
|
|
|
|
|
- const restorePendingState = async () => {
|
|
|
- const pending = loadPendingState();
|
|
|
- if (!pending) return;
|
|
|
- if (pending.mode === 'PF_PENDING' && pending.link && pending.numberToken) {
|
|
|
- await enterPfPending(pending.link, pending.numberToken, pending.message, { persist: false });
|
|
|
- } else if (pending.mode === 'PJ_PENDING') {
|
|
|
- enterPjPending(pending.message, { persist: false });
|
|
|
- }
|
|
|
- };
|
|
|
- void restorePendingState();
|
|
|
+ const pendingToken = loadPendingNumberToken();
|
|
|
+ if (pendingToken) {
|
|
|
+ kycNumberToken = pendingToken;
|
|
|
+ kycStatusMessage = 'KYC pendente. Aguarde a validação ou refaça o login para gerar um novo link.';
|
|
|
+ startKycPolling();
|
|
|
+ }
|
|
|
|
|
|
return () => {
|
|
|
if (browser) window.removeEventListener('storage', onStorage);
|