$20 GRAYBYTE WORDPRESS FILE MANAGER $83

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.180
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : mail

/home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Subscriptions/resources/

HOME
Current File : /home/bravrvjk/itiministry.org/wp-content/plugins/give/src/Subscriptions/resources//utils.ts
import { useEntityRecord } from '@wordpress/core-data';
import { useDispatch } from '@wordpress/data';
import { store as coreStore } from '@wordpress/core-data';
import apiFetch from '@wordpress/api-fetch';
import { Subscription } from '@givewp/subscriptions/admin/components/types';
import type { GiveSubscriptionOptions } from '@givewp/subscriptions/types';

declare const window: {
    GiveSubscriptionOptions: GiveSubscriptionOptions;
} & Window;

/**
 * @since 4.11.0 added refreshSubscriptionInBackground to the save method
 * @since 4.8.0
 */
export function useSubscriptionEntityRecord(subscriptionId?: number) {
    const urlParams = new URLSearchParams(window.location.search);
    const refreshSubscriptionInBackground = useRefreshSubscriptionInBackground();

    const {
        record,
        hasResolved,
        isResolving,
        save,
        edit,
    }: {
        record: Subscription;
        hasResolved: boolean;
        isResolving: boolean;
        save: () => any;
        edit: (data: Subscription | Partial<Subscription>) => void;
    } = useEntityRecord('givewp', 'subscription', subscriptionId ?? urlParams.get('id'));

    const saveAndRefresh = async () => {
        const response = await save();
        await refreshSubscriptionInBackground(response?.id);

        return response;
    }

    return {record, hasResolved, isResolving, save: saveAndRefresh, edit};
}

/**
 * @since 4.11.0 added _embed=true to the request
 * @since 4.8.0
 */
export function useRefreshSubscriptionInBackground() {
    const { receiveEntityRecords, invalidateResolution } = useDispatch(coreStore);

    const refreshSubscriptionInBackground = async (subscriptionId: number) => {
        if (!subscriptionId) return;

        try {
            const latestSubscriptionData = await apiFetch({
                path: `/givewp/v3/subscriptions/${subscriptionId}?_embed=true`,
            });

            receiveEntityRecords('givewp', 'subscription', latestSubscriptionData, undefined, false);
        } catch (error) {
            console.error('Error refreshing subscription in background:', error);
            invalidateResolution('getEntityRecord', ['givewp', 'subscription', subscriptionId]);
        }
    };

    return refreshSubscriptionInBackground;
}

/**
 * @since 4.8.0
 */
export function getSubscriptionOptionsWindowData(): GiveSubscriptionOptions {
    return window.GiveSubscriptionOptions;
}


Current_dir [ WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
admin
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
common
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
components
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
constants
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
hooks
--
4 Apr 2026 1.57 AM
bravrvjk / bravrvjk
0755
admin-subscriptions.tsx
0.358 KB
26 Sep 2024 1.57 AM
bravrvjk / bravrvjk
0644
types.ts
0.604 KB
10 Sep 2025 5.42 PM
bravrvjk / bravrvjk
0644
utils.ts
2.368 KB
16 Oct 2025 6.10 PM
bravrvjk / bravrvjk
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF