const React = require('react'); const _ = require('lodash'); const Nav = require('naturalcrit/nav/nav.jsx'); const { splitTextStyleAndMetadata } = require('../../../shared/helpers.js'); // Importing the function from helpers.js const BREWKEY = 'homebrewery-new'; const STYLEKEY = 'homebrewery-new-style'; const METAKEY = 'homebrewery-new-meta'; const NewBrew = ()=>{ const handleFileChange = (e)=>{ const file = e.target.files[0]; if(file) { const reader = new FileReader(); reader.onload = (e)=>{ const fileContent = e.target.result; const newBrew = { text : fileContent, style : '' }; if(fileContent.startsWith('```metadata')) { splitTextStyleAndMetadata(newBrew); // Modify newBrew directly localStorage.setItem(BREWKEY, newBrew.text); localStorage.setItem(STYLEKEY, newBrew.style); localStorage.setItem( METAKEY, JSON.stringify( _.pick(newBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang']) ) ); window.location.href = '/new'; } else { 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 ( new from blank { document.getElementById('uploadTxt').click(); }}> from file ); }; module.exports = NewBrew;