| 1 |
import {useEntityRecord, useEntityRecords} from '@wordpress/core-data'; |
| 2 |
import {Form} from './types' |
| 3 |
|
| 4 |
|
| 5 |
type FormStatus = "draft" | "publish" | "private" | "orphaned"; |
| 6 |
|
| 7 |
/** |
| 8 |
* @since 4.2.0 |
| 9 |
*/ |
| 10 |
export function useForm(formId: number) { |
| 11 |
const data = useEntityRecord('givewp', 'forms', formId); |
| 12 |
|
| 13 |
return { |
| 14 |
form: { |
| 15 |
...data?.record as Form |
| 16 |
}, |
| 17 |
hasResolved: data?.hasResolved, |
| 18 |
isResolving: data?.isResolving, |
| 19 |
}; |
| 20 |
} |
| 21 |
|
| 22 |
type useFormsParams = { |
| 23 |
ids?: number[], |
| 24 |
page?: number, |
| 25 |
per_page?: number; |
| 26 |
status?: FormStatus[] |
| 27 |
} |
| 28 |
|
| 29 |
export function useForms({ |
| 30 |
ids = [], |
| 31 |
page = 1, |
| 32 |
per_page = 30, |
| 33 |
status = ['publish'] |
| 34 |
}: useFormsParams = {}) { |
| 35 |
const data = useEntityRecords('givewp', 'form', { |
| 36 |
ids, |
| 37 |
page, |
| 38 |
per_page, |
| 39 |
status |
| 40 |
}); |
| 41 |
|
| 42 |
return { |
| 43 |
forms: data?.records as Form[], |
| 44 |
//@ts-ignore |
| 45 |
totalItems: data.totalItems, |
| 46 |
//@ts-ignore |
| 47 |
totalPages: data.totalPages, |
| 48 |
hasResolved: data?.hasResolved, |
| 49 |
isResolving: data?.isResolving, |
| 50 |
}; |
| 51 |
} |
| 52 |
|
| 53 |
|
| 54 |
|