fastapi-rtk
Version:
A React component library for FastAPI in combination with FastAPI React Toolkit backend, built with Mantine, JsonForms, and Zustand.
30 lines (29 loc) • 1.19 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const React = require("react");
const postBulkAction = require("../utils/bulkActions/postBulkAction.cjs");
const defaultBulk = { postBulk: postBulkAction.postBulk };
const useProvideBulk = ({ path }, bulk = defaultBulk) => {
const [selectedIds, setSelectedIds] = React.useState([]);
const [error, setError] = React.useState();
const resetError = React.useCallback(() => setError(void 0), []);
const dispatchBulkActions = React.useCallback(
async (handler, data) => {
try {
resetError();
if (data === void 0) {
data = selectedIds;
}
const response = await bulk.postBulk(path, handler, data);
return response;
} catch (error2) {
setError({ message: `Could not perform bulk action`, originalError: error2 });
}
},
[bulk, path, resetError, selectedIds]
);
const bulkActions = React.useMemo(() => ({ selectedIds, setSelectedIds }), [selectedIds, setSelectedIds]);
return { bulkActions, dispatchBulkActions, error, resetError };
};
exports.defaultBulk = defaultBulk;
exports.useProvideBulk = useProvideBulk;
;