ra-core
Version:
Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React
37 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isValidSavedQuery = exports.areValidSavedQueries = exports.extractValidSavedQueries = exports.useSavedQueries = void 0;
const useStore_1 = require("../../store/useStore.cjs");
const useSavedQueries = (resource) => {
return (0, useStore_1.useStore)(`${resource}.savedQueries`, []);
};
exports.useSavedQueries = useSavedQueries;
const extractValidSavedQueries = (savedQueries) => {
if (Array.isArray(savedQueries)) {
return savedQueries.filter(query => (0, exports.isValidSavedQuery)(query));
}
return [];
};
exports.extractValidSavedQueries = extractValidSavedQueries;
const areValidSavedQueries = (savedQueries) => {
if (Array.isArray(savedQueries) &&
savedQueries.every(query => (0, exports.isValidSavedQuery)(query))) {
return true;
}
};
exports.areValidSavedQueries = areValidSavedQueries;
const isValidSavedQuery = (savedQuery) => {
if (savedQuery.label &&
typeof savedQuery.label === 'string' &&
savedQuery.value &&
typeof Array.isArray(savedQuery.value.displayedFilters) &&
typeof savedQuery.value.perPage === 'number' &&
typeof savedQuery.value.sort?.field === 'string' &&
typeof savedQuery.value.sort?.order === 'string' &&
typeof savedQuery.value.filter === 'object') {
return true;
}
return false;
};
exports.isValidSavedQuery = isValidSavedQuery;
//# sourceMappingURL=useSavedQueries.js.map