cross-language-item.tsx


Overview

cross-language-item.tsx defines a reusable React functional component named CrossLanguageItem that renders a multi-select dropdown for choosing multiple languages. It leverages Ant Design's Select and Form components and integrates internationalization support using the react-i18next library.

This component is designed to be used within forms where users need to select one or more languages from a predefined list. It supports form binding via the Ant Design Form.Item's name property, making it easily integrable into form data management and validation flows.


Detailed Explanation

Constants


Types

CrossLanguageItemProps

Defines the props object accepted by the CrossLanguageItem component:

Property

Type

Default

Description

name

string \

string[]

['prompt_config', 'cross_languages']


Component: CrossLanguageItem

export const CrossLanguageItem = ({
  name = ['prompt_config', 'cross_languages'],
}: CrossLanguageItemProps) => {
  const { t } = useTranslation();

  return (
    <Form.Item
      label={t('chat.crossLanguage')}
      name={name}
      tooltip={t('chat.crossLanguageTip')}
    >
      <AntSelect
        options={options}
        allowClear
        placeholder={t('common.languagePlaceholder')}
        mode="multiple"
      />
    </Form.Item>
  );
};

Purpose

Renders a form item containing a multiple selection dropdown allowing users to choose one or more languages. It supports internationalization for labels, tooltips, and placeholders.

Parameters

Return Value

Returns a JSX element representing a labeled form item with a multi-select control.

Usage Example

import { Form } from 'antd';
import { CrossLanguageItem } from './cross-language-item';

const ExampleForm = () => {
  return (
    <Form onFinish={(values) => console.log(values)}>
      <CrossLanguageItem name="userLanguages" />
      <Form.Item>
        <button type="submit">Submit</button>
      </Form.Item>
    </Form>
  );
};

In this example, the selected languages will be stored under the key userLanguages in the form values.


Important Implementation Details


Interaction with Other Parts of the System


Visual Diagram

classDiagram
    class CrossLanguageItem {
        +name: string | string[]
        +() => JSX.Element
    }
    CrossLanguageItem ..> Form.Item : uses
    CrossLanguageItem ..> AntSelect : uses
    CrossLanguageItem ..> useTranslation : uses

Summary

cross-language-item.tsx provides a localized, form-integrated, multi-language selection UI component. It is simple, declarative, and designed for easy reuse in forms requiring users to select multiple languages from a fixed list. The component abstracts away the complexities of internationalization and form binding, allowing developers to focus on higher-level form logic and UI composition.