| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 | import React, { type FC } from 'react'import { useTimeOptions } from '../hooks'import type { TimeOptionsProps } from '../types'import OptionListItem from '../common/option-list-item'const Options: FC<TimeOptionsProps> = ({  selectedTime,  handleSelectHour,  handleSelectMinute,  handleSelectPeriod,}) => {  const { hourOptions, minuteOptions, periodOptions } = useTimeOptions()  return (    <div className='grid grid-cols-3 gap-x-1 p-2'>      {/* Hour */}      <ul className='flex flex-col gap-y-0.5 h-[208px] overflow-y-auto no-scrollbar pb-[184px]'>        {          hourOptions.map((hour) => {            const isSelected = selectedTime?.format('hh') === hour            return (              <OptionListItem                key={hour}                isSelected={isSelected}                onClick={handleSelectHour.bind(null, hour)}              >                {hour}              </OptionListItem>            )          })        }      </ul>      {/* Minute */}      <ul className='flex flex-col gap-y-0.5 h-[208px] overflow-y-auto no-scrollbar pb-[184px]'>        {          minuteOptions.map((minute) => {            const isSelected = selectedTime?.format('mm') === minute            return (              <OptionListItem                key={minute}                isSelected={isSelected}                onClick={handleSelectMinute.bind(null, minute)}              >                {minute}              </OptionListItem>            )          })        }      </ul>      {/* Period */}      <ul className='flex flex-col gap-y-0.5 h-[208px] overflow-y-auto no-scrollbar pb-[184px]'>        {          periodOptions.map((period) => {            const isSelected = selectedTime?.format('A') === period            return (              <OptionListItem                key={period}                isSelected={isSelected}                onClick={handleSelectPeriod.bind(null, period)}              >                {period}              </OptionListItem>            )          })        }      </ul>    </div>  )}export default React.memo(Options)
 |