* refactor: add typescript dependencies
* chore: update chakra-ui
* refactor: typescript config
* refactor: convert <MenuBar> component to typescript
* refactor: convert <TooltipActionBtn> component to typescript
* refactor: improve UX in file upload
* refactor: upgrade dependencies
* refactor: prepare data provider
* refactor: prevent importing bad fields
* refactor: extract merge to provider
* refactor(upload): parser merges only given fields
* refactor(upload): add event fields to excel
* refactor(upload): improve styling on modal open
* style: improve styling in menu
* style: prevent global pollution
* feat(upload): add upload options
* fix: avoid potential bug in log queue
This commit is contained in:
Carlos Valente
2022-09-17 23:28:52 +02:00
committed by GitHub
parent 94b03312a6
commit 3128f5a195
25 changed files with 788 additions and 368 deletions
+25 -2
View File
@@ -68,6 +68,9 @@ export const parseExcel_v1 = async (excelData) => {
.forEach((row) => {
let eventTitleNext = false;
let eventUrlNext = false;
let publicInfoNext = false;
let backstageInfoNext = false;
let endMessageNext = false;
const event = {};
row.forEach((column, j) => {
@@ -78,6 +81,15 @@ export const parseExcel_v1 = async (excelData) => {
} else if (eventUrlNext) {
eventData.url = column;
eventUrlNext = false;
} else if (publicInfoNext) {
eventData.publicInfo = column;
publicInfoNext = false;
} else if (backstageInfoNext) {
eventData.backstageInfo = column;
backstageInfoNext = false;
} else if (endMessageNext) {
eventData.endMessage = column;
endMessageNext = false;
} else if (j === timeStartIndex) {
event.timeStart = parseExcelDate(column);
} else if (j === timeEndIndex) {
@@ -128,6 +140,15 @@ export const parseExcel_v1 = async (excelData) => {
case 'event url':
eventUrlNext = true;
break;
case 'public info':
publicInfoNext = true;
break;
case 'backstage info':
backstageInfoNext = true;
break;
case 'end message':
endMessageNext = true;
break;
case 'time start':
case 'start':
timeStartIndex = j;
@@ -329,7 +350,6 @@ export const fileHandler = async (file) => {
let res = {};
// check which file type are we dealing with
if (file.endsWith('.xlsx')) {
try {
const excelData = xlsx
@@ -341,7 +361,10 @@ export const fileHandler = async (file) => {
// we only look at worksheets called ontime or event schedule
if (excelData?.data) {
const dataFromExcel = await parseExcel_v1(excelData.data);
res.data = await parseJson_v1(dataFromExcel);
res.data = {};
res.data.events = parseEvents_v1(dataFromExcel);
res.data.event = parseEvent_v1(dataFromExcel, true);
res.data.userFields = parseUserFields_v1(dataFromExcel);
res.message = 'success';
} else {
console.log('Error: No sheets found named ontime or event schedule');