PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
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 / recurring-donations / content.js
give / src / DonorDashboards / resources / js / app / tabs / recurring-donations Last commit date
hooks 4 years ago store 4 years ago utils 4 years ago content.js 4 years ago index.js 4 years ago style.scss 4 years ago
content.js
122 lines
1 import {useLocation, Link} from 'react-router-dom';
2 import {Fragment} from 'react';
3
4 import {__} from '@wordpress/i18n';
5
6 import Heading from '../../components/heading';
7 import Divider from '../../components/divider';
8 import SubscriptionReceipt from '../../components/subscription-receipt';
9 import SubscriptionManager from '../../components/subscription-manager';
10 import SubscriptionTable from '../../components/subscription-table';
11
12 import {useSelector} from './hooks';
13
14 import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
15
16 import './style.scss';
17
18 const Content = () => {
19 const subscriptions = useSelector((state) => state.subscriptions);
20 const querying = useSelector((state) => state.querying);
21 const error = useSelector((state) => state.error);
22
23 const location = useLocation();
24 const route = location ? location.pathname.split('/')[2] : null;
25 const id = location ? location.pathname.split('/')[3] : null;
26
27 const getSubscriptionById = (subscriptionId) => {
28 const filter = subscriptions.filter((subscription) =>
29 parseInt(subscription.id) === parseInt(subscriptionId) ? true : false
30 );
31 if (filter.length) {
32 return filter[0];
33 }
34 return null;
35 };
36
37 if (error) {
38 return (
39 <Fragment>
40 <Heading icon="exclamation-triangle">{__('Error', 'give')}</Heading>
41 <p style={{color: '#6b6b6b'}}>{error}</p>
42 </Fragment>
43 );
44 }
45
46 if (id) {
47 switch (route) {
48 case 'receipt': {
49 return querying ? (
50 <Fragment>
51 <Heading>{__('Loading...', 'give')}</Heading>
52 <div className="give-donor-dashboard__recurring-donations-link">
53 <Link to="/recurring-donations">
54 <FontAwesomeIcon icon="arrow-left" /> {__('Back to Recurring Donations', 'give')}
55 </Link>
56 </div>
57 </Fragment>
58 ) : (
59 <Fragment>
60 <Heading>
61 {__('Subscription', 'give')} #{getSubscriptionById(id).payment.serialCode}
62 </Heading>
63 <SubscriptionReceipt subscription={getSubscriptionById(id)} />
64 <div className="give-donor-dashboard__recurring-donations-link">
65 <Link to="/recurring-donations">
66 <FontAwesomeIcon icon="arrow-left" /> {__('Back to Recurring Donations', 'give')}
67 </Link>
68 </div>
69 </Fragment>
70 );
71 }
72 case 'manage': {
73 return querying && subscriptions === null ? (
74 <Fragment>
75 <Heading>{__('Loading...', 'give')}</Heading>
76 <div className="give-donor-dashboard__recurring-donations-link">
77 <Link to="/recurring-donations">
78 <FontAwesomeIcon icon="arrow-left" /> {__('Back to Recurring Donations', 'give')}
79 </Link>
80 </div>
81 </Fragment>
82 ) : (
83 <Fragment>
84 <Heading>{__('Manage Subscription', 'give')}</Heading>
85 <Divider />
86 <SubscriptionManager id={id} subscription={getSubscriptionById(id)} />
87 <Divider />
88 <div className="give-donor-dashboard__recurring-donations-link" style={{marginTop: '18px'}}>
89 <Link to="/recurring-donations">
90 <FontAwesomeIcon icon="arrow-left" /> {__('Back to Recurring Donations', 'give')}
91 </Link>
92 </div>
93 </Fragment>
94 );
95 }
96 }
97 }
98
99 if (querying && !subscriptions) {
100 return (
101 <Fragment>
102 <Heading>{__('Loading...', 'give')}</Heading>
103 <SubscriptionTable />
104 </Fragment>
105 );
106 } else if (subscriptions.length > 0) {
107 return (
108 <Fragment>
109 <Heading>{`${Object.entries(subscriptions).length} ${__('Total Subscriptions', 'give')}`}</Heading>
110 <SubscriptionTable subscriptions={subscriptions} perPage={5} />
111 </Fragment>
112 );
113 } else {
114 return (
115 <Fragment>
116 <Heading icon="exclamation-triangle">{__('No Subscriptions', 'give')}</Heading>
117 </Fragment>
118 );
119 }
120 };
121 export default Content;
122