mirror of
https://github.com/naturalcrit/homebrewery.git
synced 2026-03-25 06:18:10 +00:00
53
client/homebrew/brewRenderer/errorBar/errorBar.jsx
Normal file
53
client/homebrew/brewRenderer/errorBar/errorBar.jsx
Normal file
@@ -0,0 +1,53 @@
|
||||
import './errorBar.less';
|
||||
import React from 'react';
|
||||
|
||||
import Dialog from '../../../components/dialog.jsx';
|
||||
|
||||
const DISMISS_BUTTON = <i className='fas fa-times dismiss' />;
|
||||
|
||||
const ErrorBar = (props)=>{
|
||||
if(!props.errors.length) return null;
|
||||
let hasOpenError = false, hasCloseError = false, hasMatchError = false;
|
||||
|
||||
props.errors.map((err)=>{
|
||||
if(err.id === 'OPEN') hasOpenError = true;
|
||||
if(err.id === 'CLOSE') hasCloseError = true;
|
||||
if(err.id === 'MISMATCH') hasMatchError = true;
|
||||
});
|
||||
|
||||
const renderErrors = ()=>(
|
||||
<ul>
|
||||
{props.errors.map((err, idx)=>{
|
||||
return <li key={idx}>
|
||||
Line {err.line} : {err.text}, '{err.type}' tag
|
||||
</li>;
|
||||
})}
|
||||
</ul>
|
||||
);
|
||||
|
||||
const renderProtip = ()=>(
|
||||
<div className='protips'>
|
||||
<h4>Protips!</h4>
|
||||
{hasOpenError && <div>Unmatched opening tag. Close your tags, like this {'</div>'}. Match types!</div>}
|
||||
{hasCloseError && <div>Unmatched closing tag. Either remove it or check where it was opened.</div>}
|
||||
{hasMatchError && <div>Type mismatch. Closed a tag with a different type.</div>}
|
||||
</div>
|
||||
);
|
||||
|
||||
return (
|
||||
<Dialog className='errorBar' closeText={DISMISS_BUTTON} >
|
||||
<div>
|
||||
<i className='fas fa-exclamation-triangle' />
|
||||
<h2> There are HTML errors in your markup</h2>
|
||||
<small>
|
||||
If these aren't fixed your brew will not render properly when you print it to PDF or share it
|
||||
</small>
|
||||
{renderErrors()}
|
||||
</div>
|
||||
<hr />
|
||||
{renderProtip()}
|
||||
</Dialog>
|
||||
);
|
||||
};
|
||||
|
||||
export default ErrorBar;
|
||||
59
client/homebrew/brewRenderer/errorBar/errorBar.less
Normal file
59
client/homebrew/brewRenderer/errorBar/errorBar.less
Normal file
@@ -0,0 +1,59 @@
|
||||
@import './shared/naturalcrit/styles/colors.less';
|
||||
|
||||
.errorBar {
|
||||
position : absolute;
|
||||
top : 32px;
|
||||
z-index : 1;
|
||||
width : 100%;
|
||||
color : white;
|
||||
background-color : @red;
|
||||
border : unset;
|
||||
|
||||
div {
|
||||
> i {
|
||||
float : left;
|
||||
margin-right : 10px;
|
||||
margin-bottom : 20px;
|
||||
font-size : 3em;
|
||||
opacity : 0.8;
|
||||
}
|
||||
h2 { font-weight : 800; }
|
||||
ul {
|
||||
margin-top : 15px;
|
||||
font-size : 0.8em;
|
||||
list-style-position : inside;
|
||||
list-style-type : disc;
|
||||
li { line-height : 1.6em; }
|
||||
}
|
||||
}
|
||||
hr {
|
||||
height : 2px;
|
||||
margin-top : 25px;
|
||||
margin-bottom : 15px;
|
||||
background-color : darken(@red, 8%);
|
||||
border : none;
|
||||
}
|
||||
small {
|
||||
font-size : 0.6em;
|
||||
opacity : 0.7;
|
||||
}
|
||||
.protips {
|
||||
font-size : 0.6em;
|
||||
line-height : 1.2em;
|
||||
h4 {
|
||||
font-weight : 800;
|
||||
line-height : 1.5em;
|
||||
text-transform : uppercase;
|
||||
}
|
||||
}
|
||||
button.dismiss {
|
||||
position : absolute;
|
||||
top : 20px;
|
||||
right : 30px;
|
||||
padding : unset;
|
||||
font-size : 40px;
|
||||
background-color : transparent;
|
||||
opacity : 0.6;
|
||||
&:hover { opacity : 1; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user