1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-12 13:24:52 +00:00

feat: metadata detail editor (#6562)

* feat: metadata detail editor

* feat: update code

* feat: update code

---------

Co-authored-by: 杨国璇 <ygx@Hello-word.local>
This commit is contained in:
杨国璇
2024-08-15 17:38:42 +08:00
committed by GitHub
parent 2d2a8458a2
commit ca5d33dd5a
53 changed files with 1209 additions and 362 deletions

View File

@@ -0,0 +1,51 @@
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 CollaboratorEditor from './collaborator-editor';
import DateEditor from './date-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.COLLABORATOR: {
return (<CollaboratorEditor { ...props } field={field} onChange={onChange} />);
}
default: {
return null;
}
}
};
DetailEditor.propTypes = {
field: PropTypes.object.isRequired,
};
export default DetailEditor;