0
0
mirror of https://github.com/naturalcrit/homebrewery.git synced 2026-01-01 08:42:45 +00:00

split-style-and-metadata moved to helpers.js

This commit is contained in:
Víctor Losada Hernández
2024-03-06 18:09:26 +01:00
parent 25945fc0df
commit f93af38fa6
3 changed files with 33 additions and 51 deletions

View File

@@ -1,39 +1,13 @@
const React = require('react');
const { useState, useRef } = React;
const _ = require('lodash');
const Nav = require('naturalcrit/nav/nav.jsx');
const yaml = require('js-yaml');
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 splitTextStyleAndMetadata = (brewContent) => {
let updatedBrew = { ...brewContent };
updatedBrew.text = updatedBrew.text.replaceAll('\r\n', '\n');
if (updatedBrew.text.startsWith('```metadata')) {
const index = updatedBrew.text.indexOf('```\n\n');
const metadataSection = updatedBrew.text.slice(12, index - 1);
const metadata = yaml.load(metadataSection);
updatedBrew = {
...updatedBrew,
..._.pick(metadata, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])
};
updatedBrew.text = updatedBrew.text.slice(index + 5);
}
if (updatedBrew.text.startsWith('```css')) {
const index = updatedBrew.text.indexOf('```\n\n');
updatedBrew.style = updatedBrew.text.slice(7, index - 1);
updatedBrew.text = updatedBrew.text.slice(index + 5);
}
return updatedBrew;
};
const NewBrew = () => {
const handleFileChange = (e) => {
const file = e.target.files[0];
if (file) {
@@ -44,14 +18,13 @@ const NewBrew = () => {
text: fileContent,
style: ''
};
if(fileContent.startsWith('```metadata')) {
const updatedBrew = splitTextStyleAndMetadata(newBrew);
localStorage.setItem(BREWKEY, updatedBrew.text);
localStorage.setItem(STYLEKEY, updatedBrew.style);
localStorage.setItem(METAKEY, JSON.stringify(_.pick(updatedBrew, ['title', 'description', 'tags', 'systems', 'renderer', 'theme', 'lang'])));
window.location.href = '/new';
} else {
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 {
alert('This file is invalid, please, enter a valid file');
}
};