Skip to main content
Glama
incomplete-settings-widget.tsx2.07 kB
import { useReactFlow } from '@xyflow/react'; import { t } from 'i18next'; import React, { useMemo } from 'react'; import { BuilderState } from '@/app/builder/builder-hooks'; import { Button } from '@/components/ui/button'; import { FlowAction, FlowVersion, Step, flowStructureUtil, } from '@activepieces/shared'; import { flowCanvasUtils } from '../utils/flow-canvas-utils'; type IncompleteSettingsButtonProps = { flowVersion: FlowVersion; selectStepByName: BuilderState['selectStepByName']; }; const IncompleteSettingsButton: React.FC<IncompleteSettingsButtonProps> = ({ flowVersion, selectStepByName, }) => { const invalidSteps = useMemo( () => flowStructureUtil .getAllSteps(flowVersion.trigger) .filter(filterValidOrSkippedSteps).length, [flowVersion], ); const { fitView } = useReactFlow(); function onClick() { const invalidSteps = flowStructureUtil .getAllSteps(flowVersion.trigger) .filter(filterValidOrSkippedSteps); if (invalidSteps.length > 0) { selectStepByName(invalidSteps[0].name); fitView( flowCanvasUtils.createFocusStepInGraphParams(invalidSteps[0].name), ); } } return ( !flowVersion.valid && ( <Button variant="ghost" className="h-[28px] hover:bg-amber-50 p-2 dark:hover:bg-amber-950 dark:bg-amber-950 bg-amber-50 border border-solid border-amber-500 hover:border-amber-700 dark:hover:border-amber-600 dark:border-amber-900 dark:text-amber-600 text-amber-700 hover:text-amber-700 dark:hover:text-amber-600 animate-fade" key={'complete-flow-button'} onClick={(e) => { onClick(); e.stopPropagation(); e.preventDefault(); }} > {t('incompleteSteps', { invalidSteps: invalidSteps })} </Button> ) ); }; IncompleteSettingsButton.displayName = 'IncompleteSettingsButton'; export default IncompleteSettingsButton; function filterValidOrSkippedSteps(step: Step) { if ((step as FlowAction).skip) return false; return !step.valid; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server