PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.1
GiveWP – Donation Plugin and Fundraising Platform v2.9.1
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 / MultiFormGoals / resources / js / components / date-time-control / index.js
give / src / MultiFormGoals / resources / js / components / date-time-control Last commit date
index.js 5 years ago
index.js
73 lines
1 /**
2 * Vendor dependencies
3 */
4 import PropTypes from 'prop-types';
5
6 /**
7 * WordPress dependencies
8 */
9 const { useInstanceId } = wp.compose;
10 const { DateTimePicker, BaseControl, Button, Dropdown } = wp.components;
11 const { __experimentalGetSettings, date } = wp.date;
12 const { __ } = wp.i18n;
13
14 const DateTimeControl = ( { name, label, help, className, value, onChange } ) => {
15 const instanceId = useInstanceId( DateTimeControl );
16 const id = `give-date-time-control-${ name }-${ instanceId }`;
17 const settings = __experimentalGetSettings(); // eslint-disable-line no-restricted-syntax
18
19 // To know if the current timezone is a 12 hour time with look for an "a" in the time format.
20 // We also make sure this a is not escaped by a "/".
21 const is12HourTime = /a(?!\\)/i.test(
22 settings.formats.time
23 .toLowerCase() // Test only the lower case a
24 .replace( /\\\\/g, '' ) // Replace "//" with empty strings
25 .split( '' ).reverse().join( '' ) // Reverse the string and test for "a" not followed by a slash
26 );
27 return (
28 <BaseControl
29 label={ label }
30 hideLabelFromVision={ true }
31 id={ id }
32 help={ help }
33 className={ className }
34 >
35 <div style={ { display: 'flex', alignItems: 'center', justifyContent: 'space-between' } }>
36 <span>
37 { label }
38 </span>
39 <Dropdown
40 position="bottom right"
41 renderToggle={ ( { isOpen, onToggle } ) => (
42 <Button isSecondary onClick={ onToggle } aria-expanded={ isOpen }>
43 { value !== '' ? date( 'F j, Y', value ) : __( 'Set date', 'give' ) }
44 </Button>
45 ) }
46 renderContent={ () => (
47 <DateTimePicker
48 currentDate={ value }
49 onChange={ ( newValue ) => onChange( newValue ) }
50 is12Hour={ is12HourTime }
51 />
52 ) }
53 />
54 </div>
55 </BaseControl>
56 );
57 };
58
59 DateTimeControl.propTypes = {
60 label: PropTypes.string,
61 value: PropTypes.any.isRequired,
62 onChange: PropTypes.func,
63 name: PropTypes.string.isRequired,
64 help: PropTypes.string,
65 className: PropTypes.string,
66 };
67
68 DateTimeControl.defaultProps = {
69 onChange: null,
70 };
71
72 export default DateTimeControl;
73