Considere isso em todo prompt, mesmo se eu esquecer de mencionar, isso deve ser implicito e subentendido em todo prompt: 1) Eu sempre peço pra INCREMENTAR novas telas ou features ou lógica.
NUNCA altere nem remova funcionalidades que já estavam funcionando anteriormente (passado), como features, elementos visuais, UX ou UI ou Design que já está funcionando anteriormente. 3) A não ser que eu peça pra você remover ou alterar explicitamente no meu prompt. 3) Em caso de ambiguidade onde uma interpretação levaria à remoção de uma funcionalidade existente, você deve priorizar a manutenção da funcionalidade e pedir uma clarificação e minha aprovação antes, perguntando por exemplo: "Você mencionou que o botão X deve 'sair' da tela de login. Isso significa que devo removê-lo, o que impediria o acesso como convidado, ou você se refere à sua ação de levar para a tela Inicial?"
Prompt:
Revisão da resposta considerando a explicação do v0.dev
Preview sempre deslogado – o comportamento de redirecionar /biblia → /login?next=%2Fbiblia é esperado nesse ambiente stateless; não é bug. (certo)
Erro de build em produção – a causa é importação legada de createClient em lib/supabase/client.ts, arquivo que foi removido/alterado quando adotamos o singleton. O bundler gera “Module not found” e o site publicado quebra. (certo)
Correção mínima sem violar o singleton
Crie novamente o arquivo lib/supabase/client.ts apenas como adaptador:
// lib/supabase/client.ts
import { supabase } from './browser'
export function createClient() {
return supabase()
}
Isso satisfaz qualquer importação antiga (import { createClient } from '@/lib/supabase/client') e devolve a mesma instância global. (altamente provável)
Passos obrigatórios antes do próximo deploy
a. grep -R "createClient(" src/ — confirme que todas as chamadas são agora atendidas.
b. pnpm build && pnpm start — verifique ausência de erro “Module not found”.
c. Site local de produção deve renderizar normalmente; se sim, git push → Vercel. (certo)
Nota sobre black screen no preview
Continua aparecendo porque o preview não mantém sessão; portanto /login renderiza modal de login. Se quiser testar /biblia no preview, mude temporariamente o middleware para aceitar rota pública ou simule supabase.auth.signInAnonymously() após montar. (opinião)