Spaces:
Sleeping
Sleeping
| import { GenericIdentityFn, IQueryErrorResponse } from "../api/query"; | |
| import { AxiosResponseHeaders } from "axios"; | |
| export const getContentFilename = (headers?: AxiosResponseHeaders) => { | |
| const fileNameHeader = headers?.get("content-disposition")?.toString(); | |
| const regex = /filename="([^"]+)"/; | |
| const match = fileNameHeader?.match(regex); | |
| return match?.[1]; | |
| }; | |
| export const downloadFile = ( | |
| response: IQueryErrorResponse | GenericIdentityFn<Blob>, | |
| filenameparam?: string | |
| ) => { | |
| if ("data" in response && response.data) { | |
| const url = URL.createObjectURL(response.data); | |
| const link = document.createElement("a"); | |
| link.href = url; | |
| link.download = `${filenameparam ?? "file.pdf"}`; | |
| document.body.appendChild(link); | |
| link.click(); | |
| document.body.removeChild(link); | |
| URL.revokeObjectURL(url); | |
| } | |
| }; | |