|  |  |  | 
|---|
|  |  |  | useDataProvider, | 
|---|
|  |  |  | useNotify, | 
|---|
|  |  |  | useListContext, | 
|---|
|  |  |  | useUnselectAll, | 
|---|
|  |  |  | } from "react-admin"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const MyExportButton = (props) => { | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | maxResults = 1000, | 
|---|
|  |  |  | onClick, | 
|---|
|  |  |  | ids, | 
|---|
|  |  |  | label = "ra.action.export", | 
|---|
|  |  |  | icon = defaultIcon, | 
|---|
|  |  |  | exporter: customExporter, | 
|---|
|  |  |  | 
|---|
|  |  |  | ...rest | 
|---|
|  |  |  | } = props; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { filter, filterValues, resource, sort, total } = useListContext(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const { filter, selectedIds, filterValues, resource, sort, total } = useListContext(); | 
|---|
|  |  |  | const unSelect = useUnselectAll(resource); | 
|---|
|  |  |  | const dataProvider = useDataProvider(); | 
|---|
|  |  |  | const notify = useNotify(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | const handleClick = useCallback( | 
|---|
|  |  |  | const handleClick = | 
|---|
|  |  |  | // useCallback( | 
|---|
|  |  |  | (event) => { | 
|---|
|  |  |  | dataProvider | 
|---|
|  |  |  | .export(resource, { | 
|---|
|  |  |  | sort, | 
|---|
|  |  |  | ids: selectedIds, | 
|---|
|  |  |  | filter: filter ? { ...filterValues, ...filter } : filterValues, | 
|---|
|  |  |  | pagination: { page: 1, perPage: maxResults }, | 
|---|
|  |  |  | meta, | 
|---|
|  |  |  | 
|---|
|  |  |  | document.body.appendChild(link); | 
|---|
|  |  |  | link.click(); | 
|---|
|  |  |  | link.remove(); | 
|---|
|  |  |  | unSelect(); | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | .catch((error) => { | 
|---|
|  |  |  | console.error(error); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (typeof onClick === "function") { | 
|---|
|  |  |  | onClick(event); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | [ | 
|---|
|  |  |  | dataProvider, | 
|---|
|  |  |  | filter, | 
|---|
|  |  |  | filterValues, | 
|---|
|  |  |  | maxResults, | 
|---|
|  |  |  | notify, | 
|---|
|  |  |  | onClick, | 
|---|
|  |  |  | resource, | 
|---|
|  |  |  | sort, | 
|---|
|  |  |  | meta, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // [ | 
|---|
|  |  |  | //   dataProvider, | 
|---|
|  |  |  | //   filter, | 
|---|
|  |  |  | //   filterValues, | 
|---|
|  |  |  | //   maxResults, | 
|---|
|  |  |  | //   notify, | 
|---|
|  |  |  | //   onClick, | 
|---|
|  |  |  | //   resource, | 
|---|
|  |  |  | //   sort, | 
|---|
|  |  |  | //   meta, | 
|---|
|  |  |  | // ], | 
|---|
|  |  |  | // ); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return ( | 
|---|
|  |  |  | <Button | 
|---|