Quick Start
Get up and running with Timepicker-UI in minutes
Basic Usage
Create a simple time picker with default settings:
HTML
<input id="timepicker" type="text" placeholder="Select time" />
JavaScript
import { TimepickerUI } from 'timepicker-ui';const input = document.querySelector('#timepicker');const picker = new TimepickerUI(input);picker.create();
With Options
Customize the picker with options:
const picker = new TimepickerUI(input, {theme: 'dark',clockType: '24h',animation: true,backdrop: true,onConfirm: (data) => {console.log('Selected time:', data);}});picker.create();
Framework Integration
React
💡
Important for React
Use
useRef to store the picker instance and avoid re-initialization on every render. If you pass options as an object, memoize them with useMemo to prevent unnecessary re-renders.import { useEffect, useRef, useMemo } from 'react';import { TimepickerUI } from 'timepicker-ui';export default function TimePicker() {const inputRef = useRef<HTMLInputElement>(null);const pickerRef = useRef<TimepickerUI | null>(null);// Memoize options to prevent re-initializationconst options = useMemo(() => ({onConfirm: (data) => console.log('Time:', data)}), []);useEffect(() => {if (!inputRef.current) return;// Create instance only oncepickerRef.current = new TimepickerUI(inputRef.current, options);pickerRef.current.create();// Cleanup on unmountreturn () => {pickerRef.current?.destroy();};}, []); // Empty deps - create only oncereturn <input ref={inputRef} type="text" />;}
Vue
<template><input ref="timepickerInput" type="text" /></template><script setup>import { ref, onMounted, onUnmounted } from 'vue';import { TimepickerUI } from 'timepicker-ui';const timepickerInput = ref(null);let picker = null; // Store instance outside reactive stateonMounted(() => {picker = new TimepickerUI(timepickerInput.value);picker.create();});onUnmounted(() => {// Always cleanup to prevent memory leakspicker?.destroy();picker = null;});</script>
Angular
import { Component, ElementRef, ViewChild, AfterViewInit, OnDestroy } from '@angular/core';import { TimepickerUI } from 'timepicker-ui';@Component({selector: 'app-timepicker',template: '<input #timepicker type="text" />'})export class TimepickerComponent implements AfterViewInit, OnDestroy {@ViewChild('timepicker') input: ElementRef;private picker: TimepickerUI;ngAfterViewInit() {this.picker = new TimepickerUI(this.input.nativeElement);this.picker.create();}ngOnDestroy() {this.picker?.destroy();}}
💡
Pro tip
Always call
destroy() when unmounting to prevent memory leaks. In React, use useMemo for options objects to avoid re-initialization on every render.