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, 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); } };