diff --git a/src/lib/commands.svelte.ts b/src/lib/commands.svelte.ts index 0648b9e..c5f13f2 100644 --- a/src/lib/commands.svelte.ts +++ b/src/lib/commands.svelte.ts @@ -14,7 +14,8 @@ export class GlobalState { selectedConfigDirectory: '', yamlContent: '', keywordDetected: false, - isRecording: false + isRecording: false, + keyword: '' }); public isVoiceInput = $state(false); @@ -57,6 +58,12 @@ export class GlobalState { set isRecording(value: boolean) { this._state.isRecording = value; } + get keyword() { + return this._state.keyword; + } + set keyword(value: string) { + this._state.keyword = value; + } // async submit() { // this.greet = await invoke('greet', { name: this.prompt }); diff --git a/src/lib/utils/fetchKeyword.ts b/src/lib/utils/fetchKeyword.ts new file mode 100644 index 0000000..2e5d9fa --- /dev/null +++ b/src/lib/utils/fetchKeyword.ts @@ -0,0 +1,16 @@ +export async function fetchKeyword(): Promise { + let keyword: string; + try { + const response = await fetch(`http://localhost:8000/config/keyword`, { + method: 'GET' + }); + if (!response.ok) { + throw new Error(`HTTP error ${response.status}`); + } + keyword = await response.text(); + return keyword; + } catch (error) { + console.error('Error fetching keyword:', error); + return 'Failed to fetch keyword. Is the go server running?'; + } +} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index 78a4a0b..6439852 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -6,13 +6,21 @@ import SpeechInput from './SpeechInput.svelte'; import TextInput from './TextInput.svelte'; import * as Tooltip from '$lib/components/ui/tooltip'; + import { fetchKeyword } from '$lib/utils/fetchKeyword'; const gs = new GlobalState(); + async function refreshKeyword() { + const newKeyword = await fetchKeyword(); + gs.keyword = newKeyword; + console.log('Refreshed keyword:', gs.keyword); + } + const onSwitch = () => { let inputMode: string; if (gs.isVoiceInput == true) { inputMode = 'STT'; + refreshKeyword(); } else { inputMode = 'text'; }