Skip to main content
Glama
statusUtils.ts2.26 kB
/** * Status Utility Functions * * Helper functions for calculating and processing wizard status information. */ import { WizardStep } from '../types' import type { WizardState } from '../types' /** * Calculate the overall progress percentage based on current step */ export function calculateProgress(currentStep: string): number { // Map steps to approximate progress percentages const progressMap: Record<string, number> = { initiate: 0, project_selection: 20, issue_type_selection: 40, field_completion: 60, review: 80, submission: 90, } return progressMap[currentStep] || 0 } /** * Handle project selection step completion status */ function handleProjectSelectionStep(state: WizardState): { complete: boolean; requiredFields?: string[] } { return { complete: !!state.projectKey, requiredFields: state.projectKey ? [] : ['projectKey'], } } /** * Handle issue type selection step completion status */ function handleIssueTypeSelectionStep(state: WizardState): { complete: boolean; requiredFields?: string[] } { return { complete: !!state.issueTypeId, requiredFields: state.issueTypeId ? [] : ['issueTypeId'], } } /** * Handle field completion step completion status */ function handleFieldCompletionStep(state: WizardState): { complete: boolean; requiredFields?: string[] } { const hasRequiredFields = state.fields && Object.keys(state.fields).length > 0 return { complete: hasRequiredFields, requiredFields: hasRequiredFields ? [] : ['summary'], } } /** * Handle default step completion status */ function handleDefaultStep(): { complete: boolean; requiredFields?: string[] } { return { complete: true } } /** * Calculate completion status for the current step */ export function calculateStepCompletion(state: WizardState): { complete: boolean; requiredFields?: string[] } { // Route to the appropriate handler based on the current step if (state.currentStep === WizardStep.PROJECT_SELECTION) return handleProjectSelectionStep(state) if (state.currentStep === WizardStep.ISSUE_TYPE_SELECTION) return handleIssueTypeSelectionStep(state) if (state.currentStep === WizardStep.FIELD_COMPLETION) return handleFieldCompletionStep(state) // Default for other steps return handleDefaultStep() }

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/tbreeding/jira-mcp'

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