main #65
					 5 changed files with 40 additions and 27 deletions
				
			
		|  | @ -17,12 +17,21 @@ const InputOutputBackend: React.FC = () => { | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   /* Variables for System-prompt */ |   /* Variables for System-prompt */ | ||||||
|   const [preferredCurrency, setPreferredCurrency] = useState(localStorage.getItem("preferredCurrency") || "") |   const [preferredCurrency, setPreferredCurrency] = useState<string | null>("") | ||||||
|   const [preferredLanguage, setPreferredLanguage] = useState(localStorage.getItem("preferredLanguage") || "") |   const [preferredLanguage, setPreferredLanguage] = useState<string | null>("") | ||||||
|   const [timeFormat, setTimeFormat] = useState(localStorage.getItem("timeFormat") || "") |   const [timeFormat, setTimeFormat] = useState<string | null>("") | ||||||
|   const [preferredMeasurement, setPreferredMeasurement] = useState(localStorage.getItem("preferredMeasurement") || "") |   const [preferredMeasurement, setPreferredMeasurement] = useState<string | null>("") | ||||||
|   const [timeZone, setTimeZone] = useState(localStorage.getItem("timeZone") || "") |   const [timeZone, setTimeZone] = useState<string | null>("") | ||||||
|   const [dateFormat, setDateFormat] = useState(localStorage.getItem("dateFormat") || "") |   const [dateFormat, setDateFormat] = useState<string | null>("") | ||||||
|  | 
 | ||||||
|  |   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 [copyClicked, setCopyClicked] = useState(false) |   const [copyClicked, setCopyClicked] = useState(false) | ||||||
|   const [accessToken, setAccessToken] = useState("") |   const [accessToken, setAccessToken] = useState("") | ||||||
|  | @ -41,7 +50,6 @@ const InputOutputBackend: React.FC = () => { | ||||||
|   const [inputMessage, setInputMessage] = useState<string>("") |   const [inputMessage, setInputMessage] = useState<string>("") | ||||||
|   const [inputDisabled, setInputDisabled] = useState(false) |   const [inputDisabled, setInputDisabled] = useState(false) | ||||||
|   const [isRecording, setIsRecording] = useState(false) |   const [isRecording, setIsRecording] = useState(false) | ||||||
|   const [audioURL, setAudioURL] = useState<string | null>(null) |  | ||||||
|   const mediaRecorderRef = useRef<MediaRecorder | null>(null)  |   const mediaRecorderRef = useRef<MediaRecorder | null>(null)  | ||||||
|   const audioChunks = useRef<Blob[]>([]) |   const audioChunks = useRef<Blob[]>([]) | ||||||
| 
 | 
 | ||||||
|  | @ -190,16 +198,6 @@ const InputOutputBackend: React.FC = () => { | ||||||
|     setIsRecording(true) |     setIsRecording(true) | ||||||
|   } |   } | ||||||
|      |      | ||||||
|   const ffmpegRef = useRef<FFmpeg | null>(null) |  | ||||||
|   const audioRef = useRef("") |  | ||||||
| 
 |  | ||||||
|   const loadFFmpeg = async () => { |  | ||||||
|     if (!ffmpegRef.current) { |  | ||||||
|       ffmpegRef.current = new FFmpeg() |  | ||||||
|       await ffmpegRef.current.load() |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|      |  | ||||||
|   const stopRecording = () => { |   const stopRecording = () => { | ||||||
|     mediaRecorderRef.current?.stop() |     mediaRecorderRef.current?.stop() | ||||||
|     setIsRecording(false) |     setIsRecording(false) | ||||||
|  |  | ||||||
|  | @ -43,7 +43,7 @@ const Header: React.FC<HeaderProps> = ({ onViewChange, showDivs, toggleDivs, sho | ||||||
|         <div className="header-button header-logo"> |         <div className="header-button header-logo"> | ||||||
|           {/* AI logo or text */} |           {/* AI logo or text */} | ||||||
|         </div> |         </div> | ||||||
|         <div className="login-button"> |         <div className="login-button-container"> | ||||||
|           <Login />  |           <Login />  | ||||||
|         </div> |         </div> | ||||||
|       </header> |       </header> | ||||||
|  |  | ||||||
|  | @ -40,7 +40,7 @@ const InputFrontend = React.forwardRef<HTMLDivElement, InputProps>( | ||||||
|         <button type="button" onClick={() => onSendClick(inputValue, false)} disabled={inputDisabled ? true : false}> |         <button type="button" onClick={() => onSendClick(inputValue, false)} disabled={inputDisabled ? true : false}> | ||||||
|           <img src="/img/send.svg" alt="send" /> |           <img src="/img/send.svg" alt="send" /> | ||||||
|         </button> |         </button> | ||||||
|         <button className={`microphone-button ${isRecording ? "red":"green"}`} type="button" onClick={onMicClick}> |         <button className={`microphone-button ${isRecording ? "red": "var(--input-button-color)"}`} type="button" onClick={onMicClick}> | ||||||
|           <img src="/img/microphone.svg" alt="microphone" /> |           <img src="/img/microphone.svg" alt="microphone" /> | ||||||
|         </button> |         </button> | ||||||
|       </div> |       </div> | ||||||
|  |  | ||||||
|  | @ -1,3 +1,4 @@ | ||||||
|  | "use client"; | ||||||
| import React, { useState, useEffect } from 'react'; | import React, { useState, useEffect } from 'react'; | ||||||
| 
 | 
 | ||||||
| // Define the available model options
 | // Define the available model options
 | ||||||
|  | @ -18,9 +19,10 @@ const modelDropdown = { | ||||||
| const Models: React.FC = () => { | const Models: React.FC = () => { | ||||||
|   // Initialize state with value from localStorage or default to ''
 |   // Initialize state with value from localStorage or default to ''
 | ||||||
|   const [selectedModel, setSelectedModel] = useState(''); |   const [selectedModel, setSelectedModel] = useState(''); | ||||||
|   const radioSelection = localStorage.getItem('radioSelection') |   const [radioSelection, setRadioSelection] = useState<string | null>("") | ||||||
|    |    | ||||||
|   useEffect(() => { |   useEffect(() => { | ||||||
|  |     setRadioSelection(localStorage.getItem('radioSelection')) | ||||||
|     const handleStorageChange = () => { |     const handleStorageChange = () => { | ||||||
|       setSelectedModel(localStorage.getItem('selectedModel') || ''); |       setSelectedModel(localStorage.getItem('selectedModel') || ''); | ||||||
|     }; |     }; | ||||||
|  |  | ||||||
|  | @ -40,16 +40,23 @@ header{ | ||||||
| .nav-links{ | .nav-links{ | ||||||
|     position: absolute; |     position: absolute; | ||||||
|     display: flex; |     display: flex; | ||||||
|     top: 2vh; |  | ||||||
|     gap: 1em; |     gap: 1em; | ||||||
|     width: 25em; |     width: 35vw; | ||||||
|     height: 2em; |     height: 100%; | ||||||
|  |     align-items: center; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .nav-btn{ | .nav-btn{ | ||||||
|     background-color: transparent; |     background-color: var(--input-button-color); | ||||||
|     border: none; |     border: none; | ||||||
|     font-size: 0.9em; |     font-size: 0.9em; | ||||||
|  |     height: 50%; | ||||||
|  |     border-radius: 5px; | ||||||
|  |     padding: 1px 15px; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .nav-btn:hover{ | ||||||
|  |     background-color: var(--input-button-hover-color); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .header-logo{ | .header-logo{ | ||||||
|  | @ -64,7 +71,13 @@ header{ | ||||||
|     border: none; |     border: none; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .login-button .header-login-button{ | .login-button-container{ | ||||||
|  |     height: 100%; | ||||||
|  |     display: flex; | ||||||
|  |     align-items: center; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .header-login-button{ | ||||||
|     font-size: 2vh; |     font-size: 2vh; | ||||||
|     position: absolute; |     position: absolute; | ||||||
|     top: 1.5vh; |     top: 1.5vh; | ||||||
|  | @ -78,6 +91,6 @@ header{ | ||||||
|     transition: background-color 0.3s; |     transition: background-color 0.3s; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| .login-button button:hover { | .header-login-button:hover { | ||||||
|     background-color: var(--input-button-hover-color); |     background-color: var(--input-button-hover-color); | ||||||
| } | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue