feat: update ESLint and TypeScript configurations across frontend and backend; enhance component structure and improve data handling in various modules

This commit is contained in:
2025-12-02 16:36:02 -03:00
parent f48d28067c
commit d79e6959c3
215 changed files with 29474 additions and 28173 deletions

View File

@@ -19,12 +19,7 @@
}) => void;
}
let {
open,
dispositivoAtual,
onClose,
onAplicar
}: Props = $props();
let { open, dispositivoAtual, onClose, onAplicar }: Props = $props();
let dispositivos = $state<{
microphones: DispositivoMedia[];
@@ -81,7 +76,9 @@
const constraints: MediaStreamConstraints = {
audio: audio
? {
deviceId: selecionados.microphoneId ? { exact: selecionados.microphoneId } : undefined
deviceId: selecionados.microphoneId
? { exact: selecionados.microphoneId }
: undefined
}
: false,
video: video
@@ -155,7 +152,7 @@
// Carregar dispositivos quando abrir
$effect(() => {
if (typeof window === 'undefined') return;
if (open) {
carregarDispositivos();
} else {
@@ -170,7 +167,7 @@
// Atualizar preview quando mudar seleção
$effect(() => {
if (typeof window === 'undefined') return;
if (open && (selecionados.microphoneId || selecionados.cameraId)) {
atualizarPreview();
}
@@ -222,9 +219,7 @@
{:else}
<!-- Seleção de Microfone -->
<div>
<label class="text-base-content mb-2 block text-sm font-medium">
Microfone
</label>
<label class="text-base-content mb-2 block text-sm font-medium"> Microfone </label>
<select
class="select select-bordered w-full"
bind:value={selecionados.microphoneId}
@@ -236,11 +231,7 @@
{/each}
</select>
{#if selecionados.microphoneId}
<button
type="button"
class="btn btn-sm btn-ghost mt-2"
onclick={testarAudio}
>
<button type="button" class="btn btn-sm btn-ghost mt-2" onclick={testarAudio}>
<Volume2 class="h-4 w-4" />
Testar
</button>
@@ -249,9 +240,7 @@
<!-- Seleção de Câmera -->
<div>
<label class="text-base-content mb-2 block text-sm font-medium">
Câmera
</label>
<label class="text-base-content mb-2 block text-sm font-medium"> Câmera </label>
<select
class="select select-bordered w-full"
bind:value={selecionados.cameraId}
@@ -267,9 +256,7 @@
<!-- Preview de Vídeo -->
{#if selecionados.cameraId}
<div>
<label class="text-base-content mb-2 block text-sm font-medium">
Preview
</label>
<label class="text-base-content mb-2 block text-sm font-medium"> Preview </label>
<div class="bg-base-300 aspect-video w-full overflow-hidden rounded-lg">
<video
bind:this={previewVideo}
@@ -285,13 +272,8 @@
<!-- Seleção de Alto-falante (se disponível) -->
{#if dispositivos.speakers.length > 0}
<div>
<label class="text-base-content mb-2 block text-sm font-medium">
Alto-falante
</label>
<select
class="select select-bordered w-full"
bind:value={selecionados.speakerId}
>
<label class="text-base-content mb-2 block text-sm font-medium"> Alto-falante </label>
<select class="select select-bordered w-full" bind:value={selecionados.speakerId}>
<option value={null}>Padrão do Sistema</option>
{#each dispositivos.speakers as speaker}
<option value={speaker.deviceId}>{speaker.label}</option>
@@ -304,15 +286,8 @@
<!-- Footer -->
<div class="modal-action border-base-300 border-t px-6 py-4">
<button type="button" class="btn btn-ghost" onclick={handleFechar}>
Cancelar
</button>
<button
type="button"
class="btn btn-primary"
onclick={handleAplicar}
disabled={carregando}
>
<button type="button" class="btn btn-ghost" onclick={handleFechar}> Cancelar </button>
<button type="button" class="btn btn-primary" onclick={handleAplicar} disabled={carregando}>
<Check class="h-4 w-4" />
Aplicar
</button>
@@ -324,4 +299,3 @@
</form>
</dialog>
{/if}