Apps

Bea.* - helpers úteis

Bea.* — helpers úteis

Funções auxiliares disponíveis dentro do iframe do app. Importação não é necessária — Bea é global.

Hooks de estado

// Persiste em URL (?key=value) — bom pra filtros que devem entrar no histórico
const [filtro, setFiltro] = Bea.useUrlState("filtro", "todos");

// Persiste em localStorage — bom pra preferências do user
const [tema, setTema] = Bea.useLocalState("meu-app-tema", "dark");

Formatação BR

Bea.fmt.brl(1234.56);          // "R$ 1.234,56"
Bea.fmt.brlCents(123456);      // "R$ 1.234,56" (entrada em centavos)
Bea.fmt.percent(0.12345);      // "12,35%"
Bea.fmt.cnpj("11222333000181"); // "11.222.333/0001-81"
Bea.fmt.cpf("12345678901");     // "123.456.789-01"
Bea.fmt.cep("01310100");        // "01310-100"
Bea.fmt.fone("11987654321");    // "(11) 98765-4321"
Bea.fmt.date(new Date());       // "08/05/2026"
Bea.fmt.dateTime(new Date());   // "08/05/2026 14:32"

Validação BR

Bea.validate.cpf("12345678901");   // boolean
Bea.validate.cnpj("11222333000181"); // boolean
Bea.validate.email("a@b.com");      // boolean
Bea.validate.cep("01310100");       // boolean

IA dentro do app

// completion textual
const resposta = await Bea.ai.complete({
  prompt: "Resume essa nota fiscal: " + texto,
  maxTokens: 300
});

// classificação rápida (yes/no, ou opções enum)
const cat = await Bea.ai.classify({
  text: descricao,
  options: ["receita", "despesa", "transferencia"]
});
Custos do Bea.ai

Bea.ai.complete e Bea.ai.classify chamam Claude internamente. Cada chamada conta no cap mensal do user que está usando o app. Se o app tem ML em loop (tipo classificar 10000 transações em uma vez), considere implementar com cache ou pedir confirmação antes.

Helpers de UX

// Toast (precisa BeaUI.ToastProvider envolvendo o app)
const { toast } = BeaUI.useToast();
toast("Salvo!", "success");
toast("Erro: " + e.message, "error");

// Confirm bloqueante
const ok = await Bea.confirm("Excluir este cliente?");
if (ok) { /* ... */ }

// Copy to clipboard
await Bea.copy("texto"); // boolean (true se funcionou)

Caminho de debug

Não tem console.log dentro do iframe?

Tem sim — abra DevTools antes de carregar o app. O console do iframe mostra junto com os logs da plataforma. Filtra por "iframe" no DevTools se quiser ver só o do seu app.

Próximo: BeaUI componentes →