Semana 03–05/04 — Rede 7k chega à Nigéria e à Finlândia
Duas marcas novas nascem no mesmo dia:ng-7k-bet (7c7bcbe0a) e fi-7k-bet (e83078a76) ganham árvore de override completa em overrides/<brand>/app/config/ — tema, features.config.ts, menu.config.ts, sidebar.config.ts, linhas de home/cassino e itens de navegação. O acabamento veio na sequência: 224653ac7 fecha o branding da ng-7k-bet, 750fd7f5c ajusta features e cores da fi-7k-bet, e 0359f4e2e / f6b0ce82c trocam favicon e ícones PWA de cada uma. Como overrides/* é ignorado por padrão no .gitignore, cada marca só passa a ser versionada quando entra na lista de exceções (!overrides/<brand>/) — é esse commit que "cria" a marca aos olhos do git.
Manifest PWA passa a sair do tema (1dff5bffc): theme.config.ts ganha um bloco manifest com theme-color e background-color, e a rota app/routes/manifest[.]json.ts lê dali em vez de ter os valores fixos — o mesmo bloco foi propagado para todos os overrides.
Licenciamento por jurisdição:24d0b6ebf padroniza o texto de licença entre as configs, 7f46e5604 troca o texto da ng-7k-bet para inglês e 9a9a38be0 ajusta o textLicense do licenses.config.ts dessa mesma marca. Marca nova em jurisdição nova não reaproveita o rodapé regulatório brasileiro.
Suporte de país no core:@cactus-agents/country-config ganha suporte ao documento NIN e a localização da Nigéria (8a5d11d) — é dessa config que o registro tira qual documento pedir e como validá-lo.
Pagamentos — transferência bancária nigeriana (NGA) e moeda NGN
Config de moeda NGN com valores de depósito próprios (398d0c853), incluindo as opções destacadas ("hot"), e a NgaBanksSection integrada à interface para o usuário escolher o banco NGA conforme a preferência de seção de conta bancária.
Saque por transferência bancária NGA ganha formulário próprio no WithdrawForm (2fc6ba59f): dropdown de bancos com busca mais input de número de conta, e a validação passa a distinguir explicitamente NGA das outras variantes de transferência. 53724aeb6 leva bankCode e bankNumber até o WithdrawModal; 0c368043c trata a busca da lista de bancos quando ela falha ou volta vazia; 73589b4a7 corrige o posicionamento do dropdown, que abria fora da área visível do modal.
Depósito por transferência bancária ganha tela de resultado (a82baf720) no DepositModal, com 3fc858b85 acertando a formatação de valor no DepositResultBankTransfer.
Core:@cactus-agents/payments passa a aceitar bankCode e bankNumber no WithdrawPayload (26b2865) e exporta a base de bancos nigerianos como dado versionado em packages/payments/src/data/nga-banks.ts, disponível no barrel como NGA_BANKS (c62f317). Bumps 0.8.0 (11a3818eb) e 0.9.0 (5b1a58a46). O namespace de i18n de transferência bancária entra em inglês, espanhol e português (bdd124f).
Nasce app/utils/money.ts com formatMoney() e formatMoneyCents() (cc097a506) como fonte única de verdade para símbolo e casas decimais. Sidebar.formatCurrency passa a delegar para formatMoneyCents, e useWallet e HeaderUserArea deixam de formatar por conta própria. O bug citado no próprio commit: o CTA de indicação da sidebar renderizava NGN no lugar de ₦.
1cea0f924 migra toda a formatação de moeda remanescente do app para o util centralizado, e 56c91712c fecha a causa raiz trocando o currencyDisplay para narrowSymbol — é isso que faz ₦, R$ e € aparecerem em vez dos códigos ISO NGN, BRL e EUR. 75ca3e92a resolve os apontamentos de revisão da migração.
88da18a19 corrige a exibição do label do documento na DocumentSection, no mesmo lote de acertos multi-país.
O SDK do SoftSwiss passa a ser carregado já na visita à página do jogo (a67330f65), com um useEffect dedicado, para que ele esteja pronto quando o usuário clicar em jogar em vez de custar latência no clique.
O lançamento do jogo só acontece depois que o DOM renderiza o wrapper (78fd17f5e): a chamada saiu do ponto onde os dados eram setados, porque o SDK precisa do elemento em tela para injetar o iframe. A URL escolhida passa a depender do tamanho de tela (mobile x desktop). 4385554df enxuga a integração no GameIframe e 2eb6013c5 acerta o estilo do iframe.
Core:@cactus-agents/games evolui packages/games/src/softswiss.browser.ts para carregar o SDK com URL específica por marca (6d6e46d, fde0185). Bumps 0.17.0 (bc84c0fa6) e 0.18.0 (6ab00030b).
Dados de geolocalização do Cloudflare passam a ser extraídos no worker (450177a75): novo extractCfGeoData roda antes do React Router processar o request e injeta __cfGeoData na configuração de ambiente, além de expor uma rota de visitor info na API de desenvolvimento. Do lado do core, @cactus-agents/api-client ganha a interface CfGeoData e o tratamento do geo em packages/api-client/src/server.ts (842dc99, bump 0.9.0 consumido em 73c18108b).
Cache-control do SSR passa a diferenciar HTML de .data (1c9b69da3): TTL mais longo para o documento HTML e TTL curto para as navegações SPA, que é onde o dado velho aparecia. Antes os dois caíam na mesma janela de frescor.
d35becee5 acaba com o loop infinito de redirect na rota de cassino, que se repetia quando o casinoPath da marca coincidia com a rota de origem — o redirect agora é condicional ao caminho configurado.
Nova flag keepTrackingParamsInUrl (6edb77679, com o default false fixado no features.config.ts do base em ae1791b9c): quando ligada, os parâmetros de tracking permanecem na URL em vez de serem limpos após a captura. betpontobet-bet-br liga a flag no override; 4ed76e430 liga também para fi-7k-bet e ng-7k-bet.
O código de afiliação passa a ser exibido no modal de registro quando presente na URL (9504c26c8), para o usuário confirmar visualmente que chegou por um link de indicação.
?deposit=1 volta a abrir o modal de depósito (930a44f07), comportamento que existia no legado e havia sido perdido; 8dbf91bff limpa o parâmetro da URL depois da abertura para que reclicar o banner funcione de novo, e fdeccc41a adiciona o useNavigate que faltava no DefaultLayout para essa limpeza.
Configuração de tema refatorada e integrada ao layout (a092f262f), com ajustes de paleta em eb51cc600 e cores específicas de fundo/texto das telas de registro e login em f26ac86bd.
Slideshow e HomeBannerCarousel ganham gradiente de fade nas bordas (75ad9b590) e os indicadores de ponto (dots) passam a vir desligados por padrão (fe52cdf43), virando opt-in por marca.
Linhas da home passam a ser filtradas pela configuração de gamificação (f350479ec): o render usa visibleRows em vez de homeRows, então marca com gamificação desligada não pinta mais widget de missão vazio. 30ae2c293, 766371332 e cd313ca3b ajustam as linhas legadas de home e cassino, comentando widgets sem consumidor.
Ícone do Live Support passa a usar o token text-sidebar-icon (65582fc6f, e0f2eceb1) em vez de cor fixa, e dd3b93c70 liga a Sidebar ao client environment. 82a58f30d padroniza o separador de título das páginas para - (era |).
3c38b2d17 habilita render de HTML nos detalhes de missão (MissionDetailModal e MissionCard) — o conteúdo vem formatado do backoffice e estava sendo exibido com as tags cruas. cd1450c5b corrige a capitalização do nome das moedas na config de gamificação e 5f62e3734 uniformiza labels e traduções entre componentes.
Cookies renomeados para nomes neutros (beb2fd35b): cactus_tracking → cookie_tracking, cactus_referrer → cookie_referrer e cactus_app_mode → cookie_app_mode. O objetivo é que nada inspecionável pelo usuário final no browser carregue o nome do fornecedor da plataforma. O mesmo commit ainda pluga a InternalNavBar em Promoções e Central de Ajuda e ajusta as dimensões do gradiente de fade do Carousel e do Slideshow.
ng-7k-bet: bootstrap completo (7c7bcbe0a, 224653ac7), ícones e favicon (0359f4e2e), texto de licença em inglês (7f46e5604), brandKey do Smartico corrigido na config de gamificação (3a5478aa7) e keepTrackingParamsInUrl ligada (4ed76e430).
fi-7k-bet: bootstrap completo (e83078a76), features e cores (750fd7f5c), ícones e favicon (f6b0ce82c), keepTrackingParamsInUrl ligada (4ed76e430).
betpontobet-bet-br:keepTrackingParamsInUrl: true no override (9504c26c8) e ambientes de deploy reorganizados no CI (d92db68d9).
Pacote @cactus-agents/payments recebe bankCode/bankNumber no WithdrawPayload e o dataset NGA_BANKS (bumps 0.8.0 e 0.9.0).
Pacote @cactus-agents/api-client ganha CfGeoData e propagação do geo do Cloudflare no client de servidor (bump 0.9.0).
Pacote @cactus-agents/games evolui o carregador do SDK SoftSwiss com URL por marca (bumps 0.17.0 e 0.18.0).
Pacote @cactus-agents/country-config adiciona NIN e localização da Nigéria (8a5d11d).
Pacote @cactus-agents/i18n recebe as chaves de transferência bancária (bdd124f), novas frases e mensagens de erro em vários idiomas (b40b198) e categorias/recursos novos de cassino (6d0b33b); bump 0.37.0 consumido em 3ed240378.
Workers das duas marcas novas provisionados no front-ops:f1d06bf (fi-7k-bet) e 06b7977 (ng-7k-bet), com 9ec3cfc corrigindo a branch default do worker da ng-7k-bet. No base, 0937133e0 e 6538e5f8d adicionam os jobs de deploy correspondentes, e 7008046de conserta o trigger do ambiente ng-7k-bet.
Ambientes da betpontobet-bet-br renomeados para ficarem legíveis (ops e19103b, c9024be) — os nomes de worker de stage não batiam com o padrão dos demais.