UNPKG

ra-core

Version:

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

35 lines 1.62 kB
import { useCallback } from 'react'; import { useResourceContext } from "../core/useResourceContext.js"; import { useListContext } from "../controller/list/useListContext.js"; import { useDataProvider } from "../dataProvider/useDataProvider.js"; import { useNotify } from "../notification/useNotify.js"; import { fetchRelatedRecords } from "./fetchRelatedRecords.js"; /** * A hook that provides a callback to export the selected records from the nearest ListContext and call the exporter function for them. */ export function useBulkExport(options) { if (options === void 0) { options = {}; } var customExporter = options.exporter, meta = options.meta; var resource = useResourceContext(options); var _a = useListContext(), exporterFromContext = _a.exporter, selectedIds = _a.selectedIds; var exporter = customExporter || exporterFromContext; var dataProvider = useDataProvider(); var notify = useNotify(); return useCallback(function () { if (exporter && resource) { dataProvider .getMany(resource, { ids: selectedIds, meta: meta }) .then(function (_a) { var data = _a.data; return exporter(data, 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