HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/globfdxw/www/wp-content/plugins/give/src/Campaigns/Blocks/shared/hooks/useCampaigns.ts
import {useEntityRecords} from '@wordpress/core-data';
import {Campaign} from '@givewp/campaigns/admin/components/types';

type CampaignStatus = 'active' | 'draft' | 'archived';

type useCampaignsParams = {
    ids?: number[],
    page?: number,
    per_page?: number;
    status?: CampaignStatus[]
    sortBy?: string;
    orderBy?: string;
}

export default function useCampaigns({
     ids = [],
     page = 1,
     per_page = 30,
     status = ['active'],
     sortBy = 'date',
     orderBy = 'desc',
 }: useCampaignsParams = {}) {
    const data = useEntityRecords('givewp', 'campaign', {
        ids,
        page,
        per_page,
        status,
        sortBy,
        orderBy
    });

    return {
        campaigns: data?.records as Campaign[],
        //@ts-ignore
        totalItems: data.totalItems,
        //@ts-ignore
        totalPages: data.totalPages,
        hasResolved: data?.hasResolved,
        isResolving: data?.isResolving,
    };
}