PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.7
GiveWP – Donation Plugin and Fundraising Platform v2.19.7
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 / utils / index.js
give / src / DonorDashboards / resources / js / app / utils Last commit date
index.js 4 years ago
index.js
90 lines
1 import {addTab} from '../store/actions';
2 import axios from 'axios';
3
4 export const registerTab = (tab) => {
5 const {dispatch} = window.giveDonorDashboard.store;
6
7 // Validate the tab object
8 if (isValidTab(tab) === true) {
9 dispatch(addTab(tab));
10 } else {
11 return null;
12 }
13 };
14
15 const isValidTab = (tab) => {
16 const tabPropTypes = {
17 slug: 'string',
18 icon: 'string',
19 label: 'string',
20 content: 'function',
21 };
22
23 const isValid = Object.keys(tabPropTypes).reduce((acc, key) => {
24 if (typeof tab[key] !== tabPropTypes[key]) {
25 /* eslint-disable-next-line */
26 console.error(`Error registering tab! The '${key}' property must be a ${tabPropTypes[key]}.`);
27 return false;
28 } else if (acc === false) {
29 return false;
30 }
31 return true;
32 });
33
34 return isValid;
35 };
36
37 export const getWindowData = (value) => {
38 const data = window.giveDonorDashboardData;
39 return data[value];
40 };
41
42 export const getQueryParam = (param) => {
43 const urlParams = new URLSearchParams(window.location.search);
44 return urlParams.get(param);
45 };
46
47 export const isLoggedIn = () => {
48 return Number(getWindowData('id')) !== 0 ? true : false;
49 };
50
51 export const getAPIRoot = () => {
52 return getWindowData('apiRoot');
53 };
54
55 export const getAPINonce = () => {
56 return getWindowData('apiNonce');
57 };
58
59 export const donorDashboardApi = axios.create({
60 baseURL: getAPIRoot() + 'give-api/v2/donor-dashboard/',
61 headers: {'X-WP-Nonce': getAPINonce()},
62 });
63
64 /**
65 * Returns string in Kebab Case (ex: kebab-case)
66 *
67 * @param {string} str String to be returned in Kebab Case
68 * @return {string} String returned in Kebab Case
69 * @since 2.8.0
70 */
71 export const toKebabCase = (str) => {
72 return str
73 .replace(' / ', ' ')
74 .replace(/([a-z])([A-Z])/g, '$1-$2')
75 .replace(/\s+/g, '-')
76 .toLowerCase();
77 };
78
79 /**
80 * Returns a unique id in kebab case for components
81 *
82 * @param {string} str String to be returned as unique id
83 * @return {string} String returned as unique id
84 * @since 2.8.0
85 */
86 export const toUniqueId = (str) => {
87 const prefix = str ? str : 'component';
88 return toKebabCase(`${prefix}-${Math.floor(Math.random() * Math.floor(1000))}`);
89 };
90