0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-05 23:12:39 +00:00

Merge pull request #4391 from naturalcrit/refine-import-file-error-feedback

Refine import file error feedback
This commit is contained in:
Víctor Losada Hernández
2025-08-21 16:42:45 +02:00
committed by GitHub

View File

@@ -5,33 +5,50 @@ const { splitTextStyleAndMetadata } = require('../../../shared/helpers.js'); //
const BREWKEY = 'homebrewery-new'; const BREWKEY = 'homebrewery-new';
const STYLEKEY = 'homebrewery-new-style'; const STYLEKEY = 'homebrewery-new-style';
const METAKEY = 'homebrewery-new-meta'; const METAKEY = 'homebrewery-new-meta';
const NewBrew = ()=>{ const NewBrew = ()=>{
const handleFileChange = (e)=>{ const handleFileChange = (e)=>{
const file = e.target.files[0]; const file = e.target.files[0];
if(file) { if(!file) return;
const reader = new FileReader();
reader.onload = (e)=>{ const currentNew = localStorage.getItem(BREWKEY);
const fileContent = e.target.result; if(currentNew && !confirm(
const newBrew = { `You have some text in the new brew space, if you load a file that text will be lost, are you sure you want to load the file?`
text : fileContent, )) return;
style : ''
}; const reader = new FileReader();
if(fileContent.startsWith('```metadata')) { reader.onload = (e)=>{
splitTextStyleAndMetadata(newBrew); // Modify newBrew directly const fileContent = e.target.result;
localStorage.setItem(BREWKEY, newBrew.text); const newBrew = { text: fileContent, style: '' };
localStorage.setItem(STYLEKEY, newBrew.style);
localStorage.setItem(METAKEY, JSON.stringify(_.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); if(fileContent.startsWith('```metadata')) {
window.location.href = '/new'; splitTextStyleAndMetadata(newBrew);
} else { localStorage.setItem(BREWKEY, newBrew.text);
alert('This file is invalid, please, enter a valid file'); localStorage.setItem(STYLEKEY, newBrew.style);
} localStorage.setItem(METAKEY, JSON.stringify(
}; _.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])
reader.readAsText(file); ));
} window.location.href = '/new';
return;
}
const type = file.name.split('.').pop().toLowerCase();
if(type === 'txt') {
alert(
`This file type is correct, but it is not from the homebrewery or has been tampered with, please try with a correct file or report this as an issue if you think it is a mistake.`
);
} else if(!type) {
alert('This file is invalid, please, enter a valid file');
console.log(file);
} else {
alert(`This is a .${type} file, only .txt files are allowed`);
}
};
reader.readAsText(file);
}; };
return ( return (
<Nav.dropdown> <Nav.dropdown>
<Nav.item <Nav.item