import React, { useEffect, useRef } from 'react';
import { EyeOff } from 'lucide-react';
export const DEFAULT_CHAT_SETTINGS = {
advancedHelpEnabled: false,
askBeforeActing: true,
executionProfile: 'fast',
incognito: false,
};
function Toggle({ value, onChange, }) {
return ();
}
export function ChatSettingsPopover({ open, onClose, settings, onChange, }) {
const panelRef = useRef(null);
useEffect(() => {
if (!open)
return;
const onKeyDown = (e) => {
if (e.key === 'Escape')
onClose();
};
const onMouseDown = (e) => {
const t = e.target;
if (panelRef.current && !panelRef.current.contains(t))
onClose();
};
window.addEventListener('keydown', onKeyDown);
window.addEventListener('mousedown', onMouseDown);
return () => {
window.removeEventListener('keydown', onKeyDown);
window.removeEventListener('mousedown', onMouseDown);
};
}, [open, onClose]);
if (!open)
return null;
return (
Chat settings
These apply only to this chat.
Advanced help
Enables optional smart actions when available.
onChange({ ...settings, advancedHelpEnabled: v })}/>
Ask before acting
Confirm before running advanced actions.
onChange({ ...settings, askBeforeActing: v })}/>
{/* Divider */}
Incognito mode
No memories stored, no profile shared. Perfect for work tasks.
onChange({ ...settings, incognito: v })}/>
Execution style
Speed vs quality preference.
{['fast', 'balanced', 'quality'].map((p) => {
const active = settings.executionProfile === p;
return ();
})}
);
}