56 lines
2.2 KiB
JavaScript
56 lines
2.2 KiB
JavaScript
document.addEventListener('DOMContentLoaded', function() {
|
|
const toggleButton = document.getElementById('toggleListening');
|
|
const transcriptDiv = document.getElementById('transcript');
|
|
const aiResponseDiv = document.getElementById('aiResponse');
|
|
const apiKeyInput = document.getElementById('apiKeyInput');
|
|
const saveApiKeyButton = document.getElementById('saveApiKey');
|
|
let isListening = false;
|
|
|
|
// Load saved API key
|
|
chrome.storage.sync.get('openaiApiKey', (result) => {
|
|
if (result.openaiApiKey) {
|
|
apiKeyInput.value = result.openaiApiKey;
|
|
saveApiKeyButton.textContent = 'API Key Saved';
|
|
saveApiKeyButton.disabled = true;
|
|
}
|
|
});
|
|
|
|
apiKeyInput.addEventListener('input', function() {
|
|
saveApiKeyButton.textContent = 'Save API Key';
|
|
saveApiKeyButton.disabled = false;
|
|
});
|
|
|
|
saveApiKeyButton.addEventListener('click', function() {
|
|
const apiKey = apiKeyInput.value.trim();
|
|
if (apiKey) {
|
|
chrome.runtime.sendMessage({action: 'setApiKey', apiKey: apiKey});
|
|
saveApiKeyButton.textContent = 'API Key Saved';
|
|
saveApiKeyButton.disabled = true;
|
|
} else {
|
|
alert('Please enter a valid API key');
|
|
}
|
|
});
|
|
|
|
toggleButton.addEventListener('click', function() {
|
|
isListening = !isListening;
|
|
toggleButton.textContent = isListening ? 'Stop Listening' : 'Start Listening';
|
|
|
|
if (isListening) {
|
|
chrome.runtime.sendMessage({action: 'startListening'});
|
|
transcriptDiv.textContent = 'Listening for questions...';
|
|
aiResponseDiv.textContent = 'The answer will appear here.';
|
|
} else {
|
|
chrome.runtime.sendMessage({action: 'stopListening'});
|
|
transcriptDiv.textContent = '';
|
|
aiResponseDiv.textContent = '';
|
|
}
|
|
});
|
|
|
|
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
|
|
if (request.action === 'updateTranscript') {
|
|
transcriptDiv.textContent = request.transcript;
|
|
} else if (request.action === 'updateAIResponse') {
|
|
aiResponseDiv.textContent = request.response;
|
|
}
|
|
});
|
|
}); |