import { invoke } from "@tauri-apps/api/core"; const startAudioBtn = document.querySelector("#start-audio-btn"); const stopAudioBtn = document.querySelector("#stop-audio-btn"); const audioStatus = document.querySelector("#audio-status"); if (startAudioBtn === null || stopAudioBtn === null || audioStatus === null) { throw new Error("missing UI elements"); } function setAudioStatus(message: string): void { if (audioStatus) { audioStatus.textContent = message; } } function setAudioButtons(isRecording: boolean): void { if (startAudioBtn) { startAudioBtn.disabled = isRecording; } if (stopAudioBtn) { stopAudioBtn.disabled = !isRecording; } } startAudioBtn.addEventListener("click", async () => { startAudioBtn.disabled = true; try { const path = await invoke("start_audio_recording"); setAudioStatus(`Audio recording started.\nOutput: ${path}`); setAudioButtons(true); } catch (error) { setAudioStatus(`Start audio failed.\n${String(error)}`); setAudioButtons(false); } }); stopAudioBtn.addEventListener("click", async () => { stopAudioBtn.disabled = true; try { const path = await invoke("stop_audio_recording"); setAudioStatus(`Audio recording stopped.\nSaved file: ${path}`); setAudioButtons(false); } catch (error) { setAudioStatus(`Stop audio failed.\n${String(error)}`); setAudioButtons(true); } });