import React, { useContext, useState } from 'react'; import type { SidebarProps } from '../../../../types'; import { RIGHT_SIDEBAR_WIDTH } from '../../../../constants'; import { I18nContext } from '../../../../contexts'; import { getSidebarContentHeight } from '../../../../helper'; import { theme, Input, Typography, Divider, Button } from 'antd'; import SelectableSortableContainer from './SelectableSortableContainer'; const { Text } = Typography; const { TextArea } = Input; const headHeight = 40; const ListView = ( props: Pick< SidebarProps, | 'schemas' | 'onSortEnd' | 'onEdit' | 'size' | 'hoveringSchemaId' | 'onChangeHoveringSchemaId' | 'changeSchemas' > ) => { const { schemas, onSortEnd, onEdit, size, hoveringSchemaId, onChangeHoveringSchemaId, changeSchemas, } = props; const { token } = theme.useToken(); const i18n = useContext(I18nContext); const [isBulkUpdateFieldNamesMode, setIsBulkUpdateFieldNamesMode] = useState(false); const [fieldNamesValue, setFieldNamesValue] = useState(''); const height = getSidebarContentHeight(size.height); const sortedSchemas = schemas.sort((a, b) => (a?.sortOrder ?? 0) - (b?.sortOrder ?? 0)); const commitBulk = () => { const names = fieldNamesValue.split('\n'); if (names.length !== sortedSchemas.length) { alert(i18n('errorBulkUpdateFieldName')); } else { changeSchemas( names.map((value, index) => ({ key: 'key', value, schemaId: sortedSchemas[index].id, })) ); setIsBulkUpdateFieldNamesMode(false); } }; const startBulk = () => { setFieldNamesValue(sortedSchemas.map((s) => s.key).join('\n')); setIsBulkUpdateFieldNamesMode(true); }; return (