choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
52 lines (47 loc) • 1.88 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import React, { isValidElement, useCallback, useContext } from 'react';
import { toJS } from 'mobx';
import { observer } from 'mobx-react-lite';
import ObserverTextField from '../../../text-field/TextField';
import { getHeader } from '../../utils';
import TableContext from '../../TableContext';
import { Size } from '../../../core/enum';
var ItemTitle = function ItemTitle(props) {
var record = props.record,
provided = props.provided;
var _useContext = useContext(TableContext),
dataSet = _useContext.dataSet,
tableStore = _useContext.tableStore,
aggregation = _useContext.aggregation;
var columnTitleEditable = tableStore.columnTitleEditable;
var editing = record.getState('editing');
var handleEditBlur = useCallback(function () {
record.setState('editing', false);
}, []);
var handleHeaderChange = useCallback(function (value) {
record.set('title', value);
}, [record]);
var title = record.get('title');
var header = getHeader({
name: record.get('name'),
title: title,
header: record.get('header'),
dataSet: dataSet,
aggregation: aggregation
});
var titleEditable = columnTitleEditable && record.get('titleEditable') !== false;
return /*#__PURE__*/React.createElement(React.Fragment, null, editing && titleEditable ? /*#__PURE__*/React.createElement(ObserverTextField, {
onBlur: handleEditBlur,
value: /*#__PURE__*/isValidElement(header) ? title : header,
onChange: handleHeaderChange,
autoFocus: true,
size: Size.small
}) : /*#__PURE__*/React.createElement("span", _extends({}, provided && provided.dragHandleProps, {
style: provided ? {
cursor: 'move'
} : undefined
}), toJS(header)));
};
ItemTitle.displayName = 'ItemTitle';
export default observer(ItemTitle);
//# sourceMappingURL=ItemTitle.js.map