PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / trunk
GiveWP – Donation Plugin and Fundraising Platform vtrunk
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 / MultiFormGoals / resources / js / components / date-time-control / index.js
give / src / MultiFormGoals / resources / js / components / date-time-control Last commit date
index.js 1 year ago
index.js
63 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 import { __ } from '@wordpress/i18n'
13
14 const DateTimeControl = ({name, label, help, className, value, onChange = null}) => {
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('')
26 .reverse()
27 .join('') // Reverse the string and test for "a" not followed by a slash
28 );
29 return (
30 <BaseControl label={label} hideLabelFromVision={true} id={id} help={help} className={className}>
31 <div style={{display: 'flex', alignItems: 'center', justifyContent: 'space-between'}}>
32 <span>{label}</span>
33 <Dropdown
34 position="bottom right"
35 renderToggle={({isOpen, onToggle}) => (
36 <Button isSecondary onClick={onToggle} aria-expanded={isOpen}>
37 {value !== '' ? date('F j, Y', value) : __('Set date', 'give')}
38 </Button>
39 )}
40 renderContent={() => (
41 <DateTimePicker
42 currentDate={value}
43 onChange={(newValue) => onChange(newValue)}
44 is12Hour={is12HourTime}
45 />
46 )}
47 />
48 </div>
49 </BaseControl>
50 );
51 };
52
53 DateTimeControl.propTypes = {
54 label: PropTypes.string,
55 value: PropTypes.any.isRequired,
56 onChange: PropTypes.func,
57 name: PropTypes.string.isRequired,
58 help: PropTypes.string,
59 className: PropTypes.string,
60 };
61
62 export default DateTimeControl;
63