PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 4.16.5
GiveWP – Donation Plugin and Fundraising Platform v4.16.5
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 / DonationForms / resources / registrars / templates / fields / Amount / CustomAmount.tsx
give / src / DonationForms / resources / registrars / templates / fields / Amount Last commit date
CurrencySwitcher.tsx 2 years ago CustomAmount.tsx 1 year ago DonationAmountCurrency.tsx 2 years ago DonationAmountLevels.tsx 1 month ago index.tsx 1 month ago withCurrencySettings.tsx 1 month ago
CustomAmount.tsx
71 lines
1 import classNames from 'classnames';
2 import {__} from '@wordpress/i18n';
3 import CurrencyInput from 'react-currency-input-field';
4 import {CurrencyInputOnChangeValues} from 'react-currency-input-field/dist/components/CurrencyInputProps';
5
6 import {useEffect, useRef} from "react";
7 /**
8 * @since 3.0.0
9 */
10 type CustomAmountProps = {
11 fieldError?: string;
12 currency?: string;
13 currencySymbol?: string;
14 defaultValue?: string;
15 value?: string;
16 onValueChange?: (value: string, name?: string, values?: CurrencyInputOnChangeValues) => void;
17 };
18
19 const formatter = new Intl.NumberFormat(navigator.language);
20 const groupSeparator = formatter.format(1000).replace(/[0-9]/g, '');
21 const decimalSeparator = formatter.format(1.1).replace(/[0-9]/g, '');
22
23 /**
24 * @since 4.3.0 add module styles to override currency-input placeholder styling.
25 * @since 3.0.0
26 */
27 const CustomAmount = ({defaultValue, fieldError, currency, value, onValueChange}: CustomAmountProps) => {
28 const ref = useRef<HTMLInputElement | null>(null);
29
30 useEffect(() => {
31 if (fieldError && ref.current) {
32 ref.current.focus();
33 }
34 }, [fieldError]);
35
36 return (
37 <div className={classNames('givewp-fields-amount__input-container', {invalid: fieldError})}>
38 <CurrencyInput
39 ref={ref}
40 intlConfig={{
41 locale: navigator.language,
42 currency,
43 }}
44 disableAbbreviations
45 decimalSeparator={decimalSeparator}
46 groupSeparator={
47 /**
48 * Replace non-breaking space to avoid conflict with the suffix separator.
49 * @link https://github.com/cchanxzy/react-currency-input-field/issues/266
50 */
51 groupSeparator.replace(/\u00A0/g, ' ')
52 }
53 className='givewp-fields-amount__input givewp-fields-amount__input-custom'
54 aria-label={__('Enter custom amount', 'give')}
55 aria-describedby={fieldError ? 'givewp-field-error-amount' : undefined}
56 aria-invalid={fieldError ? 'true' : 'false'}
57 id="amount-custom"
58 placeholder={__('Enter custom amount', 'give')}
59 defaultValue={defaultValue}
60 value={value}
61 decimalsLimit={2}
62 onValueChange={(value) => {
63 onValueChange(value !== undefined ? value : '');
64 }}
65 />
66 </div>
67 );
68 };
69
70 export default CustomAmount;
71