From 47def907b60fd91c5743eff33df9e324559958bb Mon Sep 17 00:00:00 2001 From: Tarna <158784522+TarnaWijaya@users.noreply.github.com> Date: Sat, 1 Feb 2025 01:31:35 +0700 Subject: [PATCH] update main.js --- main.js | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/main.js b/main.js index e69de29..6f81eae 100644 --- a/main.js +++ b/main.js @@ -0,0 +1,81 @@ +const chatBox = document.getElementById('chat-box'); +const userInput = document.getElementById('user-input'); +const sendBtn = document.getElementById('send-btn'); + +function addMessage(role, content) { + const messageDiv = document.createElement('div'); + messageDiv.classList.add('message', role); + + const img = document.createElement('img'); + img.src = role === 'user' ? '../img/user.png' : '../img/ai.png'; + img.alt = role === 'user' ? 'User' : 'Tarz Bots'; + + const contentDiv = document.createElement('div'); + contentDiv.classList.add('message-content'); + contentDiv.textContent = content; + + const actionsDiv = document.createElement('div'); + actionsDiv.classList.add('message-actions'); + actionsDiv.innerHTML = ` + + + + + `; + + messageDiv.appendChild(img); + messageDiv.appendChild(contentDiv); + messageDiv.appendChild(actionsDiv); + chatBox.appendChild(messageDiv); + chatBox.scrollTop = chatBox.scrollHeight; +} + +async function sendMessage() { + const userMessage = userInput.value.trim(); + if (!userMessage) return; + + addMessage('user', userMessage); + userInput.value = ''; + + try { + const response = await fetch('https://api.gemini.google.com/v1/chat', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'AIzaSyC0Cjd5U_kIM9tvqxfjjvQ_MlhabjtxA30' + }, + body: JSON.stringify({ message: userMessage }) + }); + + const data = await response.json(); + addMessage('bot', data.response); + } catch (error) { + addMessage('bot', 'Maaf, terjadi kesalahan. Silakan coba lagi.'); + } +} + +function copyText(text) { + navigator.clipboard.writeText(text).then(() => { + alert('Teks berhasil disalin!'); + }); +} + +function likeMessage() { + alert('Anda menyukai pesan ini!'); +} + +function dislikeMessage() { + alert('Anda tidak menyukai pesan ini!'); +} + +function editMessage() { + alert('Fitur edit belum tersedia.'); +} + +sendBtn.addEventListener('click', sendMessage); +userInput.addEventListener('keypress', (e) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + sendMessage(); + } +}); \ No newline at end of file