import type { FC } from "react"; import { Alert, Button, Modal, PasswordInput, Stack, Text, } from "@mantine/core"; import { ApiErrorCode, isApiErrorCode } from "@/shared/api"; import { type TbankConnectionStatus } from "../../model/connection-boundary"; import { useTbankConnectionSectionLoadedVm } from "./TbankConnectionSectionLoaded.vm"; type TbankConnectionSectionLoadedProps = { refreshError: boolean; refreshing: boolean; retry: () => void; status: TbankConnectionStatus; }; const TbankConnectionSectionLoaded: FC = ( props, ) => { const { errors, isConnected, isDeleteOpened, isPending, onCloseDisconnect, onConfirmDisconnect, onOpenDisconnect, onSubmit, register, removalButtonRef, remove, requestError, status, t, unavailableMessage, update, } = useTbankConnectionSectionLoadedVm(props); return ( {t("tbank.title")} {isConnected ? t("tbank.connected", { date: new Date(status.connectedAt ?? "").toLocaleDateString( "ru-RU", ), }) : t("tbank.disconnected")} {t("tbank.hint")} {props.refreshing && ( {t("tbank.refreshing")} )} {props.refreshError && ( {t("tbank.refreshError")} )}
{requestError && ( {t( isApiErrorCode(requestError, ApiErrorCode.InvalidTbankToken) ? "tbank.invalidToken" : unavailableMessage, )} )} {isConnected && ( )}
{t("tbank.deleteText")} {remove.isError && ( {t("tbank.requestError")} )}
); }; export { TbankConnectionSectionLoaded };