asb_cloud_front/src/pages/Documents/DrillingProgram.jsx
Фролов 4ad91d861f design
2021-09-01 15:55:23 +05:00

60 lines
2.0 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import {Button, Tooltip} from 'antd'
import { useState } from "react"
import {invokeWebApiWrapperAsync, download} from '../../components/factory'
import DocumentsTemplate from './DocumentsTemplate'
import LoaderPortal from '../../components/LoaderPortal'
const idFileCategoryDrillingProgramItems = 13;
export default function DrillingProgram({idWell}) {
const [downloadButtonEnabled, selDownloadButtonEnabled] = useState(false)
const [showLoader, setShowLoader] = useState(false)
const [tooltip, setTooltip] = useState('нет файлов для формирования')
const urlDownloadProgram =`/api/well/${idWell}/drillingProgram`
const downloadProgram = () => invokeWebApiWrapperAsync(async()=>{
await download(urlDownloadProgram)
},
setShowLoader,
"Не удалось загрузить программу бурения")
const filesUpdated = (files) =>{
if(!files || files.length === 0){
setTooltip('Нет файлов для формирования программы')
selDownloadButtonEnabled(false)
return
}
if(files.every(fileInfo => fileInfo?.name.toLowerCase().endsWith('.xlsx'))){
setTooltip('Программа доступна для скачивания')
selDownloadButtonEnabled(true)
}
else{
setTooltip('Список файлов содержит недопустимые типы файлов')
}
}
const downloadButton = <div>
<span>Программа бурения</span>
<div>
<Tooltip title={tooltip}>
<Button
type="primary"
onClick={downloadProgram}
disabled={!downloadButtonEnabled}>
Сформировать и скачать
</Button>
</Tooltip>
</div>
</div>
return(<LoaderPortal show={showLoader}>
<DocumentsTemplate
idWell={idWell}
idCategory={idFileCategoryDrillingProgramItems}
accept='.xlsx'
headerChild={downloadButton}
onChange={filesUpdated} />
</LoaderPortal>)
}