PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.6
GiveWP – Donation Plugin and Fundraising Platform v4.16.6
4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 4.16.4 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 / DonorDashboards / resources / js / app / tabs / edit-profile / utils / index.js
give / src / DonorDashboards / resources / js / app / tabs / edit-profile / utils Last commit date
index.js 2 years ago
index.js
109 lines
1 import {donorDashboardApi} from '../../../utils';
2 import {store} from '../../../store';
3 import {setProfile} from '../../../store/actions';
4 import {getCleanParentHref} from "../../../components/logout-modal/utils";
5
6 export const updateProfileWithAPI = async ({
7 titlePrefix,
8 firstName,
9 lastName,
10 company,
11 primaryEmail,
12 additionalEmails,
13 primaryAddress,
14 additionalAddresses,
15 avatarFile,
16 isAnonymous,
17 id,
18 }) => {
19 /**
20 * If a new avatar file is defined, upload it and use the returned
21 * media ID to be stored as donor meta
22 */
23 const {profile} = store.getState();
24 let {avatarId} = profile;
25 if (avatarFile) {
26 avatarId = await uploadAvatarWithAPI(avatarFile);
27 }
28
29 /**
30 * Pass new profile data to the Profile REST endpoint
31 */
32 const {dispatch} = store;
33 return donorDashboardApi
34 .post(
35 'profile',
36 {
37 data: JSON.stringify({
38 titlePrefix,
39 firstName,
40 lastName,
41 company,
42 primaryEmail,
43 additionalEmails,
44 primaryAddress,
45 additionalAddresses,
46 avatarId,
47 isAnonymous,
48 }),
49 id,
50 },
51 {}
52 )
53 .then((response) => response.data)
54 .then((responseData) => {
55 /**
56 * Once updated, update the store's representation of
57 * the donor's profile data
58 */
59 dispatch(setProfile(responseData.profile));
60 return responseData;
61 });
62 };
63
64 export const uploadAvatarWithAPI = (file) => {
65 // Prepare a FormData object with the file to be past to the 'avatar' REST endpoint
66 const formData = new window.FormData();
67 formData.append('file', file);
68
69 // Upload the new file, and return the resolved Promise with new media ID
70 return donorDashboardApi
71 .post('avatar', formData)
72 .then((response) => {
73 return response.data;
74 })
75 .then((responseData) => responseData.id);
76 };
77
78 export const fetchStatesWithAPI = (country) => {
79 return donorDashboardApi
80 .post(
81 'location',
82 {
83 countryCode: country,
84 },
85 {}
86 )
87 .then((response) => response.data)
88 .then((data) => {
89 return data.states.map((state) => {
90 return {
91 value: state.value,
92 label: decodeHTMLEntity(state.label),
93 };
94 });
95 });
96 };
97
98 export const decodeHTMLEntity = (entity) => {
99 const div = document.createElement('div');
100 div.innerHTML = entity;
101 return div.innerText;
102 };
103
104 export const updatePasswordWithAPI = async (newPassword) => {
105 return donorDashboardApi
106 .post('password', {newPassword})
107 .then(() => window.parent.location.href = getCleanParentHref()) // After password update the cookie is invalidated, so we need to refresh the page.
108 };
109