import React, { useMemo } from 'react'
import { convertTimezoneToOffsetStr } from '@/app/components/base/date-and-time-picker/utils/dayjs'
import cn from '@/utils/classnames'
export type TimezoneLabelProps = {
/** IANA timezone identifier (e.g., 'Asia/Shanghai', 'America/New_York') */
timezone: string
/** Additional CSS classes to apply */
className?: string
/** Use inline mode with lighter text color for secondary display */
inline?: boolean
}
/**
* TimezoneLabel component displays timezone information in UTC offset format.
*
* @example
* // Standard display
*
* // Output: UTC+8
*
* @example
* // Inline mode with lighter color
*
* // Output: UTC-5
*
* @example
* // Custom styling
*
*/
const TimezoneLabel: React.FC = ({
timezone,
className,
inline = false,
}) => {
// Memoize offset calculation to avoid redundant computations
const offsetStr = useMemo(
() => convertTimezoneToOffsetStr(timezone),
[timezone],
)
return (
{offsetStr}
)
}
export default React.memo(TimezoneLabel)