PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.13.0
GiveWP – Donation Plugin and Fundraising Platform v4.13.0
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 / EventTickets / resources / components / EventTicketsListItem.tsx
give / src / EventTickets / resources / components Last commit date
EventTicketsDescription.tsx 2 years ago EventTicketsHeader.tsx 1 year ago EventTicketsList.tsx 1 year ago EventTicketsListItem.tsx 1 year ago types.ts 1 year ago
EventTicketsListItem.tsx
71 lines
1 import {Icon} from '@wordpress/components';
2 import {__} from '@wordpress/i18n';
3 import {plus, reset as minus} from '@wordpress/icons';
4 import useCurrencyFormatter from '@givewp/forms/app/hooks/useCurrencyFormatter';
5
6 /**
7 * @since 4.3.2 include proper labeling for accessibility. update title to <p> tag.
8 */
9 export default function EventTicketsListItem({ticketType, currency, currencyRate, selectedTickets, handleSelect}) {
10 const formatter = useCurrencyFormatter(currency);
11 const ticketPrice =
12 ticketType.price > 0 ? formatter.format((Number(ticketType.price) * currencyRate) / 100) : __('Free', 'give');
13 const remainingTickets = ticketType.ticketsAvailable - selectedTickets;
14
15 const handleButtonClick = (quantity) => (e) => {
16 e.preventDefault();
17 handleSelect(quantity);
18 };
19
20 return (
21 <div className={'givewp-event-tickets__tickets__ticket'} key={ticketType.id}>
22 <div className={'givewp-event-tickets__tickets__ticket__description'}>
23 <p>{ticketType.title}</p>
24 <p>{ticketPrice}</p>
25 <p>{ticketType.description}</p>
26 </div>
27 <div className={'givewp-event-tickets__tickets__ticket__quantity'}>
28 {remainingTickets > 0 ? (
29 <>
30 <div className={'givewp-event-tickets__tickets__ticket__quantity__input'}>
31 <button
32 onClick={handleButtonClick(selectedTickets - 1)}
33 aria-label={__('Decrease quantity of', 'give') + ' ' + ticketType.title}
34 >
35 <Icon icon={minus} />
36 </button>
37 <input
38 type="text"
39 value={selectedTickets}
40 aria-label={__('Ticket quantity', 'give')}
41 />
42 <button
43 onClick={handleButtonClick(selectedTickets + 1)}
44 aria-label={__('Increase quantity of', 'give') + ' ' + ticketType.title}
45 >
46 <Icon icon={plus} />
47 </button>
48 </div>
49 <p
50 className={'givewp-event-tickets__tickets__ticket__quantity__availability'}
51 role="status"
52 aria-live="polite"
53 aria-label={`${remainingTickets} ${__('tickets remaining', 'give')}`}
54 >
55 {remainingTickets} {__('remaining', 'give')}
56 </p>
57 </>
58 ) : (
59 <span
60 className={'givewp-event-tickets__tickets__ticket__quantity__sold-out'}
61 role="status"
62 aria-live="polite"
63 >
64 {__('Sold out', 'give')}
65 </span>
66 )}
67 </div>
68 </div>
69 );
70 }
71