0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-11 15:32:47 +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

@@ -10,28 +10,45 @@ 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 currentNew = localStorage.getItem(BREWKEY);
if(currentNew && !confirm(
`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?`
)) return;
const reader = new FileReader(); const reader = new FileReader();
reader.onload = (e)=>{ reader.onload = (e)=>{
const fileContent = e.target.result; const fileContent = e.target.result;
const newBrew = { const newBrew = { text: fileContent, style: '' };
text : fileContent,
style : ''
};
if(fileContent.startsWith('```metadata')) { if(fileContent.startsWith('```metadata')) {
splitTextStyleAndMetadata(newBrew); // Modify newBrew directly splitTextStyleAndMetadata(newBrew);
localStorage.setItem(BREWKEY, newBrew.text); localStorage.setItem(BREWKEY, newBrew.text);
localStorage.setItem(STYLEKEY, newBrew.style); localStorage.setItem(STYLEKEY, newBrew.style);
localStorage.setItem(METAKEY, JSON.stringify(_.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']))); localStorage.setItem(METAKEY, JSON.stringify(
_.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])
));
window.location.href = '/new'; window.location.href = '/new';
} else { 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'); 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); reader.readAsText(file);
}
}; };
return ( return (
<Nav.dropdown> <Nav.dropdown>
<Nav.item <Nav.item