payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
138 lines (137 loc) • 12.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _qs = /*#__PURE__*/ _interop_require_default(require("qs"));
const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
const _reacti18next = require("react-i18next");
const _reactrouterdom = require("react-router-dom");
const _getTranslation = require("../../../../utilities/getTranslation");
const _useDebounce = /*#__PURE__*/ _interop_require_default(require("../../../hooks/useDebounce"));
const _Search = /*#__PURE__*/ _interop_require_default(require("../../icons/Search"));
const _SearchParams = require("../../utilities/SearchParams");
require("./index.scss");
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
function _getRequireWildcardCache(nodeInterop) {
if (typeof WeakMap !== "function") return null;
var cacheBabelInterop = new WeakMap();
var cacheNodeInterop = new WeakMap();
return (_getRequireWildcardCache = function(nodeInterop) {
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
})(nodeInterop);
}
function _interop_require_wildcard(obj, nodeInterop) {
if (!nodeInterop && obj && obj.__esModule) {
return obj;
}
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
return {
default: obj
};
}
var cache = _getRequireWildcardCache(nodeInterop);
if (cache && cache.has(obj)) {
return cache.get(obj);
}
var newObj = {
__proto__: null
};
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
for(var key in obj){
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
if (desc && (desc.get || desc.set)) {
Object.defineProperty(newObj, key, desc);
} else {
newObj[key] = obj[key];
}
}
}
newObj.default = obj;
if (cache) {
cache.set(obj, newObj);
}
return newObj;
}
const baseClass = 'search-filter';
const SearchFilter = (props)=>{
const { fieldLabel = 'ID', fieldName = 'id', handleChange, listSearchableFields, modifySearchQuery = true } = props;
const params = (0, _SearchParams.useSearchParams)();
const history = (0, _reactrouterdom.useHistory)();
const { i18n, t } = (0, _reacti18next.useTranslation)('general');
const [search, setSearch] = (0, _react.useState)(typeof params?.search === 'string' ? params?.search : '');
const [previousSearch, setPreviousSearch] = (0, _react.useState)('');
const placeholder = (0, _react.useRef)(t('searchBy', {
label: (0, _getTranslation.getTranslation)(fieldLabel, i18n)
}));
const debouncedSearch = (0, _useDebounce.default)(search, 300);
(0, _react.useEffect)(()=>{
if (debouncedSearch !== previousSearch) {
if (handleChange) handleChange(debouncedSearch);
if (modifySearchQuery) {
history.replace({
search: _qs.default.stringify({
...params,
page: 1,
search: debouncedSearch || undefined
})
});
}
setPreviousSearch(debouncedSearch);
}
}, [
debouncedSearch,
previousSearch,
history,
fieldName,
params,
handleChange,
modifySearchQuery,
listSearchableFields
]);
(0, _react.useEffect)(()=>{
if (listSearchableFields?.length > 0) {
placeholder.current = listSearchableFields.reduce((prev, curr, i)=>{
if (i === 0) {
return `${t('searchBy', {
label: (0, _getTranslation.getTranslation)(curr.label || curr.name, i18n)
})}`;
}
if (i === listSearchableFields.length - 1) {
return `${prev} ${t('or')} ${(0, _getTranslation.getTranslation)(curr.label || curr.name, i18n)}`;
}
return `${prev}, ${(0, _getTranslation.getTranslation)(curr.label || curr.name, i18n)}`;
}, '');
} else {
placeholder.current = t('searchBy', {
label: (0, _getTranslation.getTranslation)(fieldLabel, i18n)
});
}
}, [
t,
listSearchableFields,
i18n,
fieldLabel
]);
return /*#__PURE__*/ _react.default.createElement("div", {
className: baseClass
}, /*#__PURE__*/ _react.default.createElement("input", {
className: `${baseClass}__input`,
onChange: (e)=>setSearch(e.target.value),
placeholder: placeholder.current,
type: "text",
value: search || ''
}), /*#__PURE__*/ _react.default.createElement(_Search.default, null));
};
const _default = SearchFilter;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1NlYXJjaEZpbHRlci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3FzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdyZWFjdC1pMThuZXh0J1xuaW1wb3J0IHsgdXNlSGlzdG9yeSB9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nXG5cbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxpdGllcy9nZXRUcmFuc2xhdGlvbidcbmltcG9ydCB1c2VEZWJvdW5jZSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VEZWJvdW5jZSdcbmltcG9ydCBTZWFyY2ggZnJvbSAnLi4vLi4vaWNvbnMvU2VhcmNoJ1xuaW1wb3J0IHsgdXNlU2VhcmNoUGFyYW1zIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL1NlYXJjaFBhcmFtcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAnc2VhcmNoLWZpbHRlcidcblxuY29uc3QgU2VhcmNoRmlsdGVyOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGZpZWxkTGFiZWwgPSAnSUQnLFxuICAgIGZpZWxkTmFtZSA9ICdpZCcsXG4gICAgaGFuZGxlQ2hhbmdlLFxuICAgIGxpc3RTZWFyY2hhYmxlRmllbGRzLFxuICAgIG1vZGlmeVNlYXJjaFF1ZXJ5ID0gdHJ1ZSxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgcGFyYW1zID0gdXNlU2VhcmNoUGFyYW1zKClcbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdnZW5lcmFsJylcblxuICBjb25zdCBbc2VhcmNoLCBzZXRTZWFyY2hdID0gdXNlU3RhdGUodHlwZW9mIHBhcmFtcz8uc2VhcmNoID09PSAnc3RyaW5nJyA/IHBhcmFtcz8uc2VhcmNoIDogJycpXG4gIGNvbnN0IFtwcmV2aW91c1NlYXJjaCwgc2V0UHJldmlvdXNTZWFyY2hdID0gdXNlU3RhdGUoJycpXG5cbiAgY29uc3QgcGxhY2Vob2xkZXIgPSB1c2VSZWYodCgnc2VhcmNoQnknLCB7IGxhYmVsOiBnZXRUcmFuc2xhdGlvbihmaWVsZExhYmVsLCBpMThuKSB9KSlcblxuICBjb25zdCBkZWJvdW5jZWRTZWFyY2ggPSB1c2VEZWJvdW5jZShzZWFyY2gsIDMwMClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChkZWJvdW5jZWRTZWFyY2ggIT09IHByZXZpb3VzU2VhcmNoKSB7XG4gICAgICBpZiAoaGFuZGxlQ2hhbmdlKSBoYW5kbGVDaGFuZ2UoZGVib3VuY2VkU2VhcmNoKVxuXG4gICAgICBpZiAobW9kaWZ5U2VhcmNoUXVlcnkpIHtcbiAgICAgICAgaGlzdG9yeS5yZXBsYWNlKHtcbiAgICAgICAgICBzZWFyY2g6IHF1ZXJ5U3RyaW5nLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAuLi5wYXJhbXMsXG4gICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgICAgc2VhcmNoOiBkZWJvdW5jZWRTZWFyY2ggfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIH0pLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBzZXRQcmV2aW91c1NlYXJjaChkZWJvdW5jZWRTZWFyY2gpXG4gICAgfVxuICB9LCBbXG4gICAgZGVib3VuY2VkU2VhcmNoLFxuICAgIHByZXZpb3VzU2VhcmNoLFxuICAgIGhpc3RvcnksXG4gICAgZmllbGROYW1lLFxuICAgIHBhcmFtcyxcbiAgICBoYW5kbGVDaGFuZ2UsXG4gICAgbW9kaWZ5U2VhcmNoUXVlcnksXG4gICAgbGlzdFNlYXJjaGFibGVGaWVsZHMsXG4gIF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobGlzdFNlYXJjaGFibGVGaWVsZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHBsYWNlaG9sZGVyLmN1cnJlbnQgPSBsaXN0U2VhcmNoYWJsZUZpZWxkcy5yZWR1Y2U8c3RyaW5nPigocHJldiwgY3VyciwgaSkgPT4ge1xuICAgICAgICBpZiAoaSA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiBgJHt0KCdzZWFyY2hCeScsIHsgbGFiZWw6IGdldFRyYW5zbGF0aW9uKGN1cnIubGFiZWwgfHwgY3Vyci5uYW1lLCBpMThuKSB9KX1gXG4gICAgICAgIH1cbiAgICAgICAgaWYgKGkgPT09IGxpc3RTZWFyY2hhYmxlRmllbGRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICByZXR1cm4gYCR7cHJldn0gJHt0KCdvcicpfSAke2dldFRyYW5zbGF0aW9uKGN1cnIubGFiZWwgfHwgY3Vyci5uYW1lLCBpMThuKX1gXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGAke3ByZXZ9LCAke2dldFRyYW5zbGF0aW9uKGN1cnIubGFiZWwgfHwgY3Vyci5uYW1lLCBpMThuKX1gXG4gICAgICB9LCAnJylcbiAgICB9IGVsc2Uge1xuICAgICAgcGxhY2Vob2xkZXIuY3VycmVudCA9IHQoJ3NlYXJjaEJ5JywgeyBsYWJlbDogZ2V0VHJhbnNsYXRpb24oZmllbGRMYWJlbCwgaTE4bikgfSlcbiAgICB9XG4gIH0sIFt0LCBsaXN0U2VhcmNoYWJsZUZpZWxkcywgaTE4biwgZmllbGRMYWJlbF0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0YH1cbiAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRTZWFyY2goZS50YXJnZXQudmFsdWUpfVxuICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXIuY3VycmVudH1cbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICB2YWx1ZT17c2VhcmNoIHx8ICcnfVxuICAgICAgLz5cbiAgICAgIDxTZWFyY2ggLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBTZWFyY2hGaWx0ZXJcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJTZWFyY2hGaWx0ZXIiLCJwcm9wcyIsImZpZWxkTGFiZWwiLCJmaWVsZE5hbWUiLCJoYW5kbGVDaGFuZ2UiLCJsaXN0U2VhcmNoYWJsZUZpZWxkcyIsIm1vZGlmeVNlYXJjaFF1ZXJ5IiwicGFyYW1zIiwidXNlU2VhcmNoUGFyYW1zIiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJpMThuIiwidCIsInVzZVRyYW5zbGF0aW9uIiwic2VhcmNoIiwic2V0U2VhcmNoIiwidXNlU3RhdGUiLCJwcmV2aW91c1NlYXJjaCIsInNldFByZXZpb3VzU2VhcmNoIiwicGxhY2Vob2xkZXIiLCJ1c2VSZWYiLCJsYWJlbCIsImdldFRyYW5zbGF0aW9uIiwiZGVib3VuY2VkU2VhcmNoIiwidXNlRGVib3VuY2UiLCJ1c2VFZmZlY3QiLCJyZXBsYWNlIiwicXVlcnlTdHJpbmciLCJzdHJpbmdpZnkiLCJwYWdlIiwidW5kZWZpbmVkIiwibGVuZ3RoIiwiY3VycmVudCIsInJlZHVjZSIsInByZXYiLCJjdXJyIiwiaSIsIm5hbWUiLCJkaXYiLCJjbGFzc05hbWUiLCJpbnB1dCIsIm9uQ2hhbmdlIiwiZSIsInRhcmdldCIsInZhbHVlIiwidHlwZSIsIlNlYXJjaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE0RkE7OztlQUFBOzs7MkRBNUZ3QjsrREFDMkI7OEJBQ3BCO2dDQUNKO2dDQUlJO29FQUNQOytEQUNMOzhCQUNhO1FBQ3pCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsZUFBZ0MsQ0FBQ0M7SUFDckMsTUFBTSxF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