Skip to content

Commit

Permalink
feat: make settings pages visible (#690)
Browse files Browse the repository at this point in the history
  • Loading branch information
lily-de authored Jan 22, 2025
1 parent f38f0b7 commit bb398d6
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 70 deletions.
116 changes: 57 additions & 59 deletions ui/desktop/src/components/BottomMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,70 +64,68 @@ export default function BottomMenu({ hasMessages }) {
</span>

{/* Model Selector Dropdown - Only in development */}
{process.env.NODE_ENV === "development" && (
<div className="relative flex items-center ml-auto mr-4" ref={dropdownRef}>
<div
className="flex items-center cursor-pointer"
onClick={() => setIsModelMenuOpen(!isModelMenuOpen)}
>
<span>{currentModel?.name || "Select Model"}</span>
{isModelMenuOpen ? (
<ChevronUp className="w-4 h-4 ml-1" />
) : (
<ChevronDown className="w-4 h-4 ml-1" />
)}
</div>
<div className="relative flex items-center ml-auto mr-4" ref={dropdownRef}>
<div
className="flex items-center cursor-pointer"
onClick={() => setIsModelMenuOpen(!isModelMenuOpen)}
>
<span>{currentModel?.name || "Select Model"}</span>
{isModelMenuOpen ? (
<ChevronUp className="w-4 h-4 ml-1" />
) : (
<ChevronDown className="w-4 h-4 ml-1" />
)}
</div>

{/* Dropdown Menu */}
{isModelMenuOpen && (
<div className="absolute bottom-[30px] right-0 w-[300px] bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg shadow-lg">
<div className="p-2">
<ModelRadioList
className="divide-y divide-gray-100 dark:divide-gray-700"
renderItem={({ model, isSelected, onSelect }) => (
<label key={model.name} className="block cursor-pointer">
<div className="flex items-center justify-between p-3 transition-colors
hover:text-gray-900 dark:hover:text-white"
onClick={onSelect}>
<div>
<p className="text-sm font-semibold">{model.name}</p>
<p className="text-xs text-muted-foreground">{model.provider}</p>
</div>
<div className="relative">
<input
type="radio"
name="recentModels"
value={model.name}
checked={isSelected}
onChange={onSelect}
className="peer sr-only"
/>
<div className="h-4 w-4 rounded-full border border-gray-400 dark:border-gray-500
peer-checked:border-[6px] peer-checked:border-black dark:peer-checked:border-white
peer-checked:bg-white dark:peer-checked:bg-black
transition-all duration-200 ease-in-out">
</div>
{/* Dropdown Menu */}
{isModelMenuOpen && (
<div className="absolute bottom-[30px] right-0 w-[300px] bg-white dark:bg-gray-800 border dark:border-gray-700 rounded-lg shadow-lg">
<div className="p-2">
<ModelRadioList
className="divide-y divide-gray-100 dark:divide-gray-700"
renderItem={({ model, isSelected, onSelect }) => (
<label key={model.name} className="block cursor-pointer">
<div className="flex items-center justify-between p-3 transition-colors
hover:text-gray-900 dark:hover:text-white"
onClick={onSelect}>
<div>
<p className="text-sm font-semibold">{model.name}</p>
<p className="text-xs text-muted-foreground">{model.provider}</p>
</div>
<div className="relative">
<input
type="radio"
name="recentModels"
value={model.name}
checked={isSelected}
onChange={onSelect}
className="peer sr-only"
/>
<div className="h-4 w-4 rounded-full border border-gray-400 dark:border-gray-500
peer-checked:border-[6px] peer-checked:border-black dark:peer-checked:border-white
peer-checked:bg-white dark:peer-checked:bg-black
transition-all duration-200 ease-in-out">
</div>
</div>
</label>
)}
/>
<div
className="flex items-center justify-between p-3 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700
border-t-2 border-gray-200 dark:border-gray-600"
onClick={() => {
setIsModelMenuOpen(false);
navigate("/settings");
}}
>
<span className="text-sm">Tools and Settings</span>
<Sliders className="w-5 h-5 ml-2 rotate-90" />
</div>
</div>
</label>
)}
/>
<div
className="flex items-center justify-between p-3 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-700
border-t-2 border-gray-200 dark:border-gray-600"
onClick={() => {
setIsModelMenuOpen(false);
navigate("/settings");
}}
>
<span className="text-sm">Tools and Settings</span>
<Sliders className="w-5 h-5 ml-2 rotate-90" />
</div>
</div>
)}
</div>
)}
</div>
)}
</div>
</div>
);
}
21 changes: 10 additions & 11 deletions ui/desktop/src/components/MoreMenu.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -206,17 +206,16 @@ export default function MoreMenu() {
)}

{/* Settings Menu */}
{process.env.NODE_ENV === "development" && (
<button
onClick={() => {
setOpen(false);
navigate("/settings");
}}
className="w-full text-left px-2 py-1.5 text-sm hover:bg-gray-700"
>
Settings
</button>
)}
<button
onClick={() => {
setOpen(false);
navigate("/settings");
}}
className="w-full text-left px-2 py-1.5 text-sm hover:bg-gray-700"
>
Settings
</button>


<button
onClick={() => {
Expand Down

0 comments on commit bb398d6

Please sign in to comment.