Pular para o conteúdo principal

2 publicações com a etiqueta "ci-deploy"

Ver todas as etiquetas

Changelog — 08/05/2026

Cadastro — validações client-side mais rigorosas

  • Limite etário no cadastro (PR #654) — novo app/utils/age.ts calcula idade contra now e bloqueia data de nascimento fora da faixa 18–99 anos direto no RegisterModal antes do POST. Antes o front aceitava qualquer data válida e só o BFF reclamava (round-trip + UX ruim). Erros aparecem inline com chaves i18n já existentes (auth.errors.too_young / too_old), e o parseRegisterFormData em app/modules/register/flow.ts ganhou o mesmo guard pra blindar o pipeline FormData → payload.
  • Validação de telefone contra máscaras do país (PR #683) — o RegisterModal agora deriva os digit lengths válidos a partir de availableMasks (ex: BR → [10, 11]) e marca o campo como INVALID_PHONE no blur quando a contagem não bate. Isso afeta automaticamente 7k-bet-br, cassino-bet-br, vera-bet-br (e qualquer brand futuro) sem mudança no override — a validação é mask-derived. Erro limpa assim que o user atinge um length válido; não dispara shake (esse fica reservado pra erros de submit), só border + mensagem inline.

Changelog - 30/04/2026

Dia muito pesado: 27 PRs no base + 8 PRs no core. O core foi quase todo dedicado a expandir o @cactus-agents/i18n para alimentar a leva grande de novas variants do base (mobile bottom nav, footer-stacked, quick-access menu, side sheets, tournament detail, FTD offer/cashback). No base, o destaque foi a reformulação completa do MobileBottomNav com 4 variantes tipadas, novo primitive CtaButton, footer-stacked do 7k-bet-br e revamp da página de detalhe de torneios.

i18n / Internacionalização

  • @cactus-agents/i18n recebeu 4 PRs de chaves novas no mesmo dia (#157, #158, #159, #160), todas em pt-br (autoritativo) + pt + es + en. Cada PR cobre um surface novo do base: mobile_nav.* para variantes de bottom nav, tournaments.* para a tela de detalhe, quick-access menu + side sheets, e footer-stacked.
  • mobile_nav expandido (PR #157, core): de home/casino/sports/deposit/menu para 13 intents — tournaments, missions, promotions, rewards, referral, wallet, profile, store, slots, withdraw, casino_live, sports_live. Suporta os 4 variants novos do MobileBottomNav (flat, trail-cta, fab-center, illustrated) sem brand precisar declarar namespace próprio.
  • tournaments.* na gamification (PR #158, core): 5 chaves para a revamp da tournament detail — information (título do stats carousel), show_more/show_less (collapse/expand das descrições e tabs), no_players/no_prizes (empty states de ranking e prêmios).
  • Quick-access menu + side sheets (PR #159, core): chaves nos namespaces layout, casino e gamification para o novo widget + no header e os painéis laterais de Favoritos, Recentes e Notificações usados em 7k-bet-br e cl-bet7k-com.
  • Footer-stacked (PR #160, core): 14 chaves por locale para o novo variant — col_doubts, col_vip_games, vip_*, payment_label, download_app_label, back_to_top_cta, central_atendimento. Antes os textos viviam na pasta overrides/7k-bet-br/app/locales e bloqueavam o uso compartilhado entre brands.
  • ftd_offer e ftd_cashback no namespace payments (PRs #152 e #155, core): chaves para o modal de oferta FTD e o fluxo de cashback FTD (D0) — first_modal.* e prize_modal.*. PT-BR neutra e brand-agnostic; PT, ES, EN traduzidos.
  • favorites.empty_* e recently_played.empty_* (PR #153, core): chaves para o EmptyRowPlaceholder quando o usuário tem favoritos/recentes vazios — labels de scroll, aria-labels do botão e variantes com sugestões ao lado.
  • casino:show_filters/hide_filters (PR #438, base via bump i18n ^0.78.0): chaves para o toggle de filtros recolhíveis nas páginas de games.
  • Normalização "Casino" → "Cassino" para BRA (PR #432, base): hook useCasinoNomenclature aplica regex whole-word só quando countryCode === "BRA" — corrige o fato do BFF retornar nomenclature_for_casino_games = "Casino" (com um 's') que vencia o i18n correto via fallback ||. Workaround temporário enquanto o @cactus-agents/brand.transformFeatures() está congelado; outros países (pt-PT, es-ES, en-GB) passam direto porque "Casino" é gramaticalmente correto neles.