PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.22.3
GiveWP – Donation Plugin and Fundraising Platform v2.22.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 / Views / Components / ListTable / BulkActionCheckbox.tsx
give / src / Views / Components / ListTable Last commit date
hooks 4 years ago images 4 years ago BulkActionCheckbox.tsx 4 years ago BulkActionSelect.module.scss 4 years ago BulkActionSelect.tsx 4 years ago Filters.tsx 4 years ago FormSelect.module.scss 4 years ago FormSelect.tsx 4 years ago Input.module.scss 4 years ago Input.tsx 4 years ago ListTable.module.scss 4 years ago ListTable.tsx 4 years ago ListTablePage.module.scss 3 years ago ListTableRows.module.scss 3 years ago ListTableRows.tsx 4 years ago Pagination.module.scss 4 years ago Pagination.tsx 4 years ago README.MD 4 years ago RowAction.module.scss 4 years ago RowAction.tsx 4 years ago Select.module.scss 4 years ago Select.tsx 4 years ago TableCell.module.scss 4 years ago TableCell.tsx 4 years ago TestLabel.module.scss 4 years ago TestLabel.tsx 4 years ago TypeBadge.module.scss 4 years ago TypeBadge.tsx 4 years ago api.ts 4 years ago index.tsx 4 years ago
BulkActionCheckbox.tsx
72 lines
1 import {__, sprintf} from "@wordpress/i18n";
2 import {useCallback, useContext, useEffect, useState} from "react";
3 import {CheckboxContext} from "@givewp/components/ListTable/index";
4
5 export const BulkActionCheckbox = ({id, name, singleName}) => {
6 const checkboxRefs = useContext(CheckboxContext);
7 // add this element's ref to the list of checkboxes so we can access them imperatively
8 const updateCheckboxRefs = useCallback(node => {
9 if (node !== null) {
10 checkboxRefs?.current.push(node);
11 }
12 }, []);
13
14 useEffect(() => {
15 // cleanup function to remove the ref when the component unmounts
16 return () => {
17 checkboxRefs.current = checkboxRefs.current.filter(checkbox => (
18 checkbox.dataset.id === id
19 ));
20 };
21 }, []);
22
23 return (
24 <>
25 <label htmlFor={`giveListTableSelect${id}`} id={`giveListTableSelect${id}-Label`} className='give-visually-hidden'>
26 {sprintf(__('Select %1s %2s', 'give'), singleName, id)}
27 </label>
28 <input
29 ref={updateCheckboxRefs}
30 className='giveListTableSelect'
31 data-id={id}
32 data-name={name ? name : null}
33 id={`giveListTableSelect${id}`}
34 aria-labelledby={`giveListTableSelect${id}-Label`}
35 type='checkbox'
36 />
37 </>
38 );
39 }
40
41 export const BulkActionCheckboxAll = ({pluralName, data}) => {
42 const checkboxRefs = useContext(CheckboxContext);
43 const [checked, setChecked] = useState(false);
44 // reset the 'Select all' checkbox when table contents change
45 useEffect(() => {
46 setChecked(false);
47 }, [data]);
48 return (
49 <>
50 <label htmlFor='giveListTableSelectAll' id='giveListTableSelectAll-Label'
51 className='give-visually-hidden'
52 >
53 {sprintf(__('Select all %s', 'give'), pluralName)}
54 </label>
55 <input id='giveListTableSelectAll'
56 type='checkbox'
57 className='giveListTableSelect'
58 aria-labelledby='giveListTableSelectAll-Label'
59 onChange={(event) => toggleAllRowCheckboxes(event, checkboxRefs, setChecked, checked)}
60 checked={checked}
61 />
62 </>
63 );
64 }
65
66 const toggleAllRowCheckboxes = (event, checkboxRefs, setChecked, checked) => {
67 checkboxRefs.current.forEach((checkbox) => {
68 checkbox.checked = !checked;
69 });
70 setChecked(!checked);
71 }
72