From 0aee37fe16615296b3a7ccda9e8bc3cd22842fed Mon Sep 17 00:00:00 2001 From: Nastya Date: Sat, 13 Jul 2024 16:25:34 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=B5=D1=80=D0=B8=D1=84=D0=B8=D0=BA?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D1=8F=D0=B5=D1=82=D1=81=D1=8F=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=20=D1=80=D0=B8=D1=81=D0=BE=D0=B2=D0=BA=D0=BE=D0=B9=20=D0=BF?= =?UTF-8?q?=D0=B4=D1=84,=20=D1=83=D0=BC=D0=B5=D0=BD=D1=8C=D1=88=D0=B5?= =?UTF-8?q?=D0=BD=D0=BE=20=D0=BF=D1=80=D0=B5=D0=B2=D1=8C=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.css | 7 ++- .../DocumentsDialog/DocumentItem.tsx | 25 +++++++-- .../DocumentsDialog/DocumentUploadItem.tsx | 53 +++++++++++++------ .../JuridicalDocumentsDialog.tsx | 7 +-- .../DocumentsDialog/NkoDocumentsDialog.tsx | 3 +- 5 files changed, 64 insertions(+), 31 deletions(-) diff --git a/src/index.css b/src/index.css index b13fa9a..6305e66 100644 --- a/src/index.css +++ b/src/index.css @@ -20,11 +20,14 @@ html * ::-webkit-scrollbar-track { } html * ::-webkit-scrollbar-thumb { width: 4px; - background-color: #9A9AAF; - color: #9A9AAF; + background-color: #7e2aea; + color: #7e2aea; border-radius: 5px; } +.cnvs { + width: 80px; +} /* ::-webkit-scrollbar — это фон самого скроллбара. diff --git a/src/pages/AccountSettings/DocumentsDialog/DocumentItem.tsx b/src/pages/AccountSettings/DocumentsDialog/DocumentItem.tsx index ec3530b..6ee36ef 100644 --- a/src/pages/AccountSettings/DocumentsDialog/DocumentItem.tsx +++ b/src/pages/AccountSettings/DocumentsDialog/DocumentItem.tsx @@ -11,7 +11,7 @@ import { Document, Page } from "react-pdf"; import { Buffer } from "buffer"; import { downloadFileToDevice } from "@root/utils/downloadFileToDevice"; import EditIcon from "@mui/icons-material/Edit"; -import { ChangeEvent, useRef } from "react"; +import { ChangeEvent, useEffect, useRef, useState } from "react"; import { SendDocumentsArgs, Verification } from "@root/model/auth"; import { updateDocument } from "@api/verification"; import { jsonToFormdata } from "@utils/jsonToFormdata"; @@ -58,6 +58,22 @@ export default function DocumentItem({ return; }; + const [readyShowDocument, setReadyShowDocument] = useState(false); + + useEffect(() => { + if (typeof documentUrl === 'string') { + if (!documentUrl.includes("pena.digital")) { + console.log(documentUrl) + fetch(documentUrl) + .then(e => { + console.log(e) + setReadyShowDocument(true) + }) + .catch(e => console.log(e)) + } + } + }, []) + async function sendDocument(e: ChangeEvent) { const target = e.target as HTMLInputElement; const file = target?.files?.[0] || null; @@ -76,7 +92,6 @@ export default function DocumentItem({ enqueueSnackbar("Данные обновлены"); } } - return ( {text} - {documentUrl && ( + {documentUrl && readyShowDocument && ( <> - + diff --git a/src/pages/AccountSettings/DocumentsDialog/DocumentUploadItem.tsx b/src/pages/AccountSettings/DocumentsDialog/DocumentUploadItem.tsx index 6961ce9..5572813 100644 --- a/src/pages/AccountSettings/DocumentsDialog/DocumentUploadItem.tsx +++ b/src/pages/AccountSettings/DocumentsDialog/DocumentUploadItem.tsx @@ -1,4 +1,4 @@ -import { ChangeEvent, useRef } from "react" +import { ChangeEvent, useEffect, useRef, useState } from "react" import axios from "axios" import { Document, Page, pdfjs } from "react-pdf" import { Box, SxProps, Theme, Typography } from "@mui/material" @@ -13,12 +13,12 @@ import { readFile } from "@root/utils/readFile" import { downloadFileToDevice } from "@root/utils/downloadFileToDevice" interface Props { - text: string; - document: UserDocument; - documentUrl?: string; - onFileChange: (event: ChangeEvent) => void; - sx?: SxProps; - accept?: string; + text: string; + document: UserDocument; + documentUrl?: string; + onFileChange: (event: ChangeEvent) => void; + sx?: SxProps; + accept?: string; } pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/build/pdf.worker.min.js`; @@ -31,12 +31,31 @@ export default function DocumentUploadItem({ sx, accept = "image/*", }: Props) { + const urlOrFile = document.file || documentUrl const fileInputRef = useRef(null) function handleChooseFileClick() { fileInputRef.current?.click() } + const [readyShowDocument, setReadyShowDocument] = useState(false); + + useEffect(() => { + if (typeof urlOrFile === 'string') { + if (!urlOrFile.includes("pena.digital")) { + console.log(documentUrl) + fetch(documentUrl) + .then(e => { + console.log(e) + setReadyShowDocument(true) + }) + .catch(e => console.log(e)) + } + } else { + setReadyShowDocument(true) + } + }, []) + const downloadFile = async () => { if (!document.file && documentUrl) { const { data } = await axios.get(documentUrl, { @@ -93,16 +112,16 @@ export default function DocumentUploadItem({ multiple accept={accept} /> - {(document.file || documentUrl) && - - - } + {urlOrFile && readyShowDocument && + + + } ) } diff --git a/src/pages/AccountSettings/DocumentsDialog/JuridicalDocumentsDialog.tsx b/src/pages/AccountSettings/DocumentsDialog/JuridicalDocumentsDialog.tsx index 5029e21..d34b782 100644 --- a/src/pages/AccountSettings/DocumentsDialog/JuridicalDocumentsDialog.tsx +++ b/src/pages/AccountSettings/DocumentsDialog/JuridicalDocumentsDialog.tsx @@ -13,12 +13,7 @@ import { sendDocuments, updateDocuments } from "@root/api/verification" import { readFile } from "@root/utils/readFile" import { deleteEmptyKeys } from "@root/utils/deleteEmptyKeys" import { verify } from "../helper" -import {ChangeEvent, useState} from "react" import { theme } from "@root/utils/theme" -import makeRequest from "@api/makeRequest" -import {Verification} from "@root/model/auth" -import {jsonToFormdata} from "@utils/jsonToFormdata" -import {parseAxiosError} from "@utils/parse-error" const dialogContainerStyle = { height: "100%", @@ -174,7 +169,7 @@ export default function JuridicalDocumentsDialog() { > - + {verificationStatus === VerificationStatus.VERIFICATED ? "Ваши документы" diff --git a/src/pages/AccountSettings/DocumentsDialog/NkoDocumentsDialog.tsx b/src/pages/AccountSettings/DocumentsDialog/NkoDocumentsDialog.tsx index 7621d33..7271c57 100644 --- a/src/pages/AccountSettings/DocumentsDialog/NkoDocumentsDialog.tsx +++ b/src/pages/AccountSettings/DocumentsDialog/NkoDocumentsDialog.tsx @@ -129,6 +129,7 @@ export default function NkoDocumentsDialog() { text="1. Свидетельство о регистрации НКО" keyName="certificate" documentUrl={documentsUrl["Свидетельство о регистрации НКО"]} + /> - + {verificationStatus === VerificationStatus.VERIFICATED ? "Ваши документы"