Time masking in React Timepicker component
25 Jul 202317 minutes to read
TimePicker has enableMask
property that provides the option to enable the built-in date masking support. Also, you must inject the MaskedDateTime module to enable the masking support.
[Class-component]
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
export default class App extends React.Component {
render() {
return <TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]}/></TimePickerComponent>;
}
}
ReactDOM.render(<App />, document.getElementById('element'));
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
export default class App extends React.Component<{}, {}> {
public render() {
return <TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
}
}
ReactDOM.render(<App />, document.getElementById('element'));
[Functional-component]
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
function App() {
return <TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]}/></TimePickerComponent>;
}
ReactDOM.render(<App />, document.getElementById('element'));
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
function App() {
return <TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
}
ReactDOM.render(<App />, document.getElementById('element'));
The mask pattern is defined based on the provided time format to the component. If the format is not specified, the mask pattern is formed based on the default format of the current culture.
Keys | Actions |
---|---|
Up / Down arrows | To increment and decrement the selected portion of the time. |
Left / Right arrows and Tab | To navigate the selection from one portion to next portion |
The following example demonstrates default and custom format of TimePicker component with mask.
[Class-component]
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
export default class App extends React.Component {
render() {
return (<div>
{/* specifies the masked TimePicker component without format */}
<TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]}/></TimePickerComponent>
<br />
<br />
{/* specifies the masked TimePicker component with format */}
<TimePickerComponent format='h:mm a' enableMask={true}><Inject services={[MaskedDateTime]}/></TimePickerComponent>
</div>);
}
}
ReactDOM.render(<App />, document.getElementById('element'));
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
export default class App extends React.Component<{}, {}> {
public render() {
return (
<div>
{/* specifies the masked TimePicker component without format */}
<TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
<br />
<br />
{/* specifies the masked TimePicker component with format */}
<TimePickerComponent format='h:mm a' enableMask={true}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById('element'));
[Functional-component]
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
function App() {
return (<div>
{/* specifies the masked TimePicker component without format */}
<TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]}/></TimePickerComponent>
<br />
<br />
{/* specifies the masked TimePicker component with format */}
<TimePickerComponent format='h:mm a' enableMask={true}><Inject services={[MaskedDateTime]}/></TimePickerComponent>
</div>);
}
ReactDOM.render(<App />, document.getElementById('element'));
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
function App() {
return (
<div>
{/* specifies the masked TimePicker component without format */}
<TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
<br />
<br />
{/* specifies the masked TimePicker component with format */}
<TimePickerComponent format='h:mm a' enableMask={true}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
</div>
);
}
ReactDOM.render(<App />, document.getElementById('element'));
Configure Mask Placeholder
You can change mask placeholder value through property maskPlaceholder
. By default , it takes the full name of time co-ordinates such as hour
, minute
and second
.
While changing to a culture other than English
, ensure that locale text for the concerned culture is loaded through load method of L10n class for mask placeholder values like below.
//Load the L10n from ej2-base
import { L10n } from '@syncfusion/ej2-base';
//load the locale object to set the localized mask placeholder value
L10n.load({
'de': {
timepicker: { hour: 'Stunde' ,minute: 'Minute', second:'Sekunde' }
}
});
The following example demonstrates default and customized mask placeholder value.
[Class-component]
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
export default class App extends React.Component {
maskPlaceholderValue;
constructor(props) {
super(props);
this.maskPlaceholderValue = { hour: 'h', minute: 'm', second: 's' };
}
render() {
return (<div>
{/* specifies the masked TimePicker component without mask placeholder */}
<TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]}/></TimePickerComponent>
<br />
<br />
{/* specifies the masked TimePicker component with mask placeholder */}
<TimePickerComponent enableMask={true} maskPlaceholder={this.maskPlaceholderValue}><Inject services={[MaskedDateTime]}/></TimePickerComponent>
</div>);
}
}
ReactDOM.render(<App />, document.getElementById('element'));
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
export default class App extends React.Component<{}, {}> {
private maskPlaceholderValue: object;
constructor(props: {}) {
super(props);
this.maskPlaceholderValue = { hour: 'h', minute: 'm', second: 's' };
}
public render() {
return (
<div>
{/* specifies the masked TimePicker component without mask placeholder */}
<TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
<br />
<br />
{/* specifies the masked TimePicker component with mask placeholder */}
<TimePickerComponent enableMask={true} maskPlaceholder={this.maskPlaceholderValue}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
</div>
);
}
}
ReactDOM.render(<App />, document.getElementById('element'));
[Functional-component]
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
function App() {
let maskPlaceholderValue;
maskPlaceholderValue = { hour: 'h', minute: 'm', second: 's' };
return (<div>
{/* specifies the masked TimePicker component without mask placeholder */}
<TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]}/></TimePickerComponent>
<br />
<br />
{/* specifies the masked TimePicker component with mask placeholder */}
<TimePickerComponent enableMask={true} maskPlaceholder={maskPlaceholderValue}><Inject services={[MaskedDateTime]}/></TimePickerComponent>
</div>);
}
ReactDOM.render(<App />, document.getElementById('element'));
import { TimePickerComponent, Inject, MaskedDateTime } from '@syncfusion/ej2-react-calendars';
import * as ReactDOM from 'react-dom';
import * as React from 'react';
function App() {
let maskPlaceholderValue: object;
maskPlaceholderValue = { hour: 'h', minute: 'm', second: 's' };
return (
<div>
{/* specifies the masked TimePicker component without mask placeholder */}
<TimePickerComponent enableMask={true}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
<br />
<br />
{/* specifies the masked TimePicker component with mask placeholder */}
<TimePickerComponent enableMask={true} maskPlaceholder={maskPlaceholderValue}><Inject services={[MaskedDateTime]} /></TimePickerComponent>
</div>
);
}
ReactDOM.render(<App />, document.getElementById('element'));