import React, { useState } from 'react'; import Arrow2 from './assets/dropdown-arrow.svg'; import ArrowLeft from './assets/arrow-left.svg'; import ArrowRight from './assets/arrow-right.svg'; type PromptProps = { prompts: string[]; selectedPrompt: string; onSelectPrompt: (prompt: string) => void; onAddPrompt: (name: string) => void; newPromptName: string; onNewPromptNameChange: (name: string) => void; isAddPromptModalOpen: boolean; onToggleAddPromptModal: () => void; onDeletePrompt: (name: string) => void; }; const Setting: React.FC = () => { const tabs = ['General', 'Prompts', 'Documents', 'Widgets']; const [activeTab, setActiveTab] = useState('General'); const [prompts, setPrompts] = useState(['Prompt 1', 'Prompt 2']); const [selectedPrompt, setSelectedPrompt] = useState(''); const [newPromptName, setNewPromptName] = useState(''); const [isAddPromptModalOpen, setAddPromptModalOpen] = useState(false); const onDeletePrompt = (name: string) => { setPrompts(prompts.filter((prompt) => prompt !== name)); setSelectedPrompt(''); // Clear the selected prompt }; return (

Settings

{tabs.map((tab, index) => ( ))}
{renderActiveTab()}
); function scrollTabs(direction: number) { const container = document.querySelector('.flex-nowrap'); if (container) { container.scrollLeft += direction * 100; // Adjust the scroll amount as needed } } function renderActiveTab() { switch (activeTab) { case 'General': return ; case 'Prompts': return ( ); case 'Documents': return ; case 'Widgets': return ; default: return null; } } function addPrompt(name: string) { if (name) { setPrompts([...prompts, name]); setNewPromptName(''); toggleAddPromptModal(); } } function toggleAddPromptModal() { setAddPromptModalOpen(!isAddPromptModalOpen); } }; const General: React.FC = () => { const themes = ['Light', 'Dark']; const languages = ['English', 'French', 'Hindi']; const [selectedTheme, setSelectedTheme] = useState(themes[0]); const [selectedLanguage, setSelectedLanguage] = useState(languages[0]); return (

Select Theme

Select Language

); }; export default Setting; const Prompts: React.FC = ({ prompts, selectedPrompt, onSelectPrompt, onAddPrompt, onDeletePrompt, }) => { const [isAddPromptModalOpen, setAddPromptModalOpen] = useState(false); const [newPromptName, setNewPromptName] = useState(''); const openAddPromptModal = () => { setAddPromptModalOpen(true); }; const closeAddPromptModal = () => { setAddPromptModalOpen(false); }; const handleDeletePrompt = () => { if (selectedPrompt) { onDeletePrompt(selectedPrompt); // Remove the selected prompt } }; return (

Select Prompt

{isAddPromptModalOpen && ( { onAddPrompt(newPromptName); closeAddPromptModal(); }} onClose={closeAddPromptModal} /> )}
); }; function Dropdown({ options, selectedValue, onSelect, }: { options: string[]; selectedValue: string; onSelect: (value: string) => void; }) { const [isOpen, setIsOpen] = useState(false); return (
{isOpen && (
{options.map((option, index) => (
{ onSelect(option); setIsOpen(false); }} className="flex cursor-pointer items-center justify-between border-b-2 py-3 hover:bg-gray-100" > {option}
))}
)}
); } type AddPromptModalProps = { newPromptName: string; onNewPromptNameChange: (name: string) => void; onAddPrompt: () => void; onClose: () => void; }; const AddPromptModal: React.FC = ({ newPromptName, onNewPromptNameChange, onAddPrompt, onClose, }) => { return (

Add New Prompt

onNewPromptNameChange(e.target.value)} className="mb-4 w-full rounded-lg border-2 p-2" />
); }; const Documents: React.FC = () => { return (

This is the Documents section.

); }; const Widgets: React.FC = () => { return
This is widgets
; };