link-to-dataset-dialog.tsx


Overview

link-to-dataset-dialog.tsx is a React component file that provides a user interface dialog for linking datasets to one or more knowledge bases within an application. It implements a modal dialog with a multi-select form, enabling users to choose multiple knowledge items to associate with a dataset.

This file primarily exports the LinkToDatasetDialog component, which encapsulates the dialog UI, and the internal LinkToDatasetForm component, which handles the form logic and input controls. The dialog integrates tightly with form validation, localization, and asynchronous loading states, making it a reusable and user-friendly component for managing dataset-knowledge relationships.


Components and Functions

1. LinkToDatasetForm (React Functional Component)

Purpose

Renders the form inside the dialog that allows users to select multiple knowledge items to link with a dataset.

Props

interface LinkToDatasetFormProps {
  initialConnectedIds: string[];
  onConnectToKnowledgeOk: (knowledgeIds: string[]) => void;
}

Internal Details

Return

JSX form element with:

Usage Example

<LinkToDatasetForm
  initialConnectedIds={['id1', 'id2']}
  onConnectToKnowledgeOk={(ids) => console.log('Selected knowledge IDs:', ids)}
/>

2. LinkToDatasetDialog (React Functional Component)

Purpose

Provides a modal dialog wrapper around LinkToDatasetForm, including header, footer, and submit button with loading state.

Props

interface LinkToDatasetDialogProps extends IModalProps<any> {
  initialConnectedIds: string[];
  onConnectToKnowledgeOk: (knowledgeIds: string[]) => void;
  loading: boolean;
}

Internal Details

Return

JSX dialog element structured as:

Usage Example

<LinkToDatasetDialog
  hideModal={() => setShowDialog(false)}
  initialConnectedIds={['id1']}
  onConnectToKnowledgeOk={(ids) => saveKnowledgeLink(ids)}
  loading={isSaving}
/>

Important Implementation Details


Interaction with Other Parts of the System


Mermaid Component Diagram

componentDiagram
    LinkToDatasetDialog <|-- LinkToDatasetForm

    LinkToDatasetDialog : +hideModal()
    LinkToDatasetDialog : +initialConnectedIds: string[]
    LinkToDatasetDialog : +onConnectToKnowledgeOk(ids: string[]): void
    LinkToDatasetDialog : +loading: boolean

    LinkToDatasetForm : +initialConnectedIds: string[]
    LinkToDatasetForm : +onConnectToKnowledgeOk(ids: string[]): void
    LinkToDatasetForm : -form: react-hook-form instance
    LinkToDatasetForm : -options: knowledge options[]
    LinkToDatasetForm : +onSubmit(data): void

    LinkToDatasetDialog o-- Dialog
    LinkToDatasetDialog o-- DialogContent
    LinkToDatasetDialog o-- DialogHeader
    LinkToDatasetDialog o-- DialogFooter
    LinkToDatasetDialog o-- ButtonLoading

    LinkToDatasetForm o-- Form
    LinkToDatasetForm o-- MultiSelect
    LinkToDatasetForm o-- FormField

Summary

The link-to-dataset-dialog.tsx file implements a modal dialog component for linking datasets to multiple knowledge bases. It leverages modern React form management, schema validation, localization, and UI libraries to provide a polished and accessible user experience. The separation between the dialog wrapper (LinkToDatasetDialog) and the form (LinkToDatasetForm) enables modularity and easier maintenance. This component is designed to integrate tightly into the broader application workflows for managing dataset metadata and knowledge relationships.