From 1726b4bdbe50b1a36ee8e8035f881bd6514e4763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Faleiros?= Date: Wed, 12 Aug 2026 11:03:37 -0300 Subject: [PATCH] Add Olist reconnection flow --- backend/services/olistService.js | 2 +- src/pages/OlistSync.tsx | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/backend/services/olistService.js b/backend/services/olistService.js index 8a28c6b..3b855ac 100644 --- a/backend/services/olistService.js +++ b/backend/services/olistService.js @@ -277,7 +277,7 @@ const createAuthorizationUrl = async () => { const params = new URLSearchParams({ client_id: OLIST_CLIENT_ID, redirect_uri: OLIST_REDIRECT_URI, - scope: 'openid', + scope: 'openid offline_access', response_type: 'code', state }); diff --git a/src/pages/OlistSync.tsx b/src/pages/OlistSync.tsx index b2f2fdd..5b0fc67 100644 --- a/src/pages/OlistSync.tsx +++ b/src/pages/OlistSync.tsx @@ -106,6 +106,7 @@ const OlistSync = () => { }, [selectedRunId, runDetails?.run.status, detailsPages, loadRunDetails]); const latestRun = status?.runs[0] || null; + const tokenExpired = Boolean(status?.tokenExpiresAt && new Date(status.tokenExpiresAt).getTime() <= now); const completionPercent = useMemo(() => { const cache = status?.productCache; if (!cache?.total) return 0; @@ -198,6 +199,9 @@ const OlistSync = () => { ) : ( <> + @@ -218,8 +222,8 @@ const OlistSync = () => {
Conexão
-

{status?.connected ? 'Conectada' : 'Não conectada'}

-

Token expira: {formatDateTime(status?.tokenExpiresAt || null)}

+

{status?.connected ? (tokenExpired ? 'Reconexão necessária' : 'Conectada') : 'Não conectada'}

+

{tokenExpired ? `Token expirado: ${formatDateTime(status?.tokenExpiresAt || null)}` : `Token expira: ${formatDateTime(status?.tokenExpiresAt || null)}`}

Execução atual