UNPKG

cspace-ui

Version:
144 lines (143 loc) 7.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _cspaceLayout = require("cspace-layout"); var _cspaceInput = require("cspace-input"); var _reactRedux = require("react-redux"); var _AdvancedSearchBuilderContainer = _interopRequireDefault(require("../../containers/search/AdvancedSearchBuilderContainer")); var _PanelContainer = require("../../containers/layout/PanelContainer"); var _SearchForm = _interopRequireDefault(require("../../../styles/cspace-ui/SearchForm.css")); var _SearchFormRecordType = _interopRequireDefault(require("../../../styles/cspace-ui/SearchFormRecordType.css")); var _notification = require("../../actions/notification"); var _notificationStatusCodes = require("../../constants/notificationStatusCodes"); var _prefs = require("../../actions/prefs"); var _reducers = require("../../reducers"); var _searchNames = require("../../constants/searchNames"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); } const { LineInput, RecordTypeInput } = _cspaceInput.components; const SearchFormContentNew = ({ header, footer, recordTypes, recordTypeInputRootType, recordTypeInputServiceTypes, recordTypeValue, intl, messages, formatRecordTypeLabel, handleRecordTypeDropdownCommit, renderVocabularyInput, keywordValue, handleKeywordInputCommit, advancedSearchConditionSearchTerms, advancedSearchConditionLimitBy, onAdvancedSearchConditionSearchTermsCommit, onAdvancedSearchConditionLimitByCommit, handleFormSubmit, config }) => { const dispatch = (0, _reactRedux.useDispatch)(); const reduxNewSearchShown = (0, _reactRedux.useSelector)(state => (0, _reducers.getNewSearchShown)(state)); const [newSearchShown] = (0, _react.useState)(reduxNewSearchShown); const isBroadSearch = ['all', 'procedure', 'authority'].includes(recordTypeValue); (0, _react.useEffect)(() => { if (!newSearchShown) { // TODO: message needs to be specified dispatch((0, _notification.showNotification)({ items: [{ message: { id: 'newSearchForm.informative', defaultMessage: 'Welcome to the new CollectionSpace Advanced Search. Classic Search will remain available in the 8.3 release to ease the transition to the new advanced search. Please share feedback with us and visit the User Manual for more information on the functionality of search.' } }], date: new Date(), status: _notificationStatusCodes.STATUS_SUCCESS })); dispatch((0, _prefs.setNewSearchShown)()); } }, []); return /*#__PURE__*/_react.default.createElement("form", { autoComplete: "off", className: _SearchForm.default.common, onSubmit: handleFormSubmit }, header, /*#__PURE__*/_react.default.createElement(_cspaceLayout.Panel, null, /*#__PURE__*/_react.default.createElement("div", { className: _SearchFormRecordType.default.common }, /*#__PURE__*/_react.default.createElement(RecordTypeInput, { label: intl.formatMessage(messages.recordType), recordTypes: recordTypes, rootType: recordTypeInputRootType, serviceTypes: recordTypeInputServiceTypes, value: recordTypeValue, formatRecordTypeLabel: formatRecordTypeLabel, onCommit: handleRecordTypeDropdownCommit }), renderVocabularyInput(recordTypes)), /*#__PURE__*/_react.default.createElement(_PanelContainer.ConnectedPanel, { collapsible: true, name: "searchTermsPanel", header: /*#__PURE__*/_react.default.createElement("h3", null, intl.formatMessage(messages.enterSearchTerms)) }, /*#__PURE__*/_react.default.createElement(LineInput, { label: intl.formatMessage(messages.keyword), value: keywordValue, onCommit: handleKeywordInputCommit }), /*#__PURE__*/_react.default.createElement("div", { className: _SearchForm.default.mb12 }, /*#__PURE__*/_react.default.createElement("b", null, intl.formatMessage(messages.and))), /*#__PURE__*/_react.default.createElement(_AdvancedSearchBuilderContainer.default, { condition: advancedSearchConditionSearchTerms, config: config, hasChildGroups: true, name: "advancedSearch", recordType: recordTypeValue, showInlineParens: false, showRemoveButton: false, onConditionCommit: onAdvancedSearchConditionSearchTermsCommit, searchTermsGroup: _searchNames.SEARCH_TERMS_GROUP_SEARCH_TERMS, withoutPanel: true, isBroadSearch: isBroadSearch })), !isBroadSearch && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", { className: _SearchForm.default.mb12 }, /*#__PURE__*/_react.default.createElement("b", null, intl.formatMessage(messages.and))), /*#__PURE__*/_react.default.createElement(_PanelContainer.ConnectedPanel, { collapsible: true, name: "limitByPanel", header: /*#__PURE__*/_react.default.createElement("h3", null, intl.formatMessage(messages.limitBySpecificFields)) }, /*#__PURE__*/_react.default.createElement(_AdvancedSearchBuilderContainer.default, { condition: advancedSearchConditionLimitBy, config: config, hasChildGroups: true, name: "advancedSearch", recordType: recordTypeValue, showInlineParens: false, showRemoveButton: false, onConditionCommit: onAdvancedSearchConditionLimitByCommit, searchTermsGroup: _searchNames.SEARCH_TERMS_GROUP_LIMIT_BY, withoutPanel: true })))), footer); }; SearchFormContentNew.propTypes = { header: _propTypes.default.node, footer: _propTypes.default.node, recordTypes: _propTypes.default.object, recordTypeInputRootType: _propTypes.default.string, recordTypeInputServiceTypes: _propTypes.default.array, recordTypeValue: _propTypes.default.string, intl: _propTypes.default.object.isRequired, messages: _propTypes.default.object.isRequired, formatRecordTypeLabel: _propTypes.default.func.isRequired, handleRecordTypeDropdownCommit: _propTypes.default.func.isRequired, renderVocabularyInput: _propTypes.default.func.isRequired, keywordValue: _propTypes.default.string, handleKeywordInputCommit: _propTypes.default.func.isRequired, advancedSearchConditionSearchTerms: _propTypes.default.object, advancedSearchConditionLimitBy: _propTypes.default.object, onAdvancedSearchConditionSearchTermsCommit: _propTypes.default.func.isRequired, onAdvancedSearchConditionLimitByCommit: _propTypes.default.func.isRequired, handleFormSubmit: _propTypes.default.func.isRequired, config: _propTypes.default.object }; var _default = exports.default = SearchFormContentNew;