UNPKG

ra-core

Version:

Core components of react-admin, a frontend Framework for building admin applications on top of REST services, using ES6, React

38 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useBulkExport = useBulkExport; var react_1 = require("react"); var useResourceContext_1 = require("../core/useResourceContext.cjs"); var useListContext_1 = require("../controller/list/useListContext.cjs"); var useDataProvider_1 = require("../dataProvider/useDataProvider.cjs"); var useNotify_1 = require("../notification/useNotify.cjs"); var fetchRelatedRecords_1 = require("./fetchRelatedRecords.cjs"); /** * A hook that provides a callback to export the selected records from the nearest ListContext and call the exporter function for them. */ function useBulkExport(options) { if (options === void 0) { options = {}; } var customExporter = options.exporter, meta = options.meta; var resource = (0, useResourceContext_1.useResourceContext)(options); var _a = (0, useListContext_1.useListContext)(), exporterFromContext = _a.exporter, selectedIds = _a.selectedIds; var exporter = customExporter || exporterFromContext; var dataProvider = (0, useDataProvider_1.useDataProvider)(); var notify = (0, useNotify_1.useNotify)(); return (0, react_1.useCallback)(function () { if (exporter && resource) { dataProvider .getMany(resource, { ids: selectedIds, meta: meta }) .then(function (_a) { var data = _a.data; return exporter(data, (0, fetchRelatedRecords_1.fetchRelatedRecords)(dataProvider), dataProvider, resource); }) .catch(function (error) { console.error(error); notify('ra.notification.http_error', { type: 'error', }); }); } }, [dataProvider, exporter, notify, resource, selectedIds, meta]); } //# sourceMappingURL=useBulkExport.js.map