Improve lazy loading (#12186)
WIP, using preview app to test performance (which was very bad)
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
import styled from '@emotion/styled';
|
||||
import { useState } from 'react';
|
||||
import { useDropzone } from 'react-dropzone';
|
||||
import * as XLSX from 'xlsx-ugnis';
|
||||
import { read, WorkBook } from 'xlsx-ugnis';
|
||||
|
||||
import { useSpreadsheetImportInternal } from '@/spreadsheet-import/hooks/useSpreadsheetImportInternal';
|
||||
import { readFileAsync } from '@/spreadsheet-import/utils/readFilesAsync';
|
||||
@ -84,7 +84,7 @@ const StyledText = styled.span`
|
||||
`;
|
||||
|
||||
type DropZoneProps = {
|
||||
onContinue: (data: XLSX.WorkBook, file: File) => void;
|
||||
onContinue: (data: WorkBook, file: File) => void;
|
||||
isLoading: boolean;
|
||||
};
|
||||
|
||||
@ -119,7 +119,7 @@ export const DropZone = ({ onContinue, isLoading }: DropZoneProps) => {
|
||||
onDropAccepted: async ([file]) => {
|
||||
setLoading(true);
|
||||
const arrayBuffer = await readFileAsync(file);
|
||||
const workbook = XLSX.read(arrayBuffer, {
|
||||
const workbook = read(arrayBuffer, {
|
||||
cellDates: true,
|
||||
codepage: 65001, // UTF-8 codepage
|
||||
dateNF: dateFormat,
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
import * as XLSX from 'xlsx-ugnis';
|
||||
import { utils } from 'xlsx-ugnis';
|
||||
|
||||
import { mapWorkbook } from '@/spreadsheet-import/utils/mapWorkbook';
|
||||
|
||||
describe('mapWorkbook', () => {
|
||||
it('should map the workbook to a 2D array of strings', () => {
|
||||
const inputWorkbook = XLSX.utils.book_new();
|
||||
const inputWorkbook = utils.book_new();
|
||||
const inputSheetData = [
|
||||
['Name', 'Age'],
|
||||
['John', '30'],
|
||||
@ -12,8 +12,8 @@ describe('mapWorkbook', () => {
|
||||
];
|
||||
const expectedOutput = inputSheetData;
|
||||
|
||||
const worksheet = XLSX.utils.aoa_to_sheet(inputSheetData);
|
||||
XLSX.utils.book_append_sheet(inputWorkbook, worksheet, 'Sheet1');
|
||||
const worksheet = utils.aoa_to_sheet(inputSheetData);
|
||||
utils.book_append_sheet(inputWorkbook, worksheet, 'Sheet1');
|
||||
|
||||
const result = mapWorkbook(inputWorkbook);
|
||||
|
||||
@ -21,7 +21,7 @@ describe('mapWorkbook', () => {
|
||||
});
|
||||
|
||||
it('should map the specified sheet of the workbook to a 2D array of strings', () => {
|
||||
const inputWorkbook = XLSX.utils.book_new();
|
||||
const inputWorkbook = utils.book_new();
|
||||
const inputSheet1Data = [
|
||||
['Name', 'Age'],
|
||||
['John', '30'],
|
||||
@ -34,10 +34,10 @@ describe('mapWorkbook', () => {
|
||||
];
|
||||
const expectedOutput = inputSheet2Data;
|
||||
|
||||
const worksheet1 = XLSX.utils.aoa_to_sheet(inputSheet1Data);
|
||||
const worksheet2 = XLSX.utils.aoa_to_sheet(inputSheet2Data);
|
||||
XLSX.utils.book_append_sheet(inputWorkbook, worksheet1, 'Sheet1');
|
||||
XLSX.utils.book_append_sheet(inputWorkbook, worksheet2, 'Sheet2');
|
||||
const worksheet1 = utils.aoa_to_sheet(inputSheet1Data);
|
||||
const worksheet2 = utils.aoa_to_sheet(inputSheet2Data);
|
||||
utils.book_append_sheet(inputWorkbook, worksheet1, 'Sheet1');
|
||||
utils.book_append_sheet(inputWorkbook, worksheet2, 'Sheet2');
|
||||
|
||||
const result = mapWorkbook(inputWorkbook, 'Sheet2');
|
||||
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
import * as XLSX from 'xlsx-ugnis';
|
||||
import { utils, WorkBook } from 'xlsx-ugnis';
|
||||
|
||||
export const mapWorkbook = (workbook: XLSX.WorkBook, sheetName?: string) => {
|
||||
export const mapWorkbook = (workbook: WorkBook, sheetName?: string) => {
|
||||
const worksheet = workbook.Sheets[sheetName || workbook.SheetNames[0]];
|
||||
const data = XLSX.utils.sheet_to_json(worksheet, {
|
||||
const data = utils.sheet_to_json(worksheet, {
|
||||
header: 1,
|
||||
blankrows: false,
|
||||
raw: false,
|
||||
|
||||
Reference in New Issue
Block a user