diff --git a/app/backend/InputOutputHandler.tsx b/app/backend/InputOutputHandler.tsx index 4fa0042..47a6e1f 100644 --- a/app/backend/InputOutputHandler.tsx +++ b/app/backend/InputOutputHandler.tsx @@ -17,21 +17,12 @@ const InputOutputBackend: React.FC = () => { } /* Variables for System-prompt */ - const [preferredCurrency, setPreferredCurrency] = useState("") - const [preferredLanguage, setPreferredLanguage] = useState("") - const [timeFormat, setTimeFormat] = useState("") - const [preferredMeasurement, setPreferredMeasurement] = useState("") - const [timeZone, setTimeZone] = useState("") - const [dateFormat, setDateFormat] = useState("") - - useEffect(() => { - setPreferredCurrency(localStorage.getItem("preferredCurrency")) - setPreferredLanguage(localStorage.getItem("preferredLanguage")) - setTimeFormat(localStorage.getItem("timeFormat")) - setPreferredMeasurement(localStorage.getItem("preferredMeasurement")) - setTimeZone(localStorage.getItem("timeZone")) - setDateFormat(localStorage.getItem("dateFormat")) - }) + const [preferredCurrency, setPreferredCurrency] = useState(localStorage.getItem("preferredCurrency") || "") + const [preferredLanguage, setPreferredLanguage] = useState(localStorage.getItem("preferredLanguage") || "") + const [timeFormat, setTimeFormat] = useState(localStorage.getItem("timeFormat") || "") + const [preferredMeasurement, setPreferredMeasurement] = useState(localStorage.getItem("preferredMeasurement") || "") + const [timeZone, setTimeZone] = useState(localStorage.getItem("timeZone") || "") + const [dateFormat, setDateFormat] = useState(localStorage.getItem("dateFormat") || "") const [copyClicked, setCopyClicked] = useState(false) const [accessToken, setAccessToken] = useState("") @@ -50,6 +41,7 @@ const InputOutputBackend: React.FC = () => { const [inputMessage, setInputMessage] = useState("") const [inputDisabled, setInputDisabled] = useState(false) const [isRecording, setIsRecording] = useState(false) + const [audioURL, setAudioURL] = useState(null) const mediaRecorderRef = useRef(null) const audioChunks = useRef([]) @@ -197,6 +189,16 @@ const InputOutputBackend: React.FC = () => { mediaRecorder.start() setIsRecording(true) } + + const ffmpegRef = useRef(null) + const audioRef = useRef("") + + const loadFFmpeg = async () => { + if (!ffmpegRef.current) { + ffmpegRef.current = new FFmpeg() + await ffmpegRef.current.load() + } + } const stopRecording = () => { mediaRecorderRef.current?.stop() diff --git a/app/components/Header.tsx b/app/components/Header.tsx index 8a930e3..0445db4 100644 --- a/app/components/Header.tsx +++ b/app/components/Header.tsx @@ -43,7 +43,7 @@ const Header: React.FC = ({ onViewChange, showDivs, toggleDivs, sho
{/* AI logo or text */}
-
+
diff --git a/app/components/InputFrontend.tsx b/app/components/InputFrontend.tsx index f02442b..74539e6 100644 --- a/app/components/InputFrontend.tsx +++ b/app/components/InputFrontend.tsx @@ -40,7 +40,7 @@ const InputFrontend = React.forwardRef( -
diff --git a/app/components/Models.tsx b/app/components/Models.tsx index 894623a..17f7f46 100644 --- a/app/components/Models.tsx +++ b/app/components/Models.tsx @@ -1,4 +1,3 @@ -"use client"; import React, { useState, useEffect } from 'react'; // Define the available model options @@ -19,10 +18,9 @@ const modelDropdown = { const Models: React.FC = () => { // Initialize state with value from localStorage or default to '' const [selectedModel, setSelectedModel] = useState(''); - const [radioSelection, setRadioSelection] = useState("") - + const radioSelection = localStorage.getItem('radioSelection') + useEffect(() => { - setRadioSelection(localStorage.getItem('radioSelection')) const handleStorageChange = () => { setSelectedModel(localStorage.getItem('selectedModel') || ''); }; diff --git a/app/styles/header.css b/app/styles/header.css index 99343f2..5e84cc5 100644 --- a/app/styles/header.css +++ b/app/styles/header.css @@ -40,23 +40,16 @@ header{ .nav-links{ position: absolute; display: flex; + top: 2vh; gap: 1em; - width: 35vw; - height: 100%; - align-items: center; + width: 25em; + height: 2em; } .nav-btn{ - background-color: var(--input-button-color); + background-color: transparent; border: none; font-size: 0.9em; - height: 50%; - border-radius: 5px; - padding: 1px 15px; -} - -.nav-btn:hover{ - background-color: var(--input-button-hover-color); } .header-logo{ @@ -71,13 +64,7 @@ header{ border: none; } -.login-button-container{ - height: 100%; - display: flex; - align-items: center; -} - -.header-login-button{ +.login-button .header-login-button{ font-size: 2vh; position: absolute; top: 1.5vh; @@ -91,6 +78,6 @@ header{ transition: background-color 0.3s; } -.header-login-button:hover { +.login-button button:hover { background-color: var(--input-button-hover-color); } \ No newline at end of file