diff --git a/src/components/Contexts/DTCTimelineContext.jsx b/src/components/Contexts/DTCTimelineContext.jsx index dded562..befd7ff 100644 --- a/src/components/Contexts/DTCTimelineContext.jsx +++ b/src/components/Contexts/DTCTimelineContext.jsx @@ -26,13 +26,38 @@ export const DTCTimelineProvider = ({ children }) => { } }; + const exportDTCTimeline = async (vin, ecu, troubleCode, startDate, endDate, search, token) => { + try { + setBusy(true) + let result = await api.exportDTCData(vin, ecu, troubleCode, startDate, endDate, search, token); + + const blob = await result.blob(); + const reader = new FileReader(); + reader.onload = () => { + const csvData = reader.result; + const blob = new Blob([csvData], { type: 'text/csv;charset=utf-8' }); + const link = document.createElement('a'); + link.href = window.URL.createObjectURL(blob); + link.download = 'DTC_timeline.csv'; + link.click(); + }; + reader.readAsText(blob); + } catch (e) { + throw new Error(e) + } + finally { + setBusy(false) + } + } + return ( {children} diff --git a/src/components/DTCTimeline/DTCTimeline/__snapshots__/index.test.jsx.snap b/src/components/DTCTimeline/DTCTimeline/__snapshots__/index.test.jsx.snap index 92d29b9..1c791d1 100644 --- a/src/components/DTCTimeline/DTCTimeline/__snapshots__/index.test.jsx.snap +++ b/src/components/DTCTimeline/DTCTimeline/__snapshots__/index.test.jsx.snap @@ -416,7 +416,41 @@ exports[`Render Render 1`] = `
+ +
+
- + + + +
{ + const queryParams = { + ecu, + trouble_code: troubleCode, + start_time: startDate, + end_time: endDate, + decode: true, + ...search, + }; + const url = addQueryParams(`${API_ENDPOINT}/dtc_snapshot_export/${vin}`, queryParams); + return fetch(url, { + method: "GET", + headers: Object.assign( + { "Content-Type": "application/json" }, + getAuthHeaderOptions(token) + ), + responseType: "blob" + }) + .catch(errorHandler); + }, }; export default DTCTimelineAPI; \ No newline at end of file