PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.4.0
GiveWP – Donation Plugin and Fundraising Platform v4.4.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 / Campaigns / resources / utils.ts
give / src / Campaigns / resources Last commit date
admin 1 year ago editor 1 year ago hooks 1 year ago store 1 year ago views 1 year ago entity.ts 1 year ago types.ts 1 year ago utils.ts 1 year ago
utils.ts
93 lines
1 import {useEntityRecord} from '@wordpress/core-data';
2 import {Campaign} from '@givewp/campaigns/admin/components/types';
3 import type {GiveCampaignOptions} from '@givewp/campaigns/types';
4 import apiFetch from '@wordpress/api-fetch';
5
6 declare const window: {
7 GiveCampaignOptions: GiveCampaignOptions;
8 } & Window;
9
10 /**
11 * @since 4.0.0
12 */
13 export function useCampaignEntityRecord(campaignId?: number) {
14 const urlParams = new URLSearchParams(window.location.search);
15
16 const {
17 record: campaign,
18 hasResolved,
19 save,
20 edit,
21 }: {
22 record: Campaign;
23 hasResolved: boolean;
24 save: () => any;
25 edit: (data: Campaign | Partial<Campaign>) => void;
26 } = useEntityRecord('givewp', 'campaign', campaignId ?? urlParams.get('id'));
27
28 return {campaign, hasResolved, save, edit};
29 }
30
31 /**
32 * @since 4.0.0
33 */
34 export function getCampaignOptionsWindowData(): GiveCampaignOptions {
35 return window.GiveCampaignOptions;
36 }
37
38 export function handleTooltipDismiss(id: string) {
39 return apiFetch({
40 url: window.GiveCampaignOptions.adminUrl + '/admin-ajax.php?action=' + id,
41 method: 'POST',
42 })
43 }
44
45 /**
46 * @since 4.0.0
47 */
48 export function amountFormatter(currency: Intl.NumberFormatOptions['currency'], options?: Intl.NumberFormatOptions): Intl.NumberFormat {
49 return new Intl.NumberFormat(navigator.language, {
50 style: 'currency',
51 currency: currency,
52 ...options
53 });
54 }
55
56 /**
57 * @since 4.0.0
58 */
59 export async function updateUserNoticeOptions(metaKey: string){
60 try {
61 const currentUser = await apiFetch( { path: '/wp/v2/users/me' } );
62 // @ts-ignore
63 const currentUserId = currentUser?.id;
64
65 return await wp.data.dispatch('core').saveEntityRecord('root', 'user', {
66 id: currentUserId,
67 meta: {
68 [metaKey]: true
69 }
70 });
71 } catch (error) {
72 console.error('Error updating user meta:', error);
73 }
74 }
75
76 /**
77 * @since 4.0.0
78 */
79 export async function createCampaignPage(campaignId: number) {
80 try {
81 const response = await apiFetch({
82 path: `/givewp/v3/campaigns/${campaignId}/page`,
83 method: 'POST'
84 });
85
86 return response as {
87 id: number,
88 };
89 } catch (error) {
90 console.error('Error creating Campaign page:', error);
91 }
92 }
93