import type { FC } from '../../../lib/teact/teact'; import React, { memo, useCallback, useRef, useState, } from '../../../lib/teact/teact'; import { getActions } from '../../../global'; import buildClassName from '../../../util/buildClassName'; import useOldLang from '../../../hooks/useOldLang'; import Button from '../../ui/Button'; import InputText from '../../ui/InputText'; import Modal from '../../ui/Modal'; import styles from './RatePhoneCallModal.module.scss'; export type OwnProps = { isOpen?: boolean; }; const RatePhoneCallModal: FC = ({ isOpen, }) => { const { closeCallRatingModal, setCallRating } = getActions(); // eslint-disable-next-line no-null/no-null const inputRef = useRef(null); const lang = useOldLang(); const [rating, setRating] = useState(); const handleSend = useCallback(() => { if (!rating) { closeCallRatingModal(); return; } setCallRating({ rating: rating + 1, comment: inputRef.current?.value || '', }); }, [closeCallRatingModal, rating, setCallRating]); function handleClickStar(index: number) { return () => setRating(rating === index ? undefined : index); } const handleCancelClick = useCallback(() => { closeCallRatingModal(); }, [closeCallRatingModal]); return (
{new Array(5).fill(undefined).map((_, i) => { const isFilled = rating !== undefined && rating >= i; return ( ); })}
); }; export default memo(RatePhoneCallModal);