PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.8.0
GiveWP – Donation Plugin and Fundraising Platform v4.8.0
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Subscriptions / resources / utils.ts
give / src / Subscriptions / resources Last commit date
admin 9 months ago components 1 year ago hooks 9 months ago admin-subscriptions.tsx 1 year ago entity.ts 9 months ago types.ts 9 months ago utils.ts 9 months ago
utils.ts
65 lines
1 import { useEntityRecord } from '@wordpress/core-data';
2 import { useDispatch } from '@wordpress/data';
3 import { store as coreStore } from '@wordpress/core-data';
4 import apiFetch from '@wordpress/api-fetch';
5 import { Subscription } from '@givewp/subscriptions/admin/components/types';
6 import type { GiveSubscriptionOptions } from '@givewp/subscriptions/types';
7
8 declare const window: {
9 GiveSubscriptionOptions: GiveSubscriptionOptions;
10 } & Window;
11
12 /**
13 * @since 4.8.0
14 */
15 export function useSubscriptionEntityRecord(subscriptionId?: number) {
16 const urlParams = new URLSearchParams(window.location.search);
17
18 const {
19 record: subscription,
20 hasResolved,
21 isResolving,
22 save,
23 edit,
24 }: {
25 record: Subscription;
26 hasResolved: boolean;
27 isResolving: boolean;
28 save: () => any;
29 edit: (data: Subscription | Partial<Subscription>) => void;
30 } = useEntityRecord('givewp', 'subscription', subscriptionId ?? urlParams.get('id'));
31
32 return {record: subscription, hasResolved, isResolving, save, edit};
33 }
34
35 /**
36 * @since 4.8.0
37 */
38 export function useRefreshSubscriptionInBackground() {
39 const { receiveEntityRecords, invalidateResolution } = useDispatch(coreStore);
40
41 const refreshSubscriptionInBackground = async (subscriptionId: number) => {
42 if (!subscriptionId) return;
43
44 try {
45 const latestSubscriptionData = await apiFetch({
46 path: `/givewp/v3/subscriptions/${subscriptionId}`,
47 });
48
49 receiveEntityRecords('givewp', 'subscription', latestSubscriptionData, undefined, false);
50 } catch (error) {
51 console.error('Error refreshing subscription in background:', error);
52 invalidateResolution('getEntityRecord', ['givewp', 'subscription', subscriptionId]);
53 }
54 };
55
56 return refreshSubscriptionInBackground;
57 }
58
59 /**
60 * @since 4.8.0
61 */
62 export function getSubscriptionOptionsWindowData(): GiveSubscriptionOptions {
63 return window.GiveSubscriptionOptions;
64 }
65