@sanity/default-layout
Version:
The default layout components for Sanity
32 lines (30 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getSearchableOmnisearchTypes = getSearchableOmnisearchTypes;
exports.getSelectableOmnisearchTypes = getSelectableOmnisearchTypes;
exports.sortTypes = sortTypes;
var _internal = require("@sanity/base/_internal");
/**
* Returns a list of all available document types filtered by a search string.
* Types containing the search string in its `title` or `name` will be returned.
*/
function getSelectableOmnisearchTypes(schema, typeFilter) {
return getSearchableOmnisearchTypes(schema).filter(type => inTypeFilter(type, typeFilter)).sort(sortTypes);
}
/**
* Return all searchable document types that are visible to omnisearch.
* Documents with `__experimental_omnisearch_visibility: false` will be hidden.
*/
function getSearchableOmnisearchTypes(schema) {
return (0, _internal.getSearchableTypes)(schema).filter(type => !(type.__experimental_omnisearch_visibility === false));
}
function sortTypes(a, b) {
var _a$title, _b$title;
return ((_a$title = a.title) !== null && _a$title !== void 0 ? _a$title : a.name).localeCompare((_b$title = b.title) !== null && _b$title !== void 0 ? _b$title : b.name);
}
function inTypeFilter(type, typeFilter) {
var _type$title;
return !typeFilter || ((_type$title = type.title) !== null && _type$title !== void 0 ? _type$title : type.name).toLowerCase().includes(typeFilter === null || typeFilter === void 0 ? void 0 : typeFilter.toLowerCase());
}