import {
memo,
useState,
} from '../../lib/teact/teact';
import { getActions, withGlobal } from '../../global';
import type { TabState } from '../../global/types';
import buildClassName from '../../util/buildClassName';
import useCurrentOrPrev from '../../hooks/useCurrentOrPrev';
import useLang from '../../hooks/useLang';
import useLastCallback from '../../hooks/useLastCallback';
import Modal from '../ui/Modal';
import PasswordForm from './PasswordForm';
import styles from './VerificationMonetizationModal.module.scss';
export type OwnProps = {
modal: TabState['monetizationVerificationModal'];
};
type StateProps = {
passwordHint?: string;
};
const VerificationMonetizationModal = ({
modal,
passwordHint,
}: OwnProps & StateProps) => {
const {
closeMonetizationVerificationModal, clearMonetizationVerificationError, processMonetizationRevenueWithdrawalUrl,
} = getActions();
const isOpen = Boolean(modal);
const renderingModal = useCurrentOrPrev(modal);
const lang = useLang();
const [shouldShowPassword, setShouldShowPassword] = useState(false);
const handleSubmit = useLastCallback((password: string) => {
if (!renderingModal) return;
processMonetizationRevenueWithdrawalUrl({
peerId: renderingModal.chatId,
currentPassword: password,
});
});
const handleClearError = useLastCallback(() => {
clearMonetizationVerificationError();
});
const handleClose = useLastCallback(() => {
closeMonetizationVerificationModal();
});
return (
);
};
export default memo(withGlobal(
(global): Complete => {
const {
twoFaSettings: {
hint: passwordHint,
},
} = global;
return {
passwordHint,
};
},
)(VerificationMonetizationModal));