Sports
O template suporta tres providers de sportsbook: First, Altenar e Betby.
A configuracao e feita por arquivo sports.config.ts (base + override por brand). O config e um objeto estatico importado diretamente tanto no client quanto no server — sem wrappers ou functions intermediarias.
Onde configurar
- Base:
app/config/sports/sports.ts - Override por brand:
overrides/<brand-key>/app/config/sports/sports.ts - Hook (client):
app/hooks/useSportsConfig.ts— resolve o provider ativo pela rota
O <brand-key> pode vir de:
ORIGIN_DOMAINnormalizado (state77.com->state77-com)
Exemplo
import type { SportsModuleConfig } from "@cactus-agents/sports";
export const sportsConfig: SportsModuleConfig = {
main: "altenar",
test: "betby",
first: {},
altenar: {
integration: "minha-marca",
libraryUrl: "https://sb1client-altenar.biahosted.com/...",
},
betby: {
brandId: "minha-marca-id",
theme: "default",
libraryUrl: "https://ui.betby.com/...",
},
};
Configuracao por provider
Altenar
main: "altenar",
altenar: {
integration: "minha-marca",
libraryUrl: "https://sb1client-altenar.biahosted.com/...",
},
Betby
main: "betby",
betby: {
brandId: "minha-marca-id",
theme: "default",
libraryUrl: "https://ui.betby.com/...",
},
First
main: "first",
O First nao requer configuracao adicional alem do provider em main.
Rota de teste
Para testar um provider alternativo sem afetar /sports, defina test:
test: "betby",
Isso habilita a rota /sports-test com o provider de teste no sports.config.ts.
Customizacao da sidebar
Edite app/config/layout/sidebar-sports.ts para personalizar os items de navegacao:
export const sportsMainItems = [
{ slug: "live", label: "Ao Vivo", ... },
{ slug: "upcoming", label: "Comeca em Breve", ... },
];
export const popularChampionships = [
{ slug: "brasileirao-a", label: "Brasileirao Serie A", flagCode: "BR", ... },
// adicione ou remova campeonatos
];
Cada item deve conter paths para os providers que sua marca usa (firstPath, altenarPath, betbyPath).
Desabilitando
Para desabilitar completamente o modulo de esportes:
main: null,