import { type TeactNode } from '../../../lib/teact/teact'; import { IS_IOS } from '../../../util/browser/windowEnvironment'; import buildClassName from '../../../util/buildClassName'; import useLang from '../../../hooks/useLang'; import useLastCallback from '../../../hooks/useLastCallback'; import RippleEffect from '../../ui/RippleEffect'; import styles from './PickerItem.module.scss'; type OwnProps = { title: TeactNode; subtitle?: TeactNode; avatarElement?: TeactNode; inputElement?: TeactNode; inputPosition?: 'start' | 'end'; disabled?: boolean; inactive?: boolean; ripple?: boolean; className?: string; titleClassName?: string; subtitleClassName?: string; style?: string; onClick?: NoneToVoidFunction; onDisabledClick?: NoneToVoidFunction; }; const PickerItem = ({ title, subtitle, avatarElement, inputElement, inputPosition = 'start', disabled, inactive, ripple, className, titleClassName, subtitleClassName, style, onClick, onDisabledClick, }: OwnProps) => { const lang = useLang(); const isClickable = !inactive && !disabled; const handleClick = useLastCallback(() => { if (inactive) return; if (disabled) { onDisabledClick?.(); return; } onClick?.(); }); return (
{!disabled && !inactive && ripple && } {Boolean(inputElement) && (
{inputElement}
)} {Boolean(avatarElement) && (
{avatarElement}
)}
{title}
{Boolean(subtitle) && (
{subtitle}
)} {!inputElement && IS_IOS && (
)}
); }; export default PickerItem;