cspace-ui
Version:
CollectionSpace user interface for browsers
105 lines (100 loc) • 3.06 kB
JSX
import React from 'react';
import PropTypes from 'prop-types';
import Immutable from 'immutable';
import RecordButtonBar from './RecordButtonBar';
import RecordFormSelector from './RecordFormSelector';
import RecordHistory from './RecordHistory';
import styles from '../../../styles/cspace-ui/RecordHeader.css';
const propTypes = {
config: PropTypes.shape({
recordTypes: PropTypes.object,
}),
data: PropTypes.instanceOf(Immutable.Map),
formName: PropTypes.string,
isCloneable: PropTypes.bool,
isDeletable: PropTypes.bool,
isDeprecatable: PropTypes.bool,
isUndeprecatable: PropTypes.bool,
isModified: PropTypes.bool,
isReadPending: PropTypes.bool,
isSavePending: PropTypes.bool,
isRunnable: PropTypes.bool,
readOnly: PropTypes.bool,
recordType: PropTypes.string.isRequired,
showDeprecationButtons: PropTypes.bool,
validationErrors: PropTypes.instanceOf(Immutable.Map),
onCloneButtonClick: PropTypes.func,
onCommit: PropTypes.func,
onDeprecateButtonClick: PropTypes.func,
onDeleteButtonClick: PropTypes.func,
onRevertButtonClick: PropTypes.func,
onSaveButtonClick: PropTypes.func,
onSaveButtonErrorBadgeClick: PropTypes.func,
onUndeprecateButtonClick: PropTypes.func,
onRunButtonClick: PropTypes.func,
};
export default function RecordHeader(props) {
const {
config,
data,
formName,
isCloneable,
isDeletable,
isDeprecatable,
isUndeprecatable,
isModified,
isReadPending,
isSavePending,
isRunnable,
readOnly,
recordType,
showDeprecationButtons,
validationErrors,
onCloneButtonClick,
onCommit,
onDeprecateButtonClick,
onDeleteButtonClick,
onRevertButtonClick,
onSaveButtonClick,
onSaveButtonErrorBadgeClick,
onUndeprecateButtonClick,
onRunButtonClick,
} = props;
return (
<div className={styles.common}>
<RecordButtonBar
isCloneable={isCloneable}
isDeletable={isDeletable}
isDeprecatable={isDeprecatable}
isRunnable={isRunnable}
isUndeprecatable={isUndeprecatable}
isModified={isModified}
isReadPending={isReadPending}
isSavePending={isSavePending}
readOnly={readOnly}
showDeprecationButtons={showDeprecationButtons}
validationErrors={validationErrors}
onCloneButtonClick={onCloneButtonClick}
onDeprecateButtonClick={onDeprecateButtonClick}
onDeleteButtonClick={onDeleteButtonClick}
onRevertButtonClick={onRevertButtonClick}
onSaveButtonClick={onSaveButtonClick}
onSaveButtonErrorBadgeClick={onSaveButtonErrorBadgeClick}
onUndeprecateButtonClick={onUndeprecateButtonClick}
onRunButtonClick={onRunButtonClick}
/>
<RecordFormSelector
config={config}
formName={formName}
recordType={recordType}
onCommit={onCommit}
/>
<RecordHistory
data={data}
isModified={isModified}
isSavePending={isSavePending}
/>
</div>
);
}
RecordHeader.propTypes = propTypes;