Built error section, needs to be on a few pages.

This commit is contained in:
2018-11-25 22:03:38 +11:00
parent 83369773cd
commit 88cd1a9a53
11 changed files with 183 additions and 15 deletions

View File

@ -0,0 +1,45 @@
// Copyright (c) 2018 Dominic Masters
//
// MIT License
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import React from 'react';
import { withLanguage } from '@public/language/Language';
import Styles from './ErrorPanel.scss';
export default withLanguage(props => {
let { className, error, title, body, lang } = props;
title = title || error.title || lang.error.title;
body = body || error.body || error || lang.error.body;
return (
<div className={`c-error-panel ${className||""}`}>
<div className="c-error-panel__heading">
<h2 className="c-error-panel__heading-title">{ title }</h2>
</div>
<p className="c-error-panel__body">
{ body }
</p>
</div>
);
});

View File

@ -0,0 +1,25 @@
@import '~@styles/global';
$c-error-panel--padding: 1em;
.c-error-panel {
max-width: 750px;
border: $s-color--input-default__border;
&__heading {
padding: $c-error-panel--padding;
background: $s-color--input-danger__top;
border-bottom: $s-color--input-default__border;
&-title {
color: $s-color--input-primary__text;
margin: 0;
}
}
&__body {
margin: 0;
background: $s-color--background;
padding: $c-error-panel--padding;
}
}

View File

@ -0,0 +1,42 @@
// Copyright (c) 2018 Dominic Masters
//
// MIT License
//
// Permission is hereby granted, free of charge, to any person obtaining
// a copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to
// permit persons to whom the Software is furnished to do so, subject to
// the following conditions:
//
// The above copyright notice and this permission notice shall be
// included in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
import React from 'react';
import Section from './../Section';
import PageBoundary from '@components/page/boundary/PageBoundary';
import ErrorPanel from '@components/error/ErrorPanel';
import Styles from './ErrorSection.scss';
export default props => {
let { className } = props;
return (
<Section className={`c-error-section ${className||""}`}>
<PageBoundary>
<ErrorPanel {...props} className="c-error-section__panel" />
</PageBoundary>
</Section>
);
};

View File

@ -0,0 +1,7 @@
@import '~@styles/global';
.c-error-section {
&__panel {
margin: 2em auto;
}
}