"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useGenAIConnectors = useGenAIConnectors; var _react = require("react"); var _useLocalStorage = _interopRequireDefault(require("react-use/lib/useLocalStorage")); var _use_observability_ai_assistant = require("./use_observability_ai_assistant"); /* * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one * or more contributor license agreements. Licensed under the Elastic License * 2.0; you may not use this file except in compliance with the Elastic License * 2.0. */ function useGenAIConnectors() { var _connectors$; const assistant = (0, _use_observability_ai_assistant.useObservabilityAIAssistant)(); const [connectors, setConnectors] = (0, _react.useState)(undefined); const [selectedConnector, setSelectedConnector] = (0, _useLocalStorage.default)(`xpack.observabilityAiAssistant.lastUsedConnector`, ''); const [loading, setLoading] = (0, _react.useState)(false); const [error, setError] = (0, _react.useState)(undefined); (0, _react.useEffect)(() => { setLoading(true); const controller = new AbortController(); assistant.callApi('GET /internal/observability_ai_assistant/connectors', { signal: controller.signal }).then(results => { setConnectors(results); setSelectedConnector(connectorId => { if (connectorId && results.findIndex(result => result.id === connectorId) === -1) { return ''; } return connectorId; }); setError(undefined); }).catch(err => { setError(err); setConnectors(undefined); }).finally(() => { setLoading(false); }); return () => { controller.abort(); }; }, [assistant, setSelectedConnector]); return { connectors, loading, error, selectedConnector: selectedConnector || (connectors === null || connectors === void 0 ? void 0 : (_connectors$ = connectors[0]) === null || _connectors$ === void 0 ? void 0 : _connectors$.id), selectConnector: id => { setSelectedConnector(id); } }; }