1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-07 01:41:39 +00:00
Files
seahub/frontend/src/metadata/metadata-view/components/detail-editor/index.js
杨国璇 fa6427f9dc feat: metadata longtext editor (#6666)
* feat: metadata longtext editor

* feat: optimize code

* feat: optimize code

* feat: optimize code

* feat: delete code

* feat: update code

* feat: update font

* feat: update font

* feat: optimize code

---------

Co-authored-by: 杨国璇 <ygx@Hello-word.local>
2024-08-30 07:00:26 +08:00

59 lines
1.9 KiB
JavaScript

import React, { useCallback } from 'react';
import PropTypes from 'prop-types';
import { CellType } from '../../_basic';
import CheckboxEditor from './checkbox-editor';
import TextEditor from './text-editor';
import NumberEditor from './number-editor';
import SingleSelectEditor from './single-select-editor';
import MultipleSelectEditor from './multiple-select-editor';
import CollaboratorEditor from './collaborator-editor';
import DateEditor from './date-editor';
import LongTextEditor from './long-text-editor';
import { lang } from '../../../../utils/constants';
import './index.css';
const DetailEditor = ({ field, onChange: onChangeAPI, ...props }) => {
const onChange = useCallback((newValue) => {
onChangeAPI(field.key, newValue);
}, [field, onChangeAPI]);
switch (field.type) {
case CellType.CHECKBOX: {
return (<CheckboxEditor { ...props } field={field} onChange={onChange} />);
}
case CellType.TEXT: {
return (<TextEditor { ...props } field={field} onChange={onChange} />);
}
case CellType.NUMBER: {
return (<NumberEditor { ...props } field={field} onChange={onChange} />);
}
case CellType.DATE: {
return (<DateEditor { ...props } field={field} onChange={onChange} lang={lang} />);
}
case CellType.SINGLE_SELECT: {
return (<SingleSelectEditor { ...props } field={field} onChange={onChange} />);
}
case CellType.MULTIPLE_SELECT: {
return (<MultipleSelectEditor { ...props } field={field} onChange={onChange} />);
}
case CellType.COLLABORATOR: {
return (<CollaboratorEditor { ...props } field={field} onChange={onChange} />);
}
case CellType.LONG_TEXT: {
return (<LongTextEditor { ...props } field={field} onChange={onChange} />);
}
default: {
return null;
}
}
};
DetailEditor.propTypes = {
field: PropTypes.object.isRequired,
};
export default DetailEditor;