feat: enhance CallWindow with error handling and track management
- Added error handling logic to manage Jitsi connection and track creation errors, providing user-friendly feedback through the new ErrorModal. - Introduced functionality to dynamically create and manage local audio and video tracks during calls. - Updated Jitsi configuration to separate host and port for improved connection handling. - Refactored call initiation logic to ensure robust error reporting and user guidance during connection issues.
This commit is contained in:
@@ -74,19 +74,17 @@ export const criarChamada = mutation({
|
||||
throw new Error('Você não participa desta conversa');
|
||||
}
|
||||
|
||||
// Verificar se já existe chamada ativa
|
||||
const chamadasAtivas = await ctx.db
|
||||
// Verificar se já existe chamada ativa (aguardando ou em_andamento)
|
||||
const todasAtivas = await ctx.db
|
||||
.query('chamadas')
|
||||
.withIndex('by_conversa', (q) => q.eq('conversaId', args.conversaId).eq('status', 'aguardando'))
|
||||
.withIndex('by_conversa', (q) => q.eq('conversaId', args.conversaId))
|
||||
.filter((q) =>
|
||||
q.or(
|
||||
q.eq(q.field('status'), 'aguardando'),
|
||||
q.eq(q.field('status'), 'em_andamento')
|
||||
)
|
||||
)
|
||||
.collect();
|
||||
|
||||
// Também verificar chamadas em andamento
|
||||
const chamadasEmAndamento = await ctx.db
|
||||
.query('chamadas')
|
||||
.withIndex('by_conversa', (q) => q.eq('conversaId', args.conversaId).eq('status', 'em_andamento'))
|
||||
.collect();
|
||||
|
||||
const todasAtivas = [...chamadasAtivas, ...chamadasEmAndamento];
|
||||
|
||||
if (todasAtivas.length > 0) {
|
||||
// Retornar chamada ativa existente
|
||||
@@ -492,18 +490,17 @@ export const obterChamadaAtiva = query({
|
||||
const participa = await verificarParticipanteConversa(ctx, args.conversaId, usuarioAtual._id);
|
||||
if (!participa) return null;
|
||||
|
||||
// Buscar chamada ativa
|
||||
const chamadasAguardando = await ctx.db
|
||||
// Buscar chamada ativa (aguardando ou em_andamento)
|
||||
const todasAtivas = await ctx.db
|
||||
.query('chamadas')
|
||||
.withIndex('by_conversa', (q) => q.eq('conversaId', args.conversaId).eq('status', 'aguardando'))
|
||||
.withIndex('by_conversa', (q) => q.eq('conversaId', args.conversaId))
|
||||
.filter((q) =>
|
||||
q.or(
|
||||
q.eq(q.field('status'), 'aguardando'),
|
||||
q.eq(q.field('status'), 'em_andamento')
|
||||
)
|
||||
)
|
||||
.collect();
|
||||
|
||||
const chamadasEmAndamento = await ctx.db
|
||||
.query('chamadas')
|
||||
.withIndex('by_conversa', (q) => q.eq('conversaId', args.conversaId).eq('status', 'em_andamento'))
|
||||
.collect();
|
||||
|
||||
const todasAtivas = [...chamadasAguardando, ...chamadasEmAndamento];
|
||||
|
||||
if (todasAtivas.length === 0) {
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user