edit-mcp-form.tsx

Overview

edit-mcp-form.tsx is a React functional component file designed for rendering and managing a form to edit or create an MCP (presumably a "Managed Connection Point" or similar entity) within a client-side React application. This form leverages react-hook-form for form state management and validation, and zod for schema-based validation. It supports fields such as MCP name, URL, server type, and an optional authorization token.

The form integrates with internationalization (i18next) for localized placeholder and validation messages. It also uses custom UI components for form layout and inputs and allows notifying parent components about field changes through a callback mechanism.

Detailed Explanation


Enumerations

ServerType

export enum ServerType {
  SSE = 'sse',
  StreamableHttp = 'streamable-http',
}

Constants

FormId

export const FormId = 'EditMcpForm';

ServerTypeOptions

const ServerTypeOptions = buildOptions(ServerType);

Functions

useBuildFormSchema

export function useBuildFormSchema()

Usage Example:

const schema = useBuildFormSchema();

Components

EditMcpForm

export function EditMcpForm({
  form,
  onOk,
  setFieldChanged,
}: IModalProps<any> & {
  form: UseFormReturn<any>;
  setFieldChanged: Dispatch<SetStateAction<boolean>>;
})

Usage Example:

import { useForm } from 'react-hook-form';

const form = useForm({ defaultValues: { name: '', url: '', server_type: '', authorization_token: '' } });

function handleOk(data) {
  console.log('Submitted MCP data:', data);
}

function MyComponent() {
  const [fieldChanged, setFieldChanged] = React.useState(false);

  return (
    <EditMcpForm form={form} onOk={handleOk} setFieldChanged={setFieldChanged} />
  );
}

Implementation Details


Interactions with Other Parts of the Application


Visual Diagram

componentDiagram
    component EditMcpForm {
        +form: UseFormReturn
        +onOk(data: MCPData)
        +setFieldChanged(flag: boolean)
        +onSubmit(data: MCPData)
    }
    component useBuildFormSchema {
        +returns: z.Schema<MCPData>
    }
    component ServerType {
        <<enum>>
        +SSE
        +StreamableHttp
    }
    component ServerTypeOptions {
        +options: SelectOption[]
    }
    EditMcpForm --> useBuildFormSchema : uses
    EditMcpForm --> ServerTypeOptions : uses
    EditMcpForm --> "Form UI Components" : renders
    EditMcpForm --> "react-hook-form" : manages state
    useBuildFormSchema --> "i18next" : uses for localization

Summary

edit-mcp-form.tsx provides a robust, localized, and type-safe form component to create or edit MCP entities. It integrates modern React form management techniques with declarative schema validation and modular UI components. The form is designed to be embedded within modals and notify parent components about changes, fitting seamlessly into a larger React application architecture.