0.0.16 • Published 4 months ago

@somm12/time-wheel v0.0.16

Weekly downloads
-
License
-
Repository
github
Last release
4 months ago

Usage

Use the TimeWheel component to create a time selection UI and retrieve the selected time via ref.

import { useRef } from "react";
import TimeWheel, { TimeWheelHandle } from "@somm12/time-wheel";

export default function App() {
  const timeWheelRef = useRef<TimeWheelHandle>(null);

  const handleClick = () => {
    if (timeWheelRef.current) {
      const selectedTime = timeWheelRef.current.getSelectedTime();
      console.log(`${selectedTime.amPm} ${selectedTime.hour}:${selectedTime.minute}`);
      *// e.g., "오전 08:00" (Korean "AM 08:00")*
    }
  };
  const initTime = { initHour: 8, initMinute: 0 }; *// Initial time (24-hour format)*
  return (
    <>
      <TimeWheel ref={timeWheelRef} initTime={initTime} />
      <button onClick={handleClick}>Select</button>
    </>
  );
}
  • Features: Supports Korean "오전/오후" (AM/PM) notation, with 12-hour format and 00/30 minute intervals.

Demo

Here's a short demo of TimeWheel in action:

2025-03-0412 13 46-ezgif com-optimize

Props

PropTypeDefaultDescription
initTime{ initHour, initMinute }{ 8, 0 }Initial time (24-hour format, optional)
onTimeChange(amPm, hour, minute) => void-Callback on time change (optional)
  • initHour: 0~23 (24-hour format).
  • initMinute: 0 or 30.

Methods (via ref)

MethodReturn TypeDescription
getSelectedTime(){ amPm: string, hour: string, minute: string }Returns current selected time
resetScrollPosition(newAmPm, newHour, newMinute)voidResets scroll to specific time
  • newAmPm: 0 ("오전"/AM), 1 ("오후"/PM).
  • newHour: 1~12.
  • newMinute: 0 or 30.

Notes

  • This package depends on styled-components, so install it in your project:
    npm install styled-components
  • Uses Korean "오전/오후" (AM/PM) notation by default and operates on a 12-hour system.

🌟 Important: For proper styling, ensure your project includes the following base CSS:

  * {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
  }
0.0.16

4 months ago

0.0.15

5 months ago

0.0.14

5 months ago

0.0.13

5 months ago

0.0.12

5 months ago

0.0.11

5 months ago

0.0.10

5 months ago

0.0.9

5 months ago

0.0.8

5 months ago

0.0.7

5 months ago

0.0.6

5 months ago

0.0.5

5 months ago

0.0.4

5 months ago

0.0.3

5 months ago

0.0.2

5 months ago

0.0.1

5 months ago