import { useState, useCallback } from 'react'; import { EModelEndpoint } from 'librechat-data-provider'; export const useKeyDialog = () => { const [keyDialogOpen, setKeyDialogOpen] = useState(false); const [keyDialogEndpoint, setKeyDialogEndpoint] = useState(null); const handleOpenKeyDialog = useCallback( (ep: EModelEndpoint, e: React.MouseEvent | React.KeyboardEvent) => { e.preventDefault(); e.stopPropagation(); setKeyDialogEndpoint(ep); setKeyDialogOpen(true); }, [], ); const onOpenChange = (open: boolean) => { if (!open && keyDialogEndpoint) { const button = document.getElementById(`endpoint-${keyDialogEndpoint}-settings`); if (button) { setTimeout(() => { button.focus(); }, 5); } } setKeyDialogOpen(open); }; return { keyDialogOpen, keyDialogEndpoint, onOpenChange, handleOpenKeyDialog, }; }; export default useKeyDialog;