You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.8 KiB
TypeScript
50 lines
1.8 KiB
TypeScript
// Copyright (C) 2021 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
import { ActionUnion, createAction, ThunkAction } from 'utils/redux';
|
|
|
|
export enum ExportActionTypes {
|
|
OPEN_EXPORT_MODAL = 'OPEN_EXPORT_MODAL',
|
|
CLOSE_EXPORT_MODAL = 'CLOSE_EXPORT_MODAL',
|
|
EXPORT_DATASET = 'EXPORT_DATASET',
|
|
EXPORT_DATASET_SUCCESS = 'EXPORT_DATASET_SUCCESS',
|
|
EXPORT_DATASET_FAILED = 'EXPORT_DATASET_FAILED',
|
|
}
|
|
|
|
export const exportActions = {
|
|
openExportModal: (instance: any) => createAction(ExportActionTypes.OPEN_EXPORT_MODAL, { instance }),
|
|
closeExportModal: () => createAction(ExportActionTypes.CLOSE_EXPORT_MODAL),
|
|
exportDataset: (instance: any, format: string) =>
|
|
createAction(ExportActionTypes.EXPORT_DATASET, { instance, format }),
|
|
exportDatasetSuccess: (instance: any, format: string) =>
|
|
createAction(ExportActionTypes.EXPORT_DATASET_SUCCESS, { instance, format }),
|
|
exportDatasetFailed: (instance: any, format: string, error: any) =>
|
|
createAction(ExportActionTypes.EXPORT_DATASET_FAILED, {
|
|
instance,
|
|
format,
|
|
error,
|
|
}),
|
|
};
|
|
|
|
export const exportDatasetAsync = (
|
|
instance: any,
|
|
format: string,
|
|
name: string,
|
|
saveImages: boolean,
|
|
): ThunkAction => async (dispatch) => {
|
|
dispatch(exportActions.exportDataset(instance, format));
|
|
|
|
try {
|
|
const url = await instance.annotations.exportDataset(format, saveImages, name);
|
|
const downloadAnchor = window.document.getElementById('downloadAnchor') as HTMLAnchorElement;
|
|
downloadAnchor.href = url;
|
|
downloadAnchor.click();
|
|
dispatch(exportActions.exportDatasetSuccess(instance, format));
|
|
} catch (error) {
|
|
dispatch(exportActions.exportDatasetFailed(instance, format, error));
|
|
}
|
|
};
|
|
|
|
export type ExportActions = ActionUnion<typeof exportActions>;
|