UNPKG

@sanity/default-layout

Version:

The default layout components for Sanity

32 lines (30 loc) 1.48 kB
"use strict"; 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()); }