import React, { useState } from "react"; import styled from "styled-components"; import Button from "@docspace/components/button"; import TextInput from "@docspace/components/text-input"; import Text from "@docspace/components/text"; import ModalDialog from "@docspace/components/modal-dialog"; import Textarea from "@docspace/components/textarea"; import FieldContainer from "@docspace/components/field-container"; import { smallTablet } from "@docspace/components/utils/device"; import { sendRecoverRequest } from "@docspace/common/api/settings"; import toastr from "@docspace/components/toast/toastr"; import { useTranslation } from "react-i18next"; interface IRecoverAccessModalDialogProps { visible: boolean; onClose: () => void; textBody: string; emailPlaceholderText: string; id?: string; } const ModalDialogContainer = styled(ModalDialog)` .modal-dialog-aside-footer { @media (max-width: 1024px) { width: 90%; } } .recover-button-dialog { @media ${smallTablet} { width: 100%; } } .text-body { margin-bottom: 16px; } .textarea { margin-bottom: 0; } `; const RecoverAccessModalDialog: React.FC = ({ visible, onClose, textBody, emailPlaceholderText, id, }) => { const [loading, setLoading] = useState(false); const [email, setEmail] = useState(""); const [emailErr, setEmailErr] = useState(false); const [description, setDescription] = useState(""); const [descErr, setDescErr] = useState(false); const { t } = useTranslation(["Login", "Common"]); const onRecoverModalClose = () => { setEmail(""); setEmailErr(false); setDescription(""); setDescErr(false); onClose && onClose(); }; const onChangeEmail = (e: React.ChangeEvent) => { setEmail(e.currentTarget.value); setEmailErr(false); }; const onChangeDescription = (e: React.ChangeEvent) => { setDescription(e.currentTarget.value); setDescErr(false); }; const onSendRecoverRequest = () => { if (!email.trim()) { setEmailErr(true); } if (!description.trim()) { setDescErr(true); } else { setLoading(true); sendRecoverRequest(email, description) .then((res: string) => { setLoading(false); toastr.success(res); }) .catch((error) => { setLoading(false); toastr.error(error); }) .finally(onRecoverModalClose); } }; return ( {t("Common:RecoverTitle")} {textBody}