useDonorAsyncSelectOptions.ts
34 lines
| 1 | import { useAsyncSelectOptions } from '@givewp/admin/hooks/useAsyncSelectOption'; |
| 2 | import { Donor } from '@givewp/donors/admin/components/types'; |
| 3 | import { useEntityRecord } from '@wordpress/core-data'; |
| 4 | |
| 5 | /** |
| 6 | * |
| 7 | * Wrapper for custom hook used to fetch donors select options |
| 8 | * |
| 9 | * @since 4.11.0 |
| 10 | */ |
| 11 | export default function useDonorAsyncSelectOptions(donorId: number, queryParams?: {}) { |
| 12 | const { record } = useEntityRecord<string[]>('givewp', 'donor', donorId); |
| 13 | |
| 14 | return useAsyncSelectOptions({ |
| 15 | recordId: donorId || null, |
| 16 | selectedOptionRecord: record, |
| 17 | endpoint: '/givewp/v3/donors', |
| 18 | optionFormatter: (record: Donor) => { |
| 19 | return { |
| 20 | value: record.id, |
| 21 | label: `${record.name} (${record.email})`, |
| 22 | }; |
| 23 | }, |
| 24 | queryParams: { |
| 25 | sort: 'name', |
| 26 | direction: 'ASC', |
| 27 | includeSensitiveData: true, |
| 28 | anonymousDonors: 'include', |
| 29 | onlyWithDonations: false, |
| 30 | ...queryParams, |
| 31 | }, |
| 32 | }); |
| 33 | } |
| 34 |