Drag&Drop: Dynamically load sheets module (#69536)

dynamically load sheets module
This commit is contained in:
Oscar Kilhed 2023-06-08 10:24:49 +02:00 committed by GitHub
parent 24502c4c4a
commit e0ce6c3a94
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,7 +2,6 @@ import { Accept } from 'react-dropzone';
import { Observable } from 'rxjs';
import { toDataFrame } from '@grafana/data';
import { readSpreadsheet } from 'app/core/utils/sheet';
import { FileImportResult } from './types';
@ -27,6 +26,8 @@ export function formatFileTypes(acceptedFiles: Accept) {
export function filesToDataframes(files: File[]): Observable<FileImportResult> {
return new Observable<FileImportResult>((subscriber) => {
let completedFiles = 0;
import('app/core/utils/sheet')
.then((sheet) => {
files.forEach((file) => {
const reader = new FileReader();
reader.readAsArrayBuffer(file);
@ -38,7 +39,7 @@ export function filesToDataframes(files: File[]): Observable<FileImportResult> {
const json = JSON.parse(decoder.decode(result));
subscriber.next({ dataFrames: [toDataFrame(json)], file: file });
} else {
subscriber.next({ dataFrames: readSpreadsheet(result), file: file });
subscriber.next({ dataFrames: sheet.readSpreadsheet(result), file: file });
}
if (++completedFiles >= files.length) {
subscriber.complete();
@ -46,5 +47,9 @@ export function filesToDataframes(files: File[]): Observable<FileImportResult> {
}
};
});
})
.catch(() => {
throw 'Failed to load sheets module';
});
});
}