File size: 987 Bytes
f0743f4 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import { useState, useCallback } from 'react';
import { EModelEndpoint } from 'librechat-data-provider';
export const useKeyDialog = () => {
const [keyDialogOpen, setKeyDialogOpen] = useState(false);
const [keyDialogEndpoint, setKeyDialogEndpoint] = useState<EModelEndpoint | null>(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;
|