import React, { useEffect } from 'react'; import { useSelector, useDispatch } from 'react-redux'; import { setModel } from '~/store/submitSlice'; import GPTIcon from '../svg/GPTIcon'; import BingIcon from '../svg/BingIcon'; import { Button } from '../ui/Button.tsx'; import { DropdownMenu, DropdownMenuContent, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuTrigger } from '../ui/DropdownMenu.tsx'; export default function ModelMenu() { const dispatch = useDispatch(); const { model } = useSelector((state) => state.submit); const onChange = (value) => { dispatch(setModel(value)); }; useEffect(() => { const lastSelectedModel = JSON.parse(localStorage.getItem('model')); if (lastSelectedModel) { dispatch(setModel(lastSelectedModel)); } // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { localStorage.setItem('model', JSON.stringify(model)); }, [model]); const defaultColorProps = [ 'text-gray-500', 'hover:bg-gray-100', 'disabled:hover:bg-transparent', 'dark:hover:bg-gray-900', 'dark:hover:text-gray-400', 'dark:disabled:hover:bg-transparent' ]; const chatgptColorProps = [ 'text-green-700', 'dark:text-emerald-300', 'hover:bg-green-100', 'disabled:hover:bg-transparent', 'dark:hover:bg-opacity-50', 'dark:hover:bg-green-900', 'dark:hover:text-gray-100', 'dark:disabled:hover:bg-transparent' ]; const colorProps = model === 'chatgpt' ? chatgptColorProps : defaultColorProps; const icon = model === 'bingai' ? : ; return ( Select a Model ChatGPT BingAI {'ChatGPT (free)'} ); }