47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
|
|
import React, { useState, useEffect, forwardRef, useImperativeHandle } from 'react'
|
||
|
|
import { Modal } from 'antd';
|
||
|
|
import apiurl from '../../../service/apiurl';
|
||
|
|
const PdfView = forwardRef((props,ref) => {
|
||
|
|
const [pdfViewOPen, setPdfViewOPen] = useState(false)
|
||
|
|
const [iframeSrc, setIframeSrc] = useState('')
|
||
|
|
|
||
|
|
useImperativeHandle(ref, () => ({
|
||
|
|
callChildMethod: showPdf
|
||
|
|
}));
|
||
|
|
|
||
|
|
const showPdf = (url) => {
|
||
|
|
setIframeSrc(url)
|
||
|
|
setPdfViewOPen(true)
|
||
|
|
};
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
return (
|
||
|
|
<>
|
||
|
|
<Modal
|
||
|
|
open={pdfViewOPen}
|
||
|
|
width={1000}
|
||
|
|
title=""
|
||
|
|
footer={null}
|
||
|
|
style={{ marginTop: "-5%" }}
|
||
|
|
onCancel={() => {
|
||
|
|
setPdfViewOPen(false)
|
||
|
|
setIframeSrc('')
|
||
|
|
}}
|
||
|
|
>
|
||
|
|
<iframe
|
||
|
|
style={{
|
||
|
|
height: '80vh',
|
||
|
|
width: '100%',
|
||
|
|
border: 0,
|
||
|
|
marginTop: 20,
|
||
|
|
}}
|
||
|
|
src={`${process.env.PUBLIC_URL}/static/pdf/web/viewer.html?file=${encodeURIComponent(props?.downloadUrl+iframeSrc)}`}
|
||
|
|
/>
|
||
|
|
</Modal>
|
||
|
|
</>
|
||
|
|
)
|
||
|
|
})
|
||
|
|
|
||
|
|
export default PdfView
|