@mindhive/documents
Version:
Standard document viewing, editing, listing etc
99 lines (81 loc) • 3.25 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _mobxReact = require('mobx-react');
var _List = require('material-ui/List');
var _Subheader = require('material-ui/Subheader');
var _Subheader2 = _interopRequireDefault(_Subheader);
var _NoDocsLabel = require('./NoDocsLabel');
var _NoDocsLabel2 = _interopRequireDefault(_NoDocsLabel);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var mongoIdSelector = function mongoIdSelector(doc) {
return doc._id;
};
var DocList = function DocList(_ref) {
var vocab = _ref.vocab,
title = _ref.title,
hideWhenEmpty = _ref.hideWhenEmpty,
noNewDocuments = _ref.noNewDocuments,
_ref$documents = _ref.documents,
documents = _ref$documents === undefined ? [] : _ref$documents,
selected = _ref.selected,
scrollNew = _ref.scrollNew,
docProps = _ref.docProps,
DocEdit = _ref.DocEdit,
editProps = _ref.editProps,
DocView = _ref.DocView,
viewProps = _ref.viewProps,
_ref$docIdSelector = _ref.docIdSelector,
docIdSelector = _ref$docIdSelector === undefined ? mongoIdSelector : _ref$docIdSelector,
noDnoDocumentsStyles = _ref.noDnoDocumentsStyles,
other = (0, _objectWithoutProperties3.default)(_ref, ['vocab', 'title', 'hideWhenEmpty', 'noNewDocuments', 'documents', 'selected', 'scrollNew', 'docProps', 'DocEdit', 'editProps', 'DocView', 'viewProps', 'docIdSelector', 'noDnoDocumentsStyles']);
var docComponents = documents.map(function (doc, index) {
var id = docIdSelector(doc);
return selected.id === id ? _react2.default.createElement(DocEdit, (0, _extends3.default)({}, docProps, editProps, {
selected: selected,
key: id + '.edit',
id: id,
document: doc
})) : _react2.default.createElement(DocView, (0, _extends3.default)({}, docProps, viewProps, {
index: index,
id: id,
key: id + '.view',
document: doc
}));
});
if (!noNewDocuments && selected.isNew) {
docComponents.splice(selected.scrollNew, 0, _react2.default.createElement(DocEdit, (0, _extends3.default)({}, docProps, editProps, {
selected: selected,
scrollNew: scrollNew,
key: 'new-' + selected.scrollNew
})));
}
return selected.isNew || documents.length ? _react2.default.createElement(
'div',
{ id: vocab.id + '-list-selector' },
_react2.default.createElement(
_List.List,
null,
title ? _react2.default.createElement(
_Subheader2.default,
null,
title
) : null,
docComponents
)
) : _react2.default.createElement(
_NoDocsLabel2.default,
{ hideWhenEmpty: hideWhenEmpty, noDnoDocumentsStyles: noDnoDocumentsStyles },
'No ',
vocab.documents,
' defined'
);
};
exports.default = (0, _mobxReact.observer)(DocList);