| import React, { useMemo } from 'react'; | |
| import { AuthType } from 'librechat-data-provider'; | |
| import SearchApiKeyDialog from '~/components/SidePanel/Agents/Search/ApiKeyDialog'; | |
| import CodeApiKeyDialog from '~/components/SidePanel/Agents/Code/ApiKeyDialog'; | |
| import { useBadgeRowContext } from '~/Providers'; | |
| function ToolDialogs() { | |
| const { webSearch, codeInterpreter, searchApiKeyForm, codeApiKeyForm } = useBadgeRowContext(); | |
| const { authData: webSearchAuthData } = webSearch; | |
| const { authData: codeAuthData } = codeInterpreter; | |
| const { | |
| methods: searchMethods, | |
| onSubmit: searchOnSubmit, | |
| isDialogOpen: searchDialogOpen, | |
| setIsDialogOpen: setSearchDialogOpen, | |
| handleRevokeApiKey: searchHandleRevoke, | |
| badgeTriggerRef: searchBadgeTriggerRef, | |
| menuTriggerRef: searchMenuTriggerRef, | |
| } = searchApiKeyForm; | |
| const { | |
| methods: codeMethods, | |
| onSubmit: codeOnSubmit, | |
| isDialogOpen: codeDialogOpen, | |
| setIsDialogOpen: setCodeDialogOpen, | |
| handleRevokeApiKey: codeHandleRevoke, | |
| badgeTriggerRef: codeBadgeTriggerRef, | |
| menuTriggerRef: codeMenuTriggerRef, | |
| } = codeApiKeyForm; | |
| const searchAuthTypes = useMemo( | |
| () => webSearchAuthData?.authTypes ?? [], | |
| [webSearchAuthData?.authTypes], | |
| ); | |
| const codeAuthType = useMemo(() => codeAuthData?.message ?? false, [codeAuthData?.message]); | |
| return ( | |
| <> | |
| <SearchApiKeyDialog | |
| onSubmit={searchOnSubmit} | |
| authTypes={searchAuthTypes} | |
| isOpen={searchDialogOpen} | |
| onRevoke={searchHandleRevoke} | |
| register={searchMethods.register} | |
| onOpenChange={setSearchDialogOpen} | |
| handleSubmit={searchMethods.handleSubmit} | |
| triggerRefs={[searchMenuTriggerRef, searchBadgeTriggerRef]} | |
| isToolAuthenticated={webSearchAuthData?.authenticated ?? false} | |
| /> | |
| <CodeApiKeyDialog | |
| onSubmit={codeOnSubmit} | |
| isOpen={codeDialogOpen} | |
| onRevoke={codeHandleRevoke} | |
| register={codeMethods.register} | |
| onOpenChange={setCodeDialogOpen} | |
| handleSubmit={codeMethods.handleSubmit} | |
| triggerRefs={[codeMenuTriggerRef, codeBadgeTriggerRef]} | |
| isUserProvided={codeAuthType === AuthType.USER_PROVIDED} | |
| isToolAuthenticated={codeAuthData?.authenticated ?? false} | |
| /> | |
| </> | |
| ); | |
| } | |
| export default ToolDialogs; | |