Pular para o conteúdo principal

6 publicações com a etiqueta "cassino"

Ver todas as etiquetas

Changelog - 10/05/2026

Remarketing first-party (rmkvera)

  • Sistema de remarketing first-party com UUID v4 estável + audience tags do funil, brand-aware via feature flag (app/config/features/remarketing.ts). Vera ativa com cookie rmkvera (365 dias sliding TTL, Domain=.vera.bet.br, SameSite=None, Secure); demais brands fazem opt-in declarando seu próprio cookieName no override.
  • Cookie rmkvera_aud armazena tags do funil em JSON (90 dias sliding TTL, cap de 40 tags com eviction de oldest, set-once semantics) — pra ser usado como external_id em Meta CAPI, Google Enhanced Conversions e TikTok Events API. Funciona mesmo sem cookies de terceiros (iOS 14+, ITP, Brave).
  • Tags emitidas automaticamente em três eixos: path-based via useLocation brand-aware no Route Registry (viewed_casino, viewed_live_casino, viewed_game_detail, viewed_sports, viewed_promotions), modal-based via Zustand (clicked_register, registered, abandoned_register, viewed_deposit_modal, abandoned_deposit) e FTD-based em useAnalytics.trackDepositConfirmed (ftd_completed, multi_deposit).
  • Captura server-side no root loader (captureRemarketingIdFromRequest) — sobrevive a redirects via Set-Cookie na própria response do 302 (mesmo padrão do tracking de UTMs). Client-side RemarketingCapture faz refresh de TTL, publica em window.__rmk e dispara rmk_ready + rmk_audience_tag no dataLayer.
  • Regras duras: nome do cookie rejeita termos internos da plataforma (cactus, bluetec) em runtime, bot traffic é skipado no server, validador strict UUID v4 RFC 4122 contra cookies adulterados. 39 unit tests + 16 server-side tests cobrindo capture, Set-Cookie, regenerate em tamper, eviction.

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 - 04/05/2026

Jornada FTD — Refatoração Completa e Novas Brands

  • D0 e D1 desacoplados — antes, ativar o template vera-legacy do D0 (cashback) ligava implicitamente o modal de anúncio do D1 (check-in). Agora cada brand habilita as três etapas independentemente: ftdCashback.enabled, ftdCheckin.enabled e a flag nova ftdCheckin.announcement.enabled. Quatro combinações possíveis — só D0, só D1, ambos ou nenhum.
  • Copy e assets configuráveis por brand no template vera-legacyFtdCashbackConfig ganhou copy.{firstBonusToastTitle,cashbackModalTitle,cashbackModalDescriptionHtml,cashbackModalCtaText} + templateAssets.{firstBonusToastImage,cashbackModalImage}. FtdCheckinConfig ganhou announcement.copy.{title,descriptionHtml,ctaText} + templateAssets.image. Todos opcionais — fallback é o copy PT-BR + CDN da Vera (zero regressão).
  • 16 tokens de tema novos para o template e o toastftd-offer.template-{shell-bg,title-text,title-shadow,image-bg-from,image-bg-to,highlight-bg,highlight-border,highlight-text,cta-bg,cta-text} e ftd-offer.toast-{bg-from,bg-to,border,icon-bg-from,icon-bg-to,icon-border}. FtdOfferModalTemplate e FtdOfferInGameToast agora leem essas cores via CSS custom properties inline (Tailwind JIT não consegue gerar classes a partir de tokens dinâmicos).
  • 7k-bet-br ativa a jornada completa — D0 cashback, D1 check-in (com modal de anúncio "Garanta sua diversão!") e oferta-relâmpago pré-FTD, todos via template unificado. Quatro assets brand-specific da CDN do 7k substituem os fallbacks da Vera (toast, modal cashback, anúncio D1 e modal de oferta).
  • cassino-bet-br ativa a jornada completa — paleta + assets próprios, brand_id: 2 no Dark Verifier/Freedom (paridade com useFtdCashback.ts:52 do legado), kill-switches feFtdD0Cassino / feFtdD1Cassino, tabela bonusTiers de 35 níveis portada verbatim do legado (R$ 5 → R$ 3000+, cap em R$ 800), autoDepositModal abre o drawer de depósito automaticamente no login quando saldo ≤ R$ 0,10. Inclui lista de jogos elegíveis em cashback/eligible-games.ts.
  • cl-bet7k-com ativa D0 + D1 com identidade chilenabrandId: 4, kill-switch feFtdD07KCl (compartilhado D0/D1), tabela bonusTiers de 11 níveis em CLP (CLP 850 → CLP 510 000, cap CLP 136 000), 6995 IDs elegíveis portados 1:1 do legado, copy em espanhol chileno ("¡Sigue jugando para ganar un cashback!"). Moeda renderiza sem decimais ($50.000) via useFormatMoney() + CountryConfig.displayDecimalDigits. D1 começa desabilitado no primeiro rollout.
  • STT 2 (saldo bônus) com kill-switch remotosaldoBonus.featureFlags?: { legacy?, configcat? } permite desligar a STT 2 instantaneamente via ConfigCat ou FF legado sem deploy. O hook useFtdCashbackFlow computa saldoBonusRemoteKillSwitchPass (closed-by-default enquanto a API está em voo, mesma semântica do D0/D1). Cassino declara feFtdSaldoBonus + feFtdSaldoBonusCassino.

Changelog - 29/04/2026

Dia pesado: 25 PRs no front-web-base cobrindo um empurrão grande de performance (CSS, ícones, modal), refatoração do header secundário com gating de rota, novas features de cassino e pagamentos, e ajustes finos de SEO/mobile/auth. Plus 4 mudanças de CI/CD em front-ops pra suportar o novo modelo de cache por device/country/buildId.

Performance — empurrão grande

  • Drop important: true do Tailwind (tailwind.config.js). Removido globalmente — precedência CSS volta ao normal (inline style vence class). Resultado: CSS −23,5KB raw (−14,4%). Componentes que usavam o pattern condicional bgStyle ? "" : "bg-..." (omitir classe quando havia inline style) foram simplificados — agora basta sempre emitir a classe que o style inline sobrescreve quando presente. Atualizados: GameCardStacked, GameStats, GameWinners, MainLeaguesSquare, SidebarButtonsGradient, SidebarButtonsGrid.
  • Migração react-modal-sheetvaul (app/components/base/Modal.tsx). Modal chunk caiu de ~158KB pra ~65KB raw — −93KB (−59%). Mesma API externa, drop-in pelos consumers. (PR #405 fez ajustes finos depois pra resolver bugs de input-focus em mobile e espaço fantasma no footer.)
  • Remoção do @tailwindcss/typography. Plugin não justificava o custo — uso restrito a 4 lugares (FaqSingleContent, WpPostContent, page.$slug, vip/levels) substituído por classes utilitárias inline. package.json enxuga uma dep + 22 linhas de pnpm-lock.yaml.
  • Ícones direct-imports + lazy MainLeagues (app/widgets/home-leagues/). Drop do registry intermediário — agora cada componente faz import Icon from "~icons/<set>/<name>" direto. MainLeaguesSquare virou lazy chunk separado. 25 arquivos tocados, −564 linhas vs +454. Atualiza configs de home-leagues em 7 brands (7k-bet-br, cassino-bet-br, fi-7k-bet, ng-7k-bet, pb-bet, vera-bet-br, state77-com, x2b-bet).
  • CI Lighthouse manual (.github/workflows/lighthouse.yml). Workflow caller dispatchável via workflow_dispatch pra rodar Lighthouse on-demand contra preview/prod sem precisar de schedule fixo. Útil pra validar PRs pesados de UI antes de mergear.

Changelog - 24/04/2026

Topbar de Notificações

  • Redesign completo da TopbarNotification (PR #333): novo layout com botão de fechar (X) à esquerda, ícone em chip arredondado com tokens dedicados (topbar.icon-bg / topbar.icon-text), pilha de título + subtítulo no centro e CTA pill à direita, com altura de 72 px alinhada às barras modernas de instalação de app. Os ícones emoji foram substituídos por componentes do lucide-react (Smartphone, Bell, Gift, Send, Trophy, ShieldAlert) e o tipo TopbarDefinition.icon virou LucideIcon. Os modos default e restricted foram unificados num TopbarShell compartilhado, e a topbar deixou de ser sticky — agora rola junto com a página enquanto o header permanece fixo no topo do viewport. Tooltip de instalação iOS foi reancorado para o rodapé do viewport com safe-area-inset-bottom para que a seta inferior alinhe com a barra de endereços do Safari.
  • Centralização do conteúdo no desktop (PR #334): o TopbarNotification recebeu um container interno max-w-[460px] mx-auto envolvendo close/ícone/texto/CTA. O fundo continua preenchendo edge-to-edge, mas em viewports largos o X e o CTA não escorregam mais para os cantos deixando um espaço vazio gigante no meio. Em mobile (< 460px) o comportamento é idêntico ao anterior — o container preenche naturalmente toda a largura.
  • Refresh de tokens de tema da topbar em todos os overrides (PR #347): sincronizou o override 7k-bet-br (que estava sem icon-bg e icon-text), padronizou a paleta com fundo mais suave (lifted bg-primary), chip do ícone tingido com primary e CTA combinando com o botão primário da brand. Ajustes manuais aplicados nas variantes 7k, state77, vera-bet-br, betpontobet-bet-br e cassino-bet-br. Altura interna da linha do TopbarNotification reduzida de 68 px para 62 px para compactar o footprint vertical.

Changelog - 30/03/2026

Banners Recomendados

  • Implementada nova seção de Banners Recomendados na home — componente RecommendedBannersCarousel que exibe banners em carrossel com setas de navegação
  • Dados consumidos de brand.appearance.recommendedBanners (desktop e mobile separados)
  • Breakpoint de alternância mobile/desktop ajustado para lg (1024px)
  • Largura mobile alinhada ao tamanho dos cards de jogos (w-[115px] / sm:w-[140px])
  • Largura desktop dinâmica via calc para acompanhar o container central ao redimensionar
  • Título e ícone da seção configurável por brand via home-rows.legacy.ts
  • Override betpontobet: seção "Os melhores de 2026" adicionada à home
  • Override state77: seção "Los mejores juegos de Chile hoy" adicionada à home
  • Suporte a casino-rows e casino-live-rows para exibir banners nas páginas de cassino