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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user