# give/4.16.8.1/src/Admin/fields/CampaignFormGroup/useCampaignAsyncSelectOptions.ts

GiveWP – Donation Plugin and Fundraising Platform, version 4.16.8.1. 26 lines.

- Page: https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Admin/fields/CampaignFormGroup/useCampaignAsyncSelectOptions.ts
- Raw: https://pluginprobe.com/plugins/give/4.16.8.1/raw/src/Admin/fields/CampaignFormGroup/useCampaignAsyncSelectOptions.ts
- Modified: 2025-10-16T14:10:48+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.16.8.1/code/src/Admin/fields/CampaignFormGroup/useCampaignAsyncSelectOptions.ts#L10-L20`.

```typescript
import { useAsyncSelectOptions } from "@givewp/admin/hooks/useAsyncSelectOption";
import { Campaign } from "@givewp/campaigns/admin/components/types";
import { useEntityRecord } from "@wordpress/core-data";

export default function useCampaignAsyncSelectOptions(campaignId: number, queryParams?: {}) {
    const { record } = useEntityRecord<string[]>('givewp', 'campaign', campaignId);

    return useAsyncSelectOptions({
        recordId: campaignId || null,
        selectedOptionRecord: record,
        endpoint: '/givewp/v3/campaigns',
        optionFormatter: (record: Campaign) => {
            return {
                value: record.id,
                label: record.title,
                record,
            };
        },
        queryParams: {
            sort: 'name',
            direction: 'ASC',
            ...queryParams,
        },
    });
}

```
