@greatapps/common 1.1.745 → 1.1.747

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,6 +15,7 @@ import { PendingCancellationBanner } from "./PendingCancellationBanner";
15
15
  import { TrialBanner } from "./TrialBanner";
16
16
  import { FrozenAccountBanner } from "./FrozenAccountBanner";
17
17
  import { FreezeWarningBanner } from "./FreezeWarningBanner";
18
+ import { useModalManager } from "../../store/useModalManager";
18
19
 
19
20
  const UPCOMING_WINDOW_DAYS = 7;
20
21
  const PAYMENT_METHOD_BOLETO = 2;
@@ -29,6 +30,7 @@ export function SubscriptionBanner({
29
30
  onDetails,
30
31
  }: SubscriptionBannerProps) {
31
32
  const { data: { data: [subscription] = [] } = {} } = useActiveSubscription();
33
+ const { openModal } = useModalManager();
32
34
  const { data: pendingChargesData, isLoading: isLoadingCharges } = useCharges({
33
35
  page: 1,
34
36
  limit: 1,
@@ -83,14 +85,23 @@ export function SubscriptionBanner({
83
85
  // Congelamento (date_due + ACCOUNT_FREEZE_AFTER_DAYS): entra antes do dunning
84
86
  // e do aviso genérico de atraso, que hoje engolem essa janela.
85
87
  const freezeState = getAccountFreezeState(subscription);
88
+ // "Detalhes" abre a MESMA modal do bloqueio, com a lista do que o congelamento tira: no
89
+ // aviso o usuário precisa ver o que vai perder antes de perder. O `freezeDate` no data é
90
+ // o que faz a modal renderizar a variante de véspera.
91
+ //
92
+ // IGNORA o `onDetails` do host de propósito: nos apps ele abre os detalhes da COBRANÇA,
93
+ // que responde outra pergunta. Aqui "Detalhes" significa "o que eu perco".
86
94
  if (freezeState === "frozen") {
87
- return <FrozenAccountBanner onDetails={onDetails} />;
95
+ return (
96
+ <FrozenAccountBanner onDetails={() => openModal("accountFrozenModal", { showResources: true })} />
97
+ );
88
98
  }
89
99
  if (freezeState === "warning") {
100
+ const freezeDate = getAccountFreezeDate(subscription);
90
101
  return (
91
102
  <FreezeWarningBanner
92
- freezeDate={getAccountFreezeDate(subscription)}
93
- onDetails={onDetails}
103
+ freezeDate={freezeDate}
104
+ onDetails={() => openModal("accountFrozenModal", { freezeDate, showResources: true })}
94
105
  />
95
106
  );
96
107
  }
@@ -435,17 +435,36 @@ const messages = {
435
435
  subscription: {
436
436
  frozen: {
437
437
  banner: {
438
- message: 'Your account has its resources blocked due to a missed payment.',
439
- regularize: 'Fix subscription',
438
+ message: 'Your account resources are blocked due to missing payment.',
439
+ regularize: 'Update subscription',
440
440
  },
441
441
  warningBanner: {
442
- message: 'Payment overdue: your account will be blocked on {freezeDate}. Fix it to keep access.',
442
+ message: 'Payment overdue: your account resources will be blocked on {freezeDate}. Pay now to keep your access.',
443
443
  details: 'Details',
444
444
  },
445
445
  modal: {
446
- title: 'Account blocked due to a missed payment',
447
- description: 'Your account has its resources blocked due to a missed payment. Fix your subscription to unlock it.',
448
- cta: 'Fix subscription',
446
+ title: 'Your account resources are blocked',
447
+ description: 'Your account resources are blocked due to missing payment. Update your subscription to unlock them.',
448
+ descriptionWithResources: 'We could not identify your payment, so these resources are blocked:',
449
+ warningDescriptionWithResources: 'Your payment is overdue. If we do not identify it by then, these resources will be blocked:',
450
+ warningTitle: 'Your resources will be blocked on {freezeDate}',
451
+ warningDescription: 'Your payment is overdue. Settle it to keep access to your account resources.',
452
+ keepsWorking: 'Your published pages stay online and your leads keep coming in. Everything is restored automatically once the payment goes through.',
453
+ resources: {
454
+ pages: {
455
+ title: 'Manage pages',
456
+ description: 'Publishing, creating and editing pages, settings, A/B tests, file uploads and exporting leads',
457
+ },
458
+ projects: {
459
+ title: 'Manage projects',
460
+ description: 'Creating and editing projects, inviting users and changing team permissions',
461
+ },
462
+ domains: {
463
+ title: 'Manage domains',
464
+ description: 'Connecting new domains and managing integrations',
465
+ },
466
+ },
467
+ cta: 'Update subscription',
449
468
  },
450
469
  },
451
470
  },
@@ -436,16 +436,35 @@ const messages = {
436
436
  subscription: {
437
437
  frozen: {
438
438
  banner: {
439
- message: 'Tu cuenta tiene los recursos bloqueados por falta de pago.',
439
+ message: 'Los recursos de tu cuenta están bloqueados por falta de pago.',
440
440
  regularize: 'Regularizar suscripción',
441
441
  },
442
442
  warningBanner: {
443
- message: 'Pago atrasado: tu cuenta será bloqueada el {freezeDate}. Regulariza para no perder el acceso.',
443
+ message: 'Pago atrasado: los recursos de tu cuenta se bloquearán el {freezeDate}. Regulariza para no perder el acceso.',
444
444
  details: 'Detalles',
445
445
  },
446
446
  modal: {
447
- title: 'Cuenta bloqueada por falta de pago',
448
- description: 'Tu cuenta tiene los recursos bloqueados por falta de pago. Regulariza tu suscripción para liberarla.',
447
+ title: 'Los recursos de tu cuenta están bloqueados',
448
+ description: 'Los recursos de tu cuenta están bloqueados por falta de pago. Regulariza la suscripción para liberarlos.',
449
+ descriptionWithResources: 'No identificamos el pago, así que estos recursos están bloqueados:',
450
+ warningDescriptionWithResources: 'El pago está atrasado. Si no lo identificamos hasta entonces, estos recursos se bloquearán:',
451
+ warningTitle: 'Tus recursos se bloquearán el {freezeDate}',
452
+ warningDescription: 'El pago está atrasado. Regulariza para no perder el acceso a los recursos de tu cuenta.',
453
+ keepsWorking: 'Tus páginas publicadas siguen en línea y tus leads se siguen capturando. Todo vuelve automáticamente en cuanto se identifique el pago.',
454
+ resources: {
455
+ pages: {
456
+ title: 'Gestionar páginas',
457
+ description: 'Publicar, crear y editar páginas, configuración, pruebas A/B, subida de archivos y exportar leads',
458
+ },
459
+ projects: {
460
+ title: 'Gestionar proyectos',
461
+ description: 'Crear y editar proyectos, invitar usuarios y cambiar permisos del equipo',
462
+ },
463
+ domains: {
464
+ title: 'Gestionar dominios',
465
+ description: 'Conectar nuevos dominios y gestionar integraciones',
466
+ },
467
+ },
449
468
  cta: 'Regularizar suscripción',
450
469
  },
451
470
  },
@@ -453,16 +453,35 @@ const messages = {
453
453
  subscription: {
454
454
  frozen: {
455
455
  banner: {
456
- message: 'Sua conta está com os recursos bloqueados por falta de pagamento.',
456
+ message: 'Os recursos da sua conta estão bloqueados por falta de pagamento.',
457
457
  regularize: 'Regularizar assinatura',
458
458
  },
459
459
  warningBanner: {
460
- message: 'Pagamento em atraso: sua conta será bloqueada em {freezeDate}. Regularize para não perder o acesso.',
460
+ message: 'Pagamento em atraso: os recursos da sua conta serão bloqueados em {freezeDate}. Regularize para não perder o acesso.',
461
461
  details: 'Detalhes',
462
462
  },
463
463
  modal: {
464
- title: 'Conta bloqueada por falta de pagamento',
464
+ title: 'Recursos da sua conta bloqueados',
465
465
  description: 'Sua conta está com os recursos bloqueados por falta de pagamento. Regularize a assinatura para liberar.',
466
+ descriptionWithResources: 'O pagamento não foi identificado, então estes recursos estão bloqueados:',
467
+ warningDescriptionWithResources: 'O pagamento está em atraso. Se não for identificado até lá, estes recursos serão bloqueados:',
468
+ warningTitle: 'Seus recursos serão bloqueados em {freezeDate}',
469
+ warningDescription: 'O pagamento está em atraso. Regularize para não perder o acesso aos recursos da sua conta.',
470
+ keepsWorking: 'Suas páginas publicadas continuam no ar e seus leads seguem sendo capturados. Assim que o pagamento for identificado, tudo volta automaticamente.',
471
+ resources: {
472
+ pages: {
473
+ title: 'Gerenciar páginas',
474
+ description: 'Publicar, criar e editar páginas, configurações, testes A/B, upload de arquivos e exportar leads',
475
+ },
476
+ projects: {
477
+ title: 'Gerenciar projetos',
478
+ description: 'Criar e editar projetos, convidar usuários e alterar permissões da equipe',
479
+ },
480
+ domains: {
481
+ title: 'Gerenciar domínios',
482
+ description: 'Conectar novos domínios e gerenciar integrações',
483
+ },
484
+ },
466
485
  cta: 'Regularizar assinatura',
467
486
  },
468
487
  },