import React, { useState, useEffect } from 'react'; import Select from '@/_ui/Select'; import { appsService } from '@/_services'; import CodeHinter from '@/AppBuilder/CodeEditor'; import './workflows-query.scss'; import { v4 as uuidv4 } from 'uuid'; import useStore from '@/AppBuilder/_stores/store'; import { useModuleContext } from '@/AppBuilder/_contexts/ModuleContext'; import usePopoverObserver from '@/AppBuilder/_hooks/usePopoverObserver'; import useWorkflowStore from '@/_stores/workflowStore'; import { useTranslation } from 'react-i18next'; export function Workflows({ options, optionsChanged, currentState }) { const { moduleId } = useModuleContext(); const { t } = useTranslation(); const [workflowOptions, setWorkflowOptions] = useState([]); const [isMenuOpen, setIsMenuOpen] = useState(false); const [_selectedWorkflowId, setSelectedWorkflowId] = useState(undefined); const [params, setParams] = useState([...(options.params ?? [{ key: '', value: '' }])]); const workflowIdFromStore = useWorkflowStore((state) => state.workflowId); const appIdFromStore = useStore((state) => state.appStore.modules[moduleId].app.appId); const appId = workflowIdFromStore || appIdFromStore; usePopoverObserver( document.getElementsByClassName('query-details')[0], document.querySelector('.workflow-select.react-select__control'), document.querySelector('.workflow-select.react-select__menu'), isMenuOpen, () => (document.querySelector('.workflow-select.react-select__menu').style.display = 'block'), () => (document.querySelector('.workflow-select.react-select__menu').style.display = 'none') ); useEffect(() => { appsService.getWorkflows(appId).then(({ workflows }) => { setWorkflowOptions( workflows.map((workflow) => ({ value: workflow.id, name: workflow.name, })) ); }); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); useEffect(() => { optionsChanged({ ...options, params, }); // eslint-disable-next-line react-hooks/exhaustive-deps }, [params]); return ( <>
{`To know more about querying workflows data,`}   {t('globals.readDocumentation', 'read documentation').toLowerCase()}