UNPKG

strapi-plugin-prev-next-button

Version:
37 lines (36 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const utils_1 = require("../utils"); exports.default = ({ strapi }) => ({ async getPrevNextItems(uid, id) { var _a, _b, _c; const { findConfiguration } = strapi.plugin('content-manager').service('content-types'); const { settings } = await findConfiguration(strapi.contentType(uid)); const { mainField, defaultSortBy, defaultSortOrder } = settings; const currentEntry = await ((_a = strapi.entityService) === null || _a === void 0 ? void 0 : _a.findOne(uid, id, { fields: [defaultSortBy] })); if (currentEntry) { const sortByValue = currentEntry[defaultSortBy]; const fields = ['id', mainField]; const isAsc = defaultSortOrder.toLowerCase() === 'asc'; const [descLessThan, ascGreaterThan] = await Promise.all([ (_b = strapi.entityService) === null || _b === void 0 ? void 0 : _b.findMany(uid, { fields, filters: { [defaultSortBy]: { $lt: sortByValue } }, sort: { [defaultSortBy]: 'desc' }, limit: 1, }), (_c = strapi.entityService) === null || _c === void 0 ? void 0 : _c.findMany(uid, { fields, filters: { [defaultSortBy]: { $gt: sortByValue } }, sort: { [defaultSortBy]: 'asc' }, limit: 1, }), ]); return { prev: (0, utils_1.transformEntry)(isAsc ? descLessThan : ascGreaterThan, mainField), next: (0, utils_1.transformEntry)(isAsc ? ascGreaterThan : descLessThan, mainField), }; } return { prev: null, next: null }; }, });