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 / components / donation-table / index.js
give / src / DonorDashboards / resources / js / app / components / donation-table Last commit date
index.js 4 years ago style.scss 4 years ago
index.js
83 lines
1 import {Fragment, useState} from 'react';
2 import {FontAwesomeIcon} from '@fortawesome/react-fontawesome';
3 import {__} from '@wordpress/i18n';
4 import Table from '../table';
5 import DonationRow from '../donation-row';
6
7 import './style.scss';
8
9 const DonationTable = ({donations, perPage}) => {
10 const [page, setPage] = useState(1);
11
12 const getStartIndex = () => {
13 return (page - 1) * perPage;
14 };
15
16 const getEndIndex = () => {
17 return start + perPage <= donationsArray.length ? start + perPage : donationsArray.length;
18 };
19
20 const getDonationRows = () => {
21 return donationsArray.reduce((rows, donation, index) => {
22 if (index >= start && index < end) {
23 rows.push(<DonationRow key={index} donation={donation} />);
24 }
25 return rows;
26 }, []);
27 };
28
29 let donationRows = [];
30 const donationsArray = [];
31 let start = 0;
32 let end = perPage;
33 let lastPage = 1;
34
35 if (donations) {
36 Object.entries(donations).forEach((donation) => {
37 donationsArray[donation[0]] = donation[1];
38 });
39 start = getStartIndex();
40 end = getEndIndex();
41 lastPage = Math.ceil(donationsArray.length / perPage) - 1;
42 donationRows = getDonationRows();
43 }
44
45 return (
46 <Table
47 header={
48 <Fragment>
49 <div className="give-donor-dashboard-table__column">{__('Donation', 'give')}</div>
50 <div className="give-donor-dashboard-table__column">{__('Campaign', 'give')}</div>
51 <div className="give-donor-dashboard-table__column">{__('Date', 'give')}</div>
52 <div className="give-donor-dashboard-table__column">{__('Status', 'give')}</div>
53 </Fragment>
54 }
55 rows={<Fragment>{donationRows}</Fragment>}
56 footer={
57 <Fragment>
58 <div className="give-donor-dashboard-table__footer-text">
59 {donations &&
60 `${__('Showing', 'give')} ${start + 1} - ${end} ${__('of', 'give')} ${
61 donationsArray.length
62 } ${__('Donations', 'give')}`}
63 </div>
64 <div className="give-donor-dashboard-table__footer-nav">
65 {page - 1 >= 1 && (
66 <a onClick={() => setPage(page - 1)}>
67 <FontAwesomeIcon icon="chevron-left" />
68 </a>
69 )}
70 {page <= lastPage && (
71 <a onClick={() => setPage(page + 1)}>
72 <FontAwesomeIcon icon="chevron-right" />
73 </a>
74 )}
75 </div>
76 </Fragment>
77 }
78 />
79 );
80 };
81
82 export default DonationTable;
83