import classNames from "classnames"; import { useCallback, useEffect } from "react"; import { fetch, isCloudEnvironment, useBoolean } from "@/utils"; import { checkCloudConnection } from "@/modules/cloud"; import { CaretIcon, CloseIcon, CloudIcon, LocalCogneeIcon } from "@/ui/Icons"; import { CTAButton, GhostButton, IconButton, Input, Modal } from "@/ui/elements"; import DatasetsAccordion, { DatasetsAccordionProps } from "./DatasetsAccordion"; type InstanceDatasetsAccordionProps = Omit; export default function InstanceDatasetsAccordion({ onDatasetsChange }: InstanceDatasetsAccordionProps) { const { value: isLocalCogneeConnected, setTrue: setLocalCogneeConnected, } = useBoolean(false); const { value: isCloudCogneeConnected, setTrue: setCloudCogneeConnected, } = useBoolean(isCloudEnvironment()); const checkConnectionToCloudCognee = useCallback((apiKey?: string) => { if (apiKey) { fetch.setApiKey(apiKey); } return checkCloudConnection() .then(setCloudCogneeConnected) }, [setCloudCogneeConnected]); useEffect(() => { const checkConnectionToLocalCognee = () => { fetch.checkHealth() .then(setLocalCogneeConnected) }; checkConnectionToLocalCognee(); }, [checkConnectionToCloudCognee, setCloudCogneeConnected, setLocalCogneeConnected]); const { value: isCloudConnectedModalOpen, setTrue: openCloudConnectionModal, setFalse: closeCloudConnectionModal, } = useBoolean(false); const handleCloudConnectionConfirm = (event: React.FormEvent) => { event.preventDefault(); const apiKeyValue = event.currentTarget.apiKey.value; checkConnectionToCloudCognee(apiKeyValue) .then(() => { closeCloudConnectionModal(); }); }; const isCloudEnv = isCloudEnvironment(); return (
local cognee
)} tools={isLocalCogneeConnected ? Connected : Not connected} switchCaretPosition={true} className="pt-3 pb-1.5" contentClassName="pl-4" onDatasetsChange={!isCloudEnv ? onDatasetsChange : () => {}} /> {isCloudCogneeConnected ? (
cloud cognee
)} tools={Connected} switchCaretPosition={true} className="pt-3 pb-1.5" contentClassName="pl-4" onDatasetsChange={isCloudEnv ? onDatasetsChange : () => {}} useCloud={true} /> ) : ( )}
Connect to cloud?
Please provide your API key. You can find it on our platform.
closeCloudConnectionModal()}>cancel connect
); }